当前位置:文档之家› 教学指导书教学大纲第二版

教学指导书教学大纲第二版

《C++程序设计》教学大纲
课程名称:C++程序设计
英文名称:F undamental course of C++ Programming
面向专业:对计算机要求较高的理工科专业
授课学时____48__;习题课____8 __;实验学时___56(含课外24);
课程学分:___4___;
一、课程的性质与目的
程序设计课程是大学生的通识教育课程,包括面向对象程序设计及最基本的数据结构和软件工程的知识。

其任务是培养学生的面向对象的编程能力,也锻炼大学生的逻辑思维能力,为大学生将来结合其专业应用计算机编程打下一个扎实的基础。

本课程选用面向对象的C++语言作为教学语言。

本课程的先修课程是大学计算机基础。

C++课程设计是本课程的组成部分,在短学期进行,因单独成课大纲另立,软件工程的知识安排在课程设计中。

本大纲仅为基础教学部分的大纲。

二、教学内容与要求
本课程教学分为两阶段进行,分别在两个学期实施,学时分配为授课24+24,习题课4+4,上机实验28+28学时。

总上机时间含课外上机24学时。

第一阶段:
1.C++基础知识
(1)初识C++程序;
(2)了解类型潜在的面向对象的特性——值集与操作集的封装
(3)掌握基本数据类型和运算:关键字与标识符,基本数据类型,数组,枚举类型,运算符、表达式和优先级;
(4)理解类型的相容性与不相容性;
(5)掌握简单标准输入输出的程序实现。

2.基本控制结构程序设计
(1)理解算法的概念,掌握算法的描述方法,了解程序设计三种基本结构;
(2)掌握双路和多路选择结构的程序设计:if 语句,switch语句;
(3)掌握循环结构的程序设计: while语句,for语句,do…while语句;
(4)掌握常用算法的应用:直接法,枚举法,递推法,迭代法;
(5)应用结构化技术分解程序,设计、实现、测试和查错简单程序;
(6)掌握文本文件的输入输出。

3.函数
(1)理解函数抽象机制,掌握函数定义与函数的调用;
(2)理解参数化机制(值调用),了解参数的传递过程;
(3)理解函数的返回值及函数原型说明;
(4)理解全局变量,局部变量,变量的存贮类型与作用域,生命期与可见性;
(5)掌握函数的递归调用,编写、测试、调试简单的递归函数;
(6)理解函数重载,缺省变元,内联函数。

4.类与对象
(1)理解传统的结构化程序设计和面向对象程序设计的基本概念;
(2)理解面向对象程序设计和封装、抽象的合理性;
(3)类定义、属性与行为、访问权限控制,对象的定义、使用及内存的安排,掌握类机制如何支持封装和信息隐藏;
(4)掌握构造函数与析构函数,掌握由构造函数建立类对象,由析构函数撤销类对象的机制;
(5)理解引用概念,理解值调用和引用调用在参数传递中的不同。

理解拷贝构造函数。

(6)掌握函数重载技术与运算符重载技术;
(7)理解友元,静态数据成员。

掌握友元函数的定义和使用方法。

第二阶段:
5.数组与指针
(1)理解数组的概念;掌握数组的定义方法,能编写基于数组的应用程序。

(2)理解指针与地址、指针与数组的对应关系,数组名,指针运算;
(3)掌握标准C++字符串与了解C风格字符串。

(4)理解向函数传递数组或指针的方法;
6.模板与数据结构
(1)理解函数模板与类模版:
(2)线性表:掌握模板编写程序的方法,掌握顺序表在内存中的分配与使用;(3)掌握主要查找与排序的算法;
(4)模板与类参数,理解类型参数和参数化类型(模板)。

7.动态内存分配与数据结构
(1)了解动态数据结构和静态数据结构实现的差异;
(2)理解堆内存分配、堆与拷贝构造函数、深拷贝与浅拷贝;
(3)掌握链表在内存中的分配,链表的基本操作与使用,;
(4)了解栈与队列及其基本操作;
8.类的继承与派生
(1)理解继承的概念,了解面向对象设计中继承和多态的合理性;
(2)掌握派生类的构造与析构;
(3)掌握在对象中使用类层次和继承思想进行设计、实现和测试;
(4)区别运行时的多态性的实现,理解重载与同名覆盖的差异;
(5)理解虚函数与多态性。

(6)实现运行时多态性的程序设计;
9.输入/输出流类库
(1)理解C++的基本流类体系;
(2)掌握提取与插入运算符的重载
(3)进一步掌握文件的输入/输出:文件的打开与关闭,文本文件与二进制文件。

(4)掌握在构造函数中通过文件建立对象,在析构函数中由文件保存对象的技术。

10.异常处理
(1)理解异常处理机制:try块,异常抛出throw,异常捕获catch;
(2)了解栈展开与异常捕获;
(3)异常和继承;
(4)编写能响应执行中异常情况的代码。

三、教学要求
本课程要求培养学生的规范化的编程能力。

提倡模仿。

应淡化语法、强调算法:注意介绍有关独立于任何特定编程语言的算法概念和结构,即突出程序设计而不是语法。

强调算法,不是忽视语法,而是不要繁琐的钻牛角尖的语法,我们要的是基本的常用的语法,但更多的是模仿。

不是知道的语法越多,程序编得越好,而是自己动手编程越多,程序编得越好。

整个教学过程应围绕面向对象C++程序设计的关键技术精讲多练:要求学生熟练应用多态(重载和超载),熟练应用模板,熟练应用派生,熟练应用聚合。

习惯在构造函数中动态分配资源、在析构函数中释放资源和异常处理的方式。

正确处理编程细节与大局观:在第一学期的教学中侧重于讲解怎样采用C++语言来描述算法。

要求学生学会先分析算法,再画流程图,最后进行编程。

特别是在“基本控制结构程序设计”和“函数”的教学中要严格贯彻这一要求。

教师在课堂教学时应多做控制台应用程序设计全过程演示。

之后是过渡阶段,对编程的细节的讲授随教学推进而逐渐淡化,对程序的整体掌握的要求逐渐加强。

建议在第二学期的教学中,算法表述的细节基本留给学生自己看,教师重点讲解脱离具体C++语言的算法本身的描述和程序整体的构造,使学生的编程能力上一个台阶。

一方面提高学生的自学能力,另一方面引导学生的编程的大局观。

四、教学同步实验
以Visual C++ 6.0 集成开发环境下的控制台应用程序为背景,对应精讲多练,共建议安排26个实验。

课堂教学与同步实验学时为1:1。

每个实验2学时。

详见实验教学大纲。

五、建议学时分配
注:课内外学时比:1:2
六、考核方式
本课程实行教考分离。

统一命题,统一考试,统一阅卷。

两学期作为整体考核,各占50%。

每学期成绩=平时成绩(包括作业及上机实验)+期末笔试成绩+期末机试成绩平时成绩占10%
期末笔试成绩占50%
期末机试成绩占40%
七、教材及参考书
1.《C++程序设计》(第2版),吴乃陵况迎辉,高等教育出版社,2006 2.《C++程序设计实践教程》(第2版),吴乃陵李海文,高等教育出版社,2006 3.《面向对象程序设计基础》(第2版),李师贤等,高等教育出版社,2005 4.《C++程序设计教程》(第4版),(美)H.M.Deitel P.J.Deitel,清华大学出版社,2004。

相关主题