1、C+面向对象程序设计课程教学大纲 C+ Object Oriented Programming课程代码: 课程性质:专业基础理论课/必修适用专业:信息计算、信息安全、统计 开课学期:2、3总学时数:104 总学分数:6.5编写年月:2000年3月 修订年月:2007年7月执 笔:刘伟、高学军一、课程的性质和目的 面向对象程序设计是信息与计算科学专业本科生的一门必修课程。面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化的程序数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性。本
2、课程主要介绍面向对象程序设计的方法和C+语言的基本概念。以C+语言中的面向对象机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C+的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能。二、课程教学内容及学时分配 第一章 面向对象的程序设计方法和C+简介(6学时)了解面向对象程序设计的基本思想及基本概念;了解面向对象语言的分类和C+中支持面向对象的特点;了解面向对象的软件开发环境;了解Visual C+开发工作台的主要功能。 主要内容:面向对象程序设计的基本思想及基本概念:对程序的的质量要求;程序的模块化和结构化;为什么要面向对象:从面向过程到面向对象C
3、+语言发展的历史:面向对象语言分类;C+中支持面向对象的特点面向对象的软件开发环境与Visual C+。第二章 程序设计基础(8学时)通过实例掌握C+程序的程序结构和执行机制;掌握简单的终端输入输出方法;掌握:C+的数据类型、常量和变量的概念;掌握数组类型及数组类型与指针类型的关系;掌握用typedef自定义类型的方法;了解表达式的构成、求值顺序和表达式中的类型转换;掌握常用运算符的使用;了解程序设计风格并在试验中运用。主要内容:C+的程序结构;C+的数据类型:基本数据类型、复合数据类型和引申数据类型;常量和变量;表达式与操作符;程序设计风格。第三章 语句与程序流程(12学时)掌握程序执行的流
4、程;掌握C+语句结构,包括复合语句、分支语句、迭代语句和转移语句;了解各种迭代语句之间的关系和相互转换的方法;了解转移语句对程序结构的影响。 主要内容:模块化程序设计介绍;函数的一般形式;函数的参数;函数的返回值;递归函数;内联函数;函数和变量作用域;函数重载;函数指针;函数原型与强类型检查。 第四章 类与对象(10学时)掌握类定义的方法和存取级别;了解结构的概念和结构作为类的定义的方法;了解联合与位域的概念和联合作为类的定义的方法;掌握类的成员变量和成员函数的定义和使用,以及对象的定义;了解友元函数和友元类;掌握构造函数和析构函数;掌握静态类成员变量和成员函数的定义和使用方法;掌握内联函数的
5、定义和使用方法;了解嵌套类与局部类的定义;掌握在函数中对象传递的机制。 主要内容:复合数据类型;类的定义、类的成员变量和成员函数,存取级别,作用域分辨符;对象和类的关系;类的构造函数和析构函数;构造函数的定义;析构函数;类/对象数组;静态类成员:静态成员变量;静态成员函数;内联函数;友元类;this指针;嵌套类与局部类;在函数中对象传递的机制。第五章 数组、指针和引用 (10学时) 掌握对象数组及创建初始化和未初始化的数组的方法;掌握指针的概念,包括指针变量、指针表达式、指针数组;掌握指向对象的指针;了解指向函数的指针;掌握引用的概念,包括引用参数、向对象传递引用、返回引用等;了解有关C+的动
6、态存储分配的机制;掌握利用new和delete进行动态空间的申请和释放。主要内容:对象数组的初始化;数组与指针;数组赋值;对象数组指针的定义、初始化;指针运算;指针数组;指向对象的指针;字符串指针引用;向对象传递引用;返回引用;引用与指针的关系;引用的常用方法;C+的动态存储分配:动态空间的申请与释放。第六章 继承性与派生类(8学时)了解类层次的概念及如何将概念和实现转变为类的层次的方法;掌握单继承的定义格式、成员存取控制和向基类构造函数传递参数的方法;了解多继承的定义方式、虚基类和二义性问题。 主要内容:类的层次概念;成员的继承;将概念和实现转变为类的层次;单继承;成员存取控制;受保护基类的
7、继承;向基类构造函数传递参数;多继承;虚基类;二义性问题;多继承的应用。 第七章 多态性和虚函数(8学时)掌握函数重载的概念;掌握运算符重载的概念;掌握使用friend重载运算符的方法;定义重载某些特殊的运算符的方法;掌握虚函数和纯虚函数的概念;了解抽象类的概念;了解早期和后期联编的概念; 主要内容:函数重载与二义性;重载构造函数;求重载函数的地址;运算符重载;引用在运算符重载中的应用;运算符重载的限制;使用friend重载运算符;虚函数的层次性;纯虚函数;抽象类。第八章 C+的I/O系统(8学时)了解C+的流;掌握格式化I/O的定义格式和定义方法;了解一般I/O流和文件流的关系;了解文件与文
8、件流的关系;了解文件系统的概念;掌握文件类的定义和相关操作的定义、使用方法;掌握利用常用函数进行文件的打开、关闭、读写、定位等操作。 主要内容:流的定义;C+的预定义流;格式化的I/O;创建自己的提取符;创建无参数的操纵符;创建带参数的操纵符;文件与文件流;文件打开和关闭、文件的定位与随机存取、文件的读写。第九章 面向对象的程序设计环境(6学时)了解Visual C+的消息机制;了解Visual C+的基本类库MFC;掌握Visual C+应用程序框架及交互界面的开发。 主要内容:面向对象的软件开发环境;Visual C+开发工作台简述;MFC的结构层次;MFC分层概述应用程序框架及交互界面的
9、开发;控制类及其编程实现;实现菜单和对话框控制;文档和视;单文档界面;多文档界面。第十章 用面向对象方法设计应用程序(4学时)掌握根据给定应用系统的设计要求用面向对象的方法设计实现应用系统;掌握利用Visual C+的界面生成器生成应用程序界面;掌握利用消息机制实现对象之间的交互。主要内容:综合利用前面所学的内容设计两个具体的应用程序。学时分配:第二学期:72学时,理论课56学时,实验课16学时;第三学期:32学时,理论课24学时,实验课8学时。三、课程教学的基本要求1.了解面向对象的基本概念和使用面向对象技术进行程序设计的基本思想;2.能比较熟练地用C+语言进行一般面向对象的程序设计;3.初
10、步掌握面向对象编程环境Visual C+的使用。该课程实践性较强,需要学员多作练习;主持教师需要有比较熟练的编程经验,对Visual C+环境比较熟悉;针对所留习题,可以组织两到三次讨论,以便学员掌握面向对象设计思想。 总评成绩:平时作业占30%,闭卷考试占70%。 四、本课程与其它课程的联系与分工先修课程:计算机基础训练后续课程:软件工程五、建议教材及教学参考书1郑莉、傅仕星编,C+面向对象程序设计,清华大学出版社,2003年9月出版2谭浩强编,C+面向对象程序设计,清华大学出版社,2005年7月出版3李师贤等译,C+精髓,机械工业出版社,2002年8月出版4Davis Chapman,学用Visual c+ 6.0,清华大学出版社,2001年7月出版