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