教学目的、要求
本课程为研究生的公共选修课,结合研究生的培养目标进行讲授,具有足够深度。本课重点为面向对象程序设计的基本概念及原理,而不是编程技术和技巧(这在大学甚至高中就能掌握)。主要内容为封装性、继承性和多态性以及这些基本概念及原理在模板、异常处理和输入/输出流中以及MFC编程和多线程、多任务的综合性应用中,等等。 为此目的,必须从汇编语言的层面讲解课程的主要部分:包括引用是“别名其表,指针其实”,不同函数调用方式的基本概念,动态存储中堆区空间管理的基本概念,派生类对象的三个内存存储分区的基本概念,派生类成员函数和其它函数访问基类成员时的权限控制,根据存储内容讲解虚基类和虚函数的运行机理、派生类对象向虚基类传递参数的规则,“所谓动态联编”的基本概念,虚函数表和虚指针的基本原理,异常处理中的构造函数和析构函数,缓冲和非缓冲输出流的基本概念和运行机理,缓冲输入流的运行机理,Windows编程环境,窗口的创建和显示,MFC的消息映射、绘图机理、对话框、文档与视图等,MFC控件,多线程和多任务操作,线程间的同步,多窗口过程,动态链接库。 通过学习,同学在掌握基本概念及原理的基础上,具备阅读和理解程序的能力,能够读懂一般程序。同时通过听课和课外做思考题、上机,从而初步掌握编程技术。
预修课程
C语言程序设计
教材
教材和主要参考书: 教材:教师编写的电子课件(或出版的教材):a. 概念和原理;b. 程序及其说明(用于说明概念和原理)。课件发至: 1.研究生院网络的本课程的课程网站中:本课程的“教师个人公文包”。打开此公文包,点击文件名即可下载。 2.教室电脑内。每堂课后都更新。(课程中有些基本概念是大部分书籍所没有提到的,有些书上的个别概念是错的。市场上很难找到合适的参考书,所以专门编写课件和出版教材) 3.随意索取课件的电子邮箱:xuejingxuan@yahoo.com.cn
主要内容
内容提要: 第一章 程序设计基本特点 程序设计的发展阶段,C++语言概述,面向对象的程序设计的特色。 第二章 C和C++语言基本知识 数据类型,预处理功能,控制流语句,指针,函数,引用的概念和功能,函数的按值、按址和按引用调用的概念和功能,动态存储,堆区空间管理的基本概念,变量的存储类别和地址,程序分区的基本概念。 第三章 类及其对象的封装——数据及其操作的统一管理 封装性,类及其对象,对象间非静态数据成员的复制,构造函数和析构函数以及不同情况下它们的调用顺序,成员初始化列表,特殊指针和特殊类成员,友元函数和友元类。 第四章 继承性与类的派生 派生类及其对象,派生类成员函数和外部函数访问基类成员时的权限映射,多继承和虚基类,派生类的构造函数和析构函数及初始化,各种类对象的内存存储内容,派生类对象向虚基类传递参数的规则,派生类对象中构造函数和析构函数的调用顺序和过程。 第五章 多态性和虚函数 多态性的定义,函数重载,运算符重载,类型转换,所谓动态联编的基本概念,虚函数的功能,虚函数指针(VPTR)及虚函数地址表(VTABLE)的基本概念和内容,多继承中基类指针的继承,抽象类。 第六章 模板 模板的基本概念,函数模板和它的重载,类模板和它的派生,类模板用作函数形参,运行时类型识别(RTTI)。 第七章 异常处理 程序运行错误及其处理,异常及其处理,异常的抛出和捕获,用于处理异常的类,系统提供的以及用户自定义的异常类,异常处理中的构造函数和析构函数。 第八章 输入/输出流的基本概念及原理 预定义数据类型的输入/输出流,流库,缓冲和非缓冲输出流的基本概念和运行机理,缓冲输入流的运行机理,用户自定义数据类型的输入/输出流,文件与流,文件的读写,标准输入/输出设备的重定向。 第九章 可视化界面 --- MFC编程入门 MFC编程环境,工程项目的创建,窗口的创建和显示,MFC的消息映射,定时器,绘图机理、画笔和画刷,模式对话框和无模式对话框,菜单,文件操作,文档和视图,MFC通用控件,窗口切分和多视图。 第十章 多线程入门和动态链接库(DLL) 多任务操作,线程的创建和终止,线程间的同步及事件类对象、互斥类对象、信号灯类对象、临界区类对象,跨越进程边界的事件类对象句柄。三种动态链接库。 其中第一至第八章课堂讲授,第九至第十章课后辅导。待将来春季学期开设“高级Windows程序设计”课后,第九至第十章将移至新课中讲授。