C++程序设计与训练(教学大纲).doc

上传人:飞****2 文档编号:60092365 上传时间:2022-11-13 格式:DOC 页数:15 大小:72KB
返回 下载 相关 举报
C++程序设计与训练(教学大纲).doc_第1页
第1页 / 共15页
C++程序设计与训练(教学大纲).doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《C++程序设计与训练(教学大纲).doc》由会员分享,可在线阅读,更多相关《C++程序设计与训练(教学大纲).doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、本科生课程教学大纲C+程序设计与训练一、课程基本情况课程编号开课学期秋 春 夏学分2课程名称(中文)C+程序设计与训练(英文)C+ Program Design and Training任课教师董炜 助理研究员课程类别必修 限选 任选; 1年级 2年级 3年级 4年级课程学时及其分配课内总学时课内学时分配课外学时分配64课堂讲课30课后复习30自学交流0课外自学15课堂讨论0讨论准备0实验辅导0实验预习15课内实验34课外实验34教学方式课堂讲授为主 实验为主 自学为主 专题讨论为主考核方式期末闭卷考试(30%)+作业(30%)+实验(40%)适用院系适用专业自动化系,计算机科学与技术,电子工

2、程系,软件学院自动化,计算机科学与技术,电子信息工程,电子科学与技术,信息系统与工程先修课程预备知识C语言程序设计教材与参考文献(1)教 材:l 郑莉,董渊,何江舟,C+语言程序设计(第4版),清华大学出版社,2010.7(2)参考文献:l 郑莉,董渊,C+语言程序设计(第4版)学生用书,清华大学出版社,2011.6l Bjarne Stroustrup著,裘宗燕 译,C+程序设计语言(特别版),机械工业出版社,2010.3l Stanley B. Lippman,Josee Lajoie著,潘爱民,张丽 译,C+ Primer中文版(第3版),中国电力出版社,2005.2l George S

3、hepherd, David Kruglinski著,潘爱民 译,Visual C+ .NET技术内幕(第6版),清华大学出版社,2004.7二、课程内容简介本课程是以实践为主的高级语言程序设计课程,在掌握C程序设计的基础上,拓展到面向对象的C+编程。本课程采用课堂授课、课上实验和课后大作业三部分紧密结合的方法,目标是使学生通过本课程的学习,掌握面向对象程序设计的基本概念和方法,C+的语法和编程方法,巩固提高程序调试方法,了解C+模板的使用方法,了解基于MFC(Microsoft Foundation Classes,微软基础类库)的可视化编程方法,掌握以面向对象的编程思想进行程序分析与设计的

4、技能。课程主要内容包括C+语言的基本介绍、面向对象程序设计的基本概念、C+类与对象、继承与重载、C+的I/O流、C+模板、C+异常处理方法、VC(Visual C+)的集成开发环境和调试方法等。三、课程教学大纲第0章 C语言程序设计(复习)0.1 C程序结构及词法0.1.1 一个简单而完整的C程序实例0.1.2 C程序结构0.1.3 C语言字符集0.1.4 C语言词法记号0.1.5 C语言标识符的构成规则0.2基本数据类型及变量0.2.1 基本数据类型0.2.2 常量0.2.3 变量0.2.4 变量的三要素0.2.5 整型变量的溢出0.2.6 浮点数的舍入误差0.3运算符及表达式0.3.1 C

5、语言中的运算符与表达式0.3.2 算术运算0.3.3 赋值运算及复合赋值运算0.3.4 关系运算与逻辑运算0.3.5 条件运算符0.3.6 逗号运算符0.3.7 sizeof运算符0.3.8 位运算0.3.9 运算符的优先级0.3.10 隐含数据类型转换0.3.11 显式数据类型转换0.4执行语句0.4.1 语句种类0.4.2 控制语句0.4.3 if语句0.4.4 switch语句0.4.5 while语句0.4.6 do-while语句0.4.7 for语句0.4.8 其它控制语句0.5用户定义类型0.5.1 结构体0.5.2 结构体变量作为函数参数0.5.3 联合体0.5.4 枚举类型0

6、.5.5 typedef声明0.6函数0.6.1 函数的定义与调用0.6.2 嵌套调用与递归调用0.6.3 函数的参数传递0.6.4 函数实参的求值顺序0.6.5 运行栈与函数调用机制0.6.6 基于函数的C程序结构0.7数组0.7.1 数组的定义与使用0.7.2 数组的存储与初始化0.7.3 多维数组0.7.4 数组作为函数参数0.7.5 字符数组与字符串处理0.8指针0.8.1 指针的概念0.8.2 指针变量的定义与使用0.8.3 指针变量的要素0.8.4 指针的运算0.8.5 用指针处理数组元素0.8.6 指针作为函数参数0.8.7 指向多维数组的指针0.8.8 指针数据类型小结0.9变

7、量的存储类型0.9.1 局部变量和全局变量0.9.2 程序的存储空间0.9.3 变量的存储类型0.9.4 静态局部变量和静态全局变量0.9.5 extern变量声明0.9.6 内部函数和外部函数0.10预处理命令0.10.1 文件包含指令及宏定义0.10.2 条件编译指令第1章 从C到C+1.1 C+概述1.1.1 C+的产生1.1.2 为什么要学C+1.1.3 C+的特点1.1.4 C+的学习方法1.2 对象和面向对象的概念1.2.1 对象的概念1.2.2 面向过程与面向对象的区别1.2.3 面向对象编程语言的优点1.3 新的关键字和使用惯例1.3.1 新的关键字1.3.2 新的使用惯例1.

8、3.3 assert宏1.4 基于流的输入输出机制1.4.1 流的基本概念1.4.2 标准输入输出对象1.4.3 名字空间1.4.4 I/O流格式状态及其操纵符1.4.5 基于流的文件读写1.4.6 流机制的优点1.5 布尔类型与字符串类型1.5.1 布尔类型1.5.2 字符串类型1.6 内联函数1.6.1 引入内联函数的目的1.6.2 内联函数的定义和使用要点1.6.3 内联函数与宏定义的对比1.6.4 使用内联函数的代价与收益1.7 const限定修饰符1.7.1 命名常量1.7.2 指针常量和指向常量的指针1.7.3 const修饰函数形参1.7.4 const修饰函数返回值1.8 引用

9、类型1.8.1 引用的概念1.8.2 引用的定义和使用要点1.8.3 引用与指针的比较和选择1.9 内存分配1.9.1 内存空间划分1.9.2 new和delete操作符1.9.3 申请和释放动态数组1.9.4 动态创建多维数组1.9.5 内存耗尽的处理1.9.6 内存和指针的生存期1.9.7 内存分配与释放要点小结1.10 显式类型转换1.10.1 数据类型转换概述1.10.2 static_cast类型转换1.10.3 指针的安全性隐患1.10.4 reinterpret_cast类型转换1.10.5 const_cast类型转换1.10.6 从语言设计的角度理解多种类型转换第2章 C+类

10、与对象2.1 类的概念2.1.1 对象概念回顾2.1.2 分类的概念2.1.3 面向对象方法中的“类”2.1.4 封装2.1.5 继承2.1.6 多态2.2 类与对象的定义2.2.1 类的定义2.2.2 类成员的访问控制2.2.3 成员函数的定义2.2.4 对象的定义2.2.5 对象成员的访问2.2.6 目的对象与this指针2.3 作用域与可见性2.3.1 作用域的概念2.3.2 局部作用域2.3.3 类作用域2.3.4 文件作用域2.3.5 对象的生存期与可见性2.4 函数的缺省参数2.4.1 缺省参数的作用2.4.2 缺省参数的使用规则2.5 函数重载2.5.1 函数重载的作用2.5.2

11、 函数重载的使用规则2.6 对象的构造与析构2.6.1 构造函数2.6.2 拷贝构造函数2.6.3 缺省构造函数与隐含构造函数2.6.4 析构函数2.7 对象的组合2.7.1 组合的概念2.7.2 组合类的构造函数设计2.7.3 组合类构造函数的调用顺序2.7.4 使用初始化列表的好处2.7.5 深入理解对象的构造与析构过程2.8 UML简介2.8.1 UML概述2.8.2 UML类图2.8.3 UML对象图2.8.4 几种关系的图形标识2.8.5 UML使用示例2.9 综合实例个人银行账户管理2.9.1 程序需求2.9.2 类的设计2.9.3 源程序及说明第3章 类与对象的高级特性3.1 类

12、的前向声明3.1.1 类前向声明的作用3.1.2 类前向声明的使用要点3.2 用构造函数定义类型转换3.2.1 构造函数定义的隐含类型转换3.2.2 explicit关键字3.3 对象作为函数参数及返回值3.3.1 对象作为函数参数3.3.2 对象作为函数返回值3.4 类的静态成员3.4.1 类的静态数据成员3.4.2 类的静态函数成员3.4.3 类静态成员与动态成员的比较3.5 类的友元3.5.1 友元的作用3.5.2 友元函数3.5.3 友元类3.5.4 友元关系的特点3.6 const对象及成员3.6.1 const对象3.6.2 const函数成员3.6.3 const数据成员3.6.

13、4 const引用3.7 对象数组3.7.1 对象数组的定义3.7.2 对象数组的初始化3.7.3 对象数组的应用示例3.8 指向类的成员的指针3.8.1 指向类的非静态成员的指针3.8.2 指向类的静态成员的指针3.9 深拷贝与浅拷贝3.9.1 对象的浅拷贝及其问题3.9.2 对象的深拷贝3.10 动态数组与vector3.10.1 将动态数组封装成类3.10.2 用vector创建动态数组3.10.3 vector应用示例第4章 类的继承与派生4.1 继承与派生的基本概念4.1.1 继承与派生的目的4.1.2 派生类的声明4.2 保护成员与访问控制4.2.1 保护成员的特点与作用4.2.2

14、 类的访问控制小结4.3 三种继承方式4.3.1 公有继承4.3.2 保护继承4.3.3 私有继承4.3.4 继承方式应用示例4.4 派生类的生成过程4.4.1 生成派生类的三个步骤4.4.2 私有成员的继承问题4.4.3 覆盖与隐藏4.5 类型兼容规则4.6 多继承4.6.1 单继承与多继承的概念4.6.2 多继承时派生类的声明4.6.3 多继承应用示例4.7 继承时的构造和析构函数4.7.1 派生类构造函数的设计原则4.7.2 单继承时的构造函数4.7.3 多继承时的构造函数4.7.4 多继承且有内嵌对象时的构造函数4.7.5 复杂对象构造函数的调用顺序4.7.6 继承时的拷贝构造函数4.

15、7.7 继承时的析构函数4.7.8 对象的构造与析构小结4.8 同名隐藏及二义性4.8.1 同名隐藏规则4.8.2 多继承时的同名隐藏示例4.8.3 二义性问题4.8.4 二义性问题示例4.8.5 二义性的解决方法4.8.6 派生类对象的存储结构分析4.9 虚基类4.9.1 虚基类的作用和用法4.9.2 虚基类应用示例4.9.3 虚基类及其派生类的构造函数4.9.4 有虚基类时的构造函数举例4.10 组合与继承4.10.1 组合的含义及示例4.10.2 继承的含义及示例4.10.3 组合与继承的比较4.11 派生类对象的内存布局4.11.1 单继承情形4.11.2 多继承情形4.11.3 虚拟

16、继承情形4.11.4 基类向派生类的转换及其安全性问题4.12 程序实例用高斯消去法解线性方程组4.12.1 算法原理分析4.12.2 类的设计4.12.3 源程序及说明4.13 综合实例个人银行账户管理(改进)4.13.1 问题的提出4.13.2 类的设计4.13.3 源程序及说明第5章 多态性和虚函数5.1 多态性概述5.1.1 多态的含义5.1.2 多态的类型5.1.3 多态的实现5.2 运算符重载5.2.1 运算符重载的目的5.2.2 运算符重载的规则5.2.3 运算符重载为成员函数5.2.4 运算符重载为非成员函数5.2.5 前置和后置单目运算符重载5.2.6 复数类加减法运算符重载

17、示例5.3 虚函数与多态5.3.1 问题的提出5.3.2 虚函数的概念5.3.3 虚函数的定义和使用5.3.4 虚函数应用示例5.3.5 重载、覆盖与隐藏概念小结5.4 虚析构函数5.4.1 问题的提出5.4.2 虚析构函数的定义和使用5.5 纯虚函数与抽象类5.5.1 纯虚函数5.5.2 抽象类5.5.3 抽象类应用示例5.6 程序实例变步长梯形积分算法求解函数的定积分5.6.1 算法基本原理5.6.2 类的设计5.6.3 源程序及说明5.7 多态类型小结5.7.1 多态类型与非多态类型5.7.2 相关设计原则5.8 运行时类型识别5.8.1 问题的提出5.8.2 基于dynamic_cas

18、t的运行时类型识别5.8.3 基于typeid的运行时类型识别5.8.4 运行时类型识别示例5.9 综合实例个人银行账户管理(改进)5.9.1 问题的提出5.9.2 类的设计5.9.3 源程序及说明第6章 函数模板与类模板6.1 函数模板6.1.1 函数模板概述6.1.2 函数模板的定义和使用6.1.3 函数模板应用示例6.2 类模板6.2.1 类模板概述6.2.2 类模板的定义和使用6.2.3 类模板应用示例6.3 动态数组类模板6.3.1 动态数组类模板程序分析6.3.2 浅拷贝与深拷贝6.3.3 引用作为函数返回值的问题6.3.4 类型转换运算符的重载6.3.5 动态数组类模板应用示例6

19、.4 链表类模板6.4.1 链表概述6.4.2 链表的基本操作6.4.3 单链表的结点类模板6.4.4 单链表类模板6.4.5 单链表类模板的应用示例6.5 栈类模板6.5.1 栈概述6.5.2 栈的基本状态与基本操作6.5.3 栈类模板6.5.4 栈类模板的应用示例6.6 队列类模板6.6.1 队列概述6.6.2 队列的基本状态与基本操作6.6.3 循环队列6.6.4 循环队列类模板6.7 综合实例个人银行账户管理(改进)6.7.1 问题的提出6.7.2 类的设计6.7.3 源程序及说明6.8 模板的实例化机制6.8.1 类模板与类的比较6.8.2 函数模板与函数的比较6.8.3 模板的隐含

20、实例化6.8.4 多文件结构中模板的组织6.8.5 模板的显式实例化6.9 模板的特化6.9.1 问题的提出6.9.2 模板的特化6.9.3 类模板的偏特化6.9.4 函数模板的重载第7章 异常处理7.1 异常处理7.1.1 异常处理的基本思想7.1.2 异常处理的语法7.1.3 异常处理示例7.1.4 异常接口声明7.1.5 异常处理中的构造与析构7.1.6 使用带析构语义的C+异常处理示例7.2 标准程序库异常处理7.2.1 标准程序库中异常类的继承关系7.2.2 异常的典型分类7.2.3 基于标准程序库的异常处理示例7.3 综合实例个人银行账户管理(改进)7.3.1 问题的提出7.3.2

21、 类的设计7.3.3 源程序及说明7.4 异常安全性原则7.4.1 异常安全性问题7.4.2 编写异常安全程序的原则7.5 智能指针7.5.1 智能指针的概念7.5.2 智能指针的用法第8章 MFC程序开发概述8.1 MFC基本概念8.1.1 MFC库8.1.2 应用程序框架8.2 Windows编程模式8.2.1 WinMain函数及主窗口8.2.2 事件驱动与Windows消息8.2.3 图形设备接口8.2.4 基于资源的程序设计8.2.5 动态链接库8.2.6 Win32应用程序编程接口8.2.7 Windows程序的基本结构8.3 集成开发环境(IDE,Integrated Devel

22、opment Environment)8.4 MFC体系结构8.4.1 预编译头文件8.4.2 MFC程序分类8.4.3 应用程序类8.4.4 窗口类8.4.5 “文档-视图”结构8.4.6 文档类8.4.7 图形绘制类8.4.8 MFC中的简单类型类8.4.9 MFC程序的工作步骤8.4.10 程序框架中各个类对象的调用关系8.4.11 MFC程序消息处理机制的建立8.4.12 一个最简单的MFC程序8.5 MFC程序示例8.5.1 MFC程序示例1从Hello, world!着手学习AppWizard8.5.2 MFC程序示例2基本事件处理8.5.3 MFC程序示例3映射模式8.5.4 M

23、FC程序示例4滚动视窗四、课程实践环节课程实验(一)实验名称:熟悉VC集成开发环境实验类型:基础验证型实验实验目的:熟悉VC集成开发环境,掌握程序编写和调试方法。实验内容:建立新项目,建立C+源程序文件,编译C+源程序文件,学习简单的调试功能。课程实验(二)实验名称:类的定义和使用实验类型:综合设计型实验实验目的:掌握类的定义和使用,学习具有不同访问属性的成员的访问方式,观察构造函数和析构函数的执行过程,学习拷贝构造函数的作用。实验内容:设计一个类并添加成员函数和友元函数,添加构造函数和析构函数,实现函数重载和运算符重载。课程实验(三)实验名称:类的继承和派生实验类型:综合设计型实验实验目的:

24、学习定义和使用类的继承关系,定义派生类,熟悉不同继承方式下对基类成员的访问控制,学习利用虚基类解决二义性问题。实验内容:设计一个类并添加成员函数和友元函数,练习使用私有继承和公有继承。课程实验(四)实验名称:虚函数实验类型:综合设计型实验实验目的:利用虚函数实现动态多态性。实验内容:设计一个类并利用虚函数的概念实现动态多态性。课程实验(五)实验名称:模板与异常实验类型:综合设计型实验实验目的:学习定义和使用函数模板和类模板,熟悉模板的特性,学习异常的使用方法。实验内容:编写函数模板和类模板,并通过异常机制实现相关的错误处理。课外实验实验名称:基于MFC的应用开发实验类型:综合设计型实验实验目的

25、:学习使用面向对象方法和MFC开发综合应用。实验内容:编写开发基于MFC的图书管理系统(或类似的综合应用软件)。注:以上实验的具体内容每年会有一定程度的变化。五、课程知识单元与知识点CPP1:C+对C语言的扩展 基于流的输入输出机制 名字空间 布尔类型与字符串类型 内联函数 const限定修饰符的各种用法 引用类型 新的内存分配方法 新的显式类型转换机制CPP2:类与对象 对象与类的基本概念 类与对象的定义和使用 类成员的访问控制 this指针的概念和用法 对象的作用域与生存期 函数的缺省参数与函数重载CPP3:类的创建与销毁 构造函数和析构函数 拷贝构造函数与赋值函数 缺省构造函数与隐含构造

26、函数 复杂对象构造函数与析构函数的设计 初始化列表的使用 复杂对象构造函数与析构函数的执行过程 深拷贝与浅拷贝CPP4:类与对象的高级特性 类的前向声明 用构造函数定义类型转换 类的静态成员 类的友元 const对象及成员 指向类的成员的指针CPP5:类的继承和组合 组合关系与继承关系 派生类的定义及三种继承方式 派生类的生成过程 类型兼容规则 多继承 同名隐藏及二义性 虚基类 派生类对象的内存布局CPP6:类的多态性和虚函数 多态的概念 静态与动态联编 运算符重载 虚函数 虚析构函数 纯虚函数与抽象类 运行时类型识别CPP7:模板 函数模板 类模板 模板的实例化机制 模板的特化 动态数组类模板与vector 链表类模板 栈类模板 队列类模板CPP8:异常 异常处理的基本思想 异常处理的语法 异常接口声明 异常安全性原则 智能指针

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com