1、C+程序设计教学大纲一课程基本信息课程编号:中文名称:C+程序设计英文名称:C+ Programming课程类别:专业基础课适用专业:计算机科学与技术专业、软件工程专业开课学期:秋总学时:64 授课:32 上机: 32 总学分:4预修课程:计算机导论、C语言程序设计、数据结构并修课程:无课程简介: “面向对象程序设计”是计算机科学与技术专业、软件工程专业的一门专业基础课。面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。它把数据和对数据的操作封装起来,集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的、体现信息隐蔽、可复
2、用、易修改、易扩充等特性的程序。面向对象程序设计方法及技术是对面向对象方法及思想的基本体现。C+程序设计主要介绍C+语言的基本概念、语法规则和面向对象的程序设计方法及思想,以 C+ 语言中的面向对象机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握 C+ 的面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能,学会利用C+语言进行一般面向对象程序的设计,解决一般应用问题,并为后续专业课程的学习奠定程序设计基础。建议教材:邵兰洁.C+程序设计.北京:北京邮电大学出版社,2009。参考书:1 谭浩强.C+面向对象程序设计.北京:清华大学出版社,2006。2 谭浩强.C+
3、面向对象程序设计题解与上机指导.北京:清华大学出版社,2006年。3 谭浩强.C+程序设计实践指导.北京:清华大学出版社,2005年。4 郭有强. C+面向对象程序设计. 北京:清华大学出版社,2009年。5 杜茂康. C+面向对象程序设计. 北京:电子工业出版社,2007年。6 皮德常. C+程序设计教程. 北京:机械工业出版社,2009年。7 李春葆.C+程序设计教程(第3版).北京:清华大学出版社,2007年。8 钱能. C+程序设计教程(第2版).北京:清华大学出版社,2005年。二课程教育目标C+是得到广泛应用的面向对象程序设计语言,现代的面向对象软件设计思想在其中得到生动的体现。本
4、课程基于面向对象语言C+中诸如类和对象、友元、模板等面向对象的基本成分,重点介绍面向对象程序设计的基本思想及基本概念:抽象、封装、继承、多态性,C+语言面向对象编程的技术:函数重载、运算符重载、内联函数、虚函数、友元函数,并通过若干实例的分析,使学生了解并掌握C+面向对象程序设计的基本内容和方法,会编写应用“继承”和“多态性”机制的面向对象的C+ 程序,并初步认识 VC+ 应用程序设计方法及过程。三、教学形式:(1)课堂授课采用多媒体教室,理论知识讲授与程序验证相结合,以便学生加深印象。(2)C+程序设计语言课程是一门实践性很强的课程,必须通过上机操作才能掌握所学的知识,所以要特别强调讲授与上
5、机操作相结合,要保证学生有充分的上机条件,达到学必用、学即用。(3)为了配合课程的理论教学,除了保证学生有充分的上机条件,应重点加强课程实验教学环境和内容的建设,同时布置一个规模较大课外编程练习,让学生在自由上机的开放环境中完成。从而达到理论联系实际的目的,使得课程教学更趋完备。(4)针对所留作业,可以组织讨论,以便学生掌握面向对象程序设计思想。(5)不定期课堂测验。四、理论教学内容与要求第1章 面向对象程序设计概述(2学时)(一) 教学内容1.1 面向过程程序设计1.2 面向对象程序设计1.3 面向对象的软件开发1.4 学生信息管理系统的面向对象分析与设计(二) 教学要求领会面向过程程序设计
6、和面向对象程序设计的编程思想及各自的优缺点;掌握面向对象程序设计的基本概念;了解面向对象的软件开发步骤。第2章 C+基础知识(4学时)(一) 教学内容2.1 从C语言到C+2.2 简单C+程序2.3 C+对C语言的扩充2.4 C+程序的编写和实现(二) 教学要求了解C+语言的特点及简单C+程序的构成;掌握C+对C语言的扩充以及C+程序的编辑、编译、链接和运行的过程。第3章 类和对象(8学时)(一) 教学内容3.1 类的声明和对象的定义3.2 类的成员函数3.3 对象成员的访问3.4 构造函数和析构函数 3.5 对象数组3.6 对象指针3.7 对象与const3.8 对象的动态建立和释放3.9
7、对象的赋值和复制3.10 向函数传递对象3.11 学生信息管理系统中类的声明和对象的定义(二) 教学要求掌握类和对象的概念及其关系;掌握类的声明方式;声明和定义成员函数的方法;访问类的数据成员和成员函数的方法;理解保护数据如何屏蔽外部访问的原理,使得对类的封装有更好的认识;掌握定义构造函数和析构函数的意义,能够根据要求正确定义和重载构造函数;掌握构造函数和析构函数的调用顺序;掌握对象数组、对象的指针及其使用方法;const型数据的使用;掌握对象的动态建立和释放,对象的赋值与复制。第4章 继承与组合(6学时)(一) 教学内容4.1 继承与派生的概念4.2 派生类的声明方式4.3 派生类的构成4.
8、4 派生类成员的访问属性4.5 派生类的构造函数和析构函数4.6 多重继承4.7 基类与派生类的转换4.8 继承与组合4.9 继承在软件开发中的重要意义(二) 教学要求掌握继承和派生的概念;派生类的声明方式;派生类的构成;公有继承;私有继承;保护继承;派生类的构造函数和析构函数;多重继承的声明方法;虚基类的作用和用法;类的组合。第5章多态性与虚函数(4学时)(一) 教学内容5.1 什么是多态性5.2 向上类型转换5.3 功能早绑定和晚绑定5.4 实现功能晚绑定虚函数5.5 纯虚函数和抽象类5.6学生信息管理系统中的多态性(二) 教学要求掌握多态性的概念;虚函数的作用及使用方法;静态关联和动态关
9、联的概念和用法;纯虚函数和抽象类的概念和用法。第6章 面向对象的妥协(2学时)(一) 教学内容6.1 封装的破坏友元6.2 对象机制的破坏静态成员(二) 教学要求掌握友元的概念和使用,理解友元的局限性;掌握静态类数据成员和成员函数的定义和使用方法。第7章 运算符重载(4学时)(一) 教学内容7.1 为什么要进行运算符重载7.2 运算符重载的方法7.3 重载运算符的规则7.4 运算符重载函数作为类成员函数和友元函数7.5 重载双目运算符7.6 重载单目运算符7.7 重载流插入运算符和流提取运算符7.8 不同类型数据间的转换(二) 教学要求掌握运算符重载的概念;运算符重载的方法;重载运算符的规则;
10、运算符重载为类成员函数;运算符重载为友元函数;转换构造函数的使用方法;类型转换函数。第8章 模板(2学时)(一) 教学内容8.1 为什么需要模板8.2 函数模板8.3 类模板8.4 STL简介(二) 教学要求掌握函数模板和类模板的概念、定义与使用方法,了解STL的有关内容。第9章输入/输出流(自学)(一) 教学内容9.1 C+的输入和输出概述9.2 C+的标准输入/输出流9.3 输入运算符和输出运算符及其重载9.4 C+格式输入和输出9.5 文件操作与文件流9.6 学生信息管理系统中的文件操作(二) 教学要求掌握C+流的概念,标准预定义流对象cin、cout 、cerr和clog的含义,文件操
11、作,文件流的定义和使用,字符流的定义和使用,了解输入输出的格式控制及专门操作。第10章异常处理(自学)(一) 教学内容10.1 异常处理的概念及C+异常处理的基本思想10.2 异常处理的实现10.3 学生信息管理系统中的异常处理(二) 教学要求掌握C+的异常处理机制和使用方法;会在实际系统中应用异常处理机制。五、上机内容与要求实验一、C+程序的运行环境和运行C+程序的方法(2学时)(1)熟悉VC+集成开发环境。(2)掌握在VC+集成开发环境下编辑、编译、连接和运行一个C+程序的步骤。(3)通过运行简单的C+程序,初步了解C+源程序的结构和特点。实验二、C+对C的扩充(4学时)(1)了解在面向过
12、程程序设计中C+对C语言的扩充与增强,并善于在编写程序过程中应用这些新的功能。(2)进一步熟悉在所用的VC+集成开发环境下编辑、编译、连接和运行C+程序的方法。(3)进一步熟悉C+程序的结构和编程方法。实验三、类和对象(10学时)(1)掌握声明类的方法,类和类的成员的概念以及定义对象的方法。(2)初步掌握用类和对象编制基于对象的程序。(3)学习检查和调试基于对象的程序。(4)掌握类的构造函数和析构函数的概念和使用方法。(5)掌握对象数组、对象的指针及其使用方法。(6)掌握共用数据的保护实验四、继承与组合(6学时)(1)了解继承在面向对象程序设计中的重要作用。(2)进一步理解继承与派生的概念。(
13、3)掌握通过继承派生出一个新的类的方法。(4)了解虚基类的作用和用法。 (5)掌握类的组合实验五、多态性与虚函数(4学时)(1)了解多态性的概念。(2)了解虚函数的作用及使用方法。(3)了解静态关联和动态关联的概念和用法。(4)了解纯虚函数和抽象类的概念和用法。实验六、面向对象的妥协(2学时)(1)掌握友元的概念、友元函数的定义与使用方法。(2)掌握静态数据成员与静态成员函数的定义与使用方法。实验七、运算符重载(2学时)(1)掌握运算符重载的规则。(2)掌握几种常用的运算符重载的方法。(3)了解转换构造函数的使用方法。(4)了解在Visual C+6.0环境下进行运算符重载要注意的问题。实验八
14、、模板(2学时)(1)函数模板的定义与调用。(2)掌握类模板的声明与使用方法。实验九、输入输出流(自学)(1)深入理解C+的输入输出的含义与其实现方法。(2)掌握标准输入输出流的应用,包括格式输入输出。(3)掌握对文件的输入输出操作。实验十、异常处理(自学)(1)学会使用C+的异常处理机制进行程序的编制。(2)学会使用命名空间解决名字冲突。六、学时分配:环节学时内容讲课学时上机学时小计第1章228第2章448第3章81012第4章668第5章4412第6章2210第7章423第8章223第9章自学第10章自学合计323264七、作业:为了配合课程的理论教学,拟布置一定数量习题为宜,并安排时间上
15、习题课,同时布置一个规模较大课外编程练习,让学生在自由上机的开放环境中完成,从而达到理论联系实际的目的,使得课程教学更趋完备。各章节习题量分布如下:序号内 容习题量1第一章 C+的初步知识62第二章 类和对象63第三章 关于类和对象的进一步讨论64第四章 运算符重载45第五章 继承与派生66第六章 多态性与虚函数67第七章 输入输出流28第八章 C+工具210大作业1作业成绩占本课程总成绩的5%。迟交或缺交的作业次数应少于作业总次数的1/4,否则将影响作业成绩的评定。八、考核方式 平时考核、期中考试、期末考试相结合。课程结束后,安排一次120分钟的期末考试,采取开卷考试形式。具体考试时间至少提前一周通知学生。平时考核包括考勤、作业和实验。九、成绩评定课程总成绩为100分,其中:平时考核成绩占20%,课外大作业10%,期中考试成绩占10% ,期末考试成绩占60% 。大纲编写修改时间:2008年2月20日教学大纲编写教师:邵兰洁