《C++程序设计》教学大纲一、课程基本信息
1、课程代码:CS002
2、课程名称(中文):程序设计基础(C++) 课程名称(英文):C++ Programming
3、学时/学分:72学时/3学分
4、先修课程:计算机文化基础
5、面向对象:全校非计算机专业的理工科类学生。
6、开课院(系)、教研室,电信学院 计算机系
7、推荐教学参考书:
《C++程序设计》谭浩强编著
《C++程序设计题解与上机指导》谭浩强编著
《C++大学教程(第二版),,[美]Harvey M,Deitel & Paul James Deitel 著,邱仲潘 等译二、课程的性质和任务
本课程是非计算机专业类的计算机基础课程之一,是计算机基础教育的基础和重点。根据非计算机专业计算机教学以应用为目的的原则,并考虑到本课程是学生的第一门计算机高级语言课程,本课程的主要任务是向学生介绍计算机高级语言的特点、语法规则和编程方法,使学生掌握基本的程序设计知识和技能,并能够解决一定的实际问题,为学习其它相关的计算机课程打下基础。
三、教学内容和要求
《C++程序设计》教学内容分为4部分共十四章,循序渐进,深入浅出,从编写简单的程序开始,由面向过程到面向对象,比较符合人们的认识规律,每一步台阶都比较小,学习难度不大,学生容易理解。结合教材并配有习题集与上机指导,便于学生大量的练习以培养编程能力。本课程具有很强的实践性,课程学习必须结合大量的作业和上机实践,因此要求学生除了充分利用课时上机之外还应尽可能安排其它时间上机,并能够通过上机实践解决课堂学习中遇到的问题和加深理解课堂内容。
第一部分介绍C++的基本知识,其中包括:
C++的初步知识要求:了解从C语言到C++的发展过程,了解C/C++程序设计语言的特点;阅读最简单的C++程序,并掌握C++程序的构成和书写形式;提出简单问题,通过编程和上机实践,体会C++程序的编写和实现过程。
数据类型与表达式要求:掌握数据类型、常量、变量、运算符的基本概念;掌握算术运算符与算术表达式、赋值运算符与赋值表达式、逗号运算符与逗号表达式。
第二部分介绍C++面向过程的程序设计,其中包括:
程序设计初步要求:了解面向过程的程序设计过程、算法的概念及其表示方法;掌握C++的输入与输出;编写顺序结构的程序;掌握关系运算和逻辑运算表达式、条件运算符和条件表达式的正确使用;正确使用if语句、switch语句和循环语句,能够编写选择结构、多分支选择结构和循环结构的程序;掌握break语句和continue语句的使用;掌握基本结构的嵌套。
函数与预处理要求:了解函数的概念;熟练掌握函数的定义和函数的调用;理解函数间数据按值传递和按引用传递的方式;掌握递归函数;掌握函数的嵌套调用;掌握内置函数、函数的重载、函数模板、有默认参数的函数;正确使用局部变量和全局变量;了解变量的存储类别;掌握预处理命令的使用。
数组要求:理解数组的概念;熟练掌握一维数组的定义和引用、二维数组的定义和引用;正确使用数组作为函数参数;掌握字符串、字符数组和字符串类的使用。
指针要求:理解指针的概念;熟练使用变量与指针、数组与指针、字符串与指针,函数与指针;了解指针数组和指针的指针。
自定义数据类型要求:掌握结构体类型、共用体类型、枚举类型的定义和应用;了解用typedef声明类型。
第三部分介绍C++基于对象的程序设计,其中包括:
类与对象要求:理解面向对象程序设计的概念和方法;掌握类的声明、对象的定义、和对象的引用;能够编制简单的应用程序。
关于类和对象的进一步讨论要求:掌握构造函数、析构函数的使用以及调用构造函数和析构函数的顺序;掌握对象数组、对象指针、对象的动态建立和释放、对象的赋值和复制等操作过程;正确使用静态成员、友元、类模板。
运算符重载要求:理解运算符重载的目的和方法;掌握运算符重载的规则;会使用类成员函数和友元函数实现运算符的重载;熟练掌握双目运算符和单目运算符的重载;掌握流插入运算符和流提取运算符的重载;掌握不同类型数据间的转换。
第四部分介绍C++面向对象的程序设计,其中包括:
第十一章 继承与派生要求,理解继承与派生的概念;掌握派生类的声明方式;理解派生类的构成、派生类成员的访问属性;掌握派生类的构造函数和析构函数的使用;掌握多重继承、继承与组合、基类与派生类的转换;能够编制利用继承与派生的应用程序。
第十二章 多态性与虚函数要求:理解多态性的概念;掌握虚函数、纯虚函数与抽象类。
第十三章 输入输出流要求:熟练掌握C++的输入和输出、标准输出流、标准输入流、文件操作与文件流、字符串流的使用。
第十四章 C++工具要求:了解异常处理概念和命名空间的概念,会使用早期的函数库。
四.实验(上机)内容和基本要求每周安排一次上机实践并配有助教辅导,实践内容和要求根据配套教材《C++程序设计题解与上机指导》,教师或助教定期抽查学生作业或实验。
五.对学生能力培养的要求本课程不仅属于计算机基础课程,而且是利用计算机解决实际问题的工具,因此要求学生除了掌握理论知识之外,必须具备基本的程序设计、编码和上机调试能力,并能够初步利用程序设计解决实际问题。
六.其他说明课程教学网站:http://www.cbase.sjtu.edu.cn,ftp://cbase.sjtu.edu.cn
基于学业规范的要求(道德行为规范、上课规范、上机规范、作业规范、程序代码书写规范等)
应遵守学校《上海交通大学学生手册(本科生)》里有关学术诚实的条例上课准时;上课期间,关掉手机
………(略)
考试成绩:
总成绩=平时作业成绩+大作业+期中+期末考试成绩
撰写人:庄天红 、王群慧 院(系)公章:
院(系)教学主管签字(盖章):××× 时 间:2005-4-2
1、课程代码:CS002
2、课程名称(中文):程序设计基础(C++) 课程名称(英文):C++ Programming
3、学时/学分:72学时/3学分
4、先修课程:计算机文化基础
5、面向对象:全校非计算机专业的理工科类学生。
6、开课院(系)、教研室,电信学院 计算机系
7、推荐教学参考书:
《C++程序设计》谭浩强编著
《C++程序设计题解与上机指导》谭浩强编著
《C++大学教程(第二版),,[美]Harvey M,Deitel & Paul James Deitel 著,邱仲潘 等译二、课程的性质和任务
本课程是非计算机专业类的计算机基础课程之一,是计算机基础教育的基础和重点。根据非计算机专业计算机教学以应用为目的的原则,并考虑到本课程是学生的第一门计算机高级语言课程,本课程的主要任务是向学生介绍计算机高级语言的特点、语法规则和编程方法,使学生掌握基本的程序设计知识和技能,并能够解决一定的实际问题,为学习其它相关的计算机课程打下基础。
三、教学内容和要求
《C++程序设计》教学内容分为4部分共十四章,循序渐进,深入浅出,从编写简单的程序开始,由面向过程到面向对象,比较符合人们的认识规律,每一步台阶都比较小,学习难度不大,学生容易理解。结合教材并配有习题集与上机指导,便于学生大量的练习以培养编程能力。本课程具有很强的实践性,课程学习必须结合大量的作业和上机实践,因此要求学生除了充分利用课时上机之外还应尽可能安排其它时间上机,并能够通过上机实践解决课堂学习中遇到的问题和加深理解课堂内容。
第一部分介绍C++的基本知识,其中包括:
C++的初步知识要求:了解从C语言到C++的发展过程,了解C/C++程序设计语言的特点;阅读最简单的C++程序,并掌握C++程序的构成和书写形式;提出简单问题,通过编程和上机实践,体会C++程序的编写和实现过程。
数据类型与表达式要求:掌握数据类型、常量、变量、运算符的基本概念;掌握算术运算符与算术表达式、赋值运算符与赋值表达式、逗号运算符与逗号表达式。
第二部分介绍C++面向过程的程序设计,其中包括:
程序设计初步要求:了解面向过程的程序设计过程、算法的概念及其表示方法;掌握C++的输入与输出;编写顺序结构的程序;掌握关系运算和逻辑运算表达式、条件运算符和条件表达式的正确使用;正确使用if语句、switch语句和循环语句,能够编写选择结构、多分支选择结构和循环结构的程序;掌握break语句和continue语句的使用;掌握基本结构的嵌套。
函数与预处理要求:了解函数的概念;熟练掌握函数的定义和函数的调用;理解函数间数据按值传递和按引用传递的方式;掌握递归函数;掌握函数的嵌套调用;掌握内置函数、函数的重载、函数模板、有默认参数的函数;正确使用局部变量和全局变量;了解变量的存储类别;掌握预处理命令的使用。
数组要求:理解数组的概念;熟练掌握一维数组的定义和引用、二维数组的定义和引用;正确使用数组作为函数参数;掌握字符串、字符数组和字符串类的使用。
指针要求:理解指针的概念;熟练使用变量与指针、数组与指针、字符串与指针,函数与指针;了解指针数组和指针的指针。
自定义数据类型要求:掌握结构体类型、共用体类型、枚举类型的定义和应用;了解用typedef声明类型。
第三部分介绍C++基于对象的程序设计,其中包括:
类与对象要求:理解面向对象程序设计的概念和方法;掌握类的声明、对象的定义、和对象的引用;能够编制简单的应用程序。
关于类和对象的进一步讨论要求:掌握构造函数、析构函数的使用以及调用构造函数和析构函数的顺序;掌握对象数组、对象指针、对象的动态建立和释放、对象的赋值和复制等操作过程;正确使用静态成员、友元、类模板。
运算符重载要求:理解运算符重载的目的和方法;掌握运算符重载的规则;会使用类成员函数和友元函数实现运算符的重载;熟练掌握双目运算符和单目运算符的重载;掌握流插入运算符和流提取运算符的重载;掌握不同类型数据间的转换。
第四部分介绍C++面向对象的程序设计,其中包括:
第十一章 继承与派生要求,理解继承与派生的概念;掌握派生类的声明方式;理解派生类的构成、派生类成员的访问属性;掌握派生类的构造函数和析构函数的使用;掌握多重继承、继承与组合、基类与派生类的转换;能够编制利用继承与派生的应用程序。
第十二章 多态性与虚函数要求:理解多态性的概念;掌握虚函数、纯虚函数与抽象类。
第十三章 输入输出流要求:熟练掌握C++的输入和输出、标准输出流、标准输入流、文件操作与文件流、字符串流的使用。
第十四章 C++工具要求:了解异常处理概念和命名空间的概念,会使用早期的函数库。
四.实验(上机)内容和基本要求每周安排一次上机实践并配有助教辅导,实践内容和要求根据配套教材《C++程序设计题解与上机指导》,教师或助教定期抽查学生作业或实验。
五.对学生能力培养的要求本课程不仅属于计算机基础课程,而且是利用计算机解决实际问题的工具,因此要求学生除了掌握理论知识之外,必须具备基本的程序设计、编码和上机调试能力,并能够初步利用程序设计解决实际问题。
六.其他说明课程教学网站:http://www.cbase.sjtu.edu.cn,ftp://cbase.sjtu.edu.cn
基于学业规范的要求(道德行为规范、上课规范、上机规范、作业规范、程序代码书写规范等)
应遵守学校《上海交通大学学生手册(本科生)》里有关学术诚实的条例上课准时;上课期间,关掉手机
………(略)
考试成绩:
总成绩=平时作业成绩+大作业+期中+期末考试成绩
撰写人:庄天红 、王群慧 院(系)公章:
院(系)教学主管签字(盖章):××× 时 间:2005-4-2