《C++面向对象程序设计(课程教学大纲).docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计(课程教学大纲).docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C+面向对象程序设计(课程教学大纲)课程教学大纲课程名称中文名称C+面向对象 程序设计英文名 称C+ Object-Oriented Programming教学目本课程的目标是促进学生理解和建立面向对象的程序设计思想,并使得学生掌握采用C+面向对象程序设计方法来求解实际问题,培养学生问题分析、标对象模型建立、代码编写、程序验证,利程序调试的能力,提高程序编写效率和运行效率,提高代码的可复用性和可维护性。课程负 责人雍俊海学分学时学分学时安排(课内外学时比为 1: 2)32/64(教学学时/课外学时)课程分类本科2.4 控制结构54if 语句和 if-else 语句 552.4.1 switch
2、 语句 57for 语句 602.4.2 while 语句 64do-while 语句 652.4.3 continue 语句 65break 语句 672.5 模块划分68函数基础682.5.1 主函数 main77函数递归调用782.5.2 函数指针类型81关键字 static832.5.3 模块划分的原那么与过程85本章小结892.6 习题89练习题892.6.1 思考题92 第3章面向对象程序设计基础933.1 类与对象93类声明与类定义基础943.1.1 成员变量94位域 963.1.2 类对象与实例对象97构造函数1013.1.3 析构函数108成员函数1113.2 继承性114基
3、本定义1143.2.1 父子类实例对象之间的兼容性121基本原那么1243.2.2 虚拟继承128初始化单元和委托构造函数1333.2.3 构造函数与析构函数的执行顺序135封装性1463.2.4 成员的访问方式147继承方式和访问方式1523.2.5 在继承中的全局类156友元 1603.3 多态性169函数重载(静态多态性)1693.3.1 默认函数参数值175运算符重载1773.3.2 函数覆盖(动态多态性)183关键字 this1933.4 函数调用和关键字const198函数形式参数与调用参数1983.4.1 非静态成员函数本身的const常量属性202函数的返回数据类型2043.5
4、 面向对象程序设计的核心思路207本章小结2173.6 习题218练习题2183.6.1 思考题224第4章共用体2254.1 共用体的定义与格式225在共用体中调用成员变量的构造函数与析构函数2284.2 本章小结2354.4习题2354.4.1 练习题235思考题235第5章异常处理236异常的抛出与捕捉2365.1 浅拷贝和深拷贝247浅拷贝2475.1.1 深拷贝251防止内存泄漏2545.1.2 含有内存泄漏的例程254避开内存泄漏的方案2565.2 本章小结259习题2595.2.1 练习题259思考题261第6章模板与标准模板库262自定义函数模板2626.1 自定义类模板267
5、向量类模板vector2746.1.1 向量的构造函数、长度和容量274向量的迭代器2796.1.2 改变向量长度与容量282插入与删除元素2836.1.3 向量赋值与比拟287集合类模板set2926.1.4 仿函数292集合的构造函数和迭代器2946.1.5 修改集合内容的成员函数301用于查询的集合成员函数3066.1.6 集合赋值与比拟311排序函数模板sort3196.2 本章小结323习题3246.2.1 练习题324思考题325第7章字符串处理326输出单个字符3267.1 基于数组的窄与宽字符串转换328字符串类3427.1.1 字符串的构造函数343字符串的容量与长度3467
6、.1.2 获取字符串的内容与子串350字符串赋值与比拟大小3537.1.3 字符串迭代器360插入与删除3667.1.4 查找与替换以及交换377基于字符串类的超长整数案例4067.2 本章小结412习题4137.2.1 练习题413思考题415第8章标准输入输出与文件处理416标准输入输出4168.1.1 出入流类ios417输入流类 istream4228.1.2 输出流类 ostream436格式控制4438.2 文件流451只读文件流类ifstream4528.2.1 只写文件流类ofstream464读写文件流类fstream4698.3 习题478练习题4788.3.1 思考题48
7、0第9章MFC图形界面程序设计4829.1 MFC程序总述483单文档程序设计4849.2 图形绘制504多文档程序设计5179.3 基于对话框的MFC程序设计539基于功能区(Ribbon)的MFC程序设计5489.4 本章小结562习题5639.4.1 练习题563思考题566第10章设计模式567单体模式56810.1.1 传统的单体模式解决方案568无内存泄漏的单体模式解决方案57110.2 适配器模式575接口类和接口适配器类57610.2.1 对象适配器模式578类适配器模式.58210.3 策略模式586工厂方法模式59010.4 本章小结601习题 60210.4.1 练习题6
8、02思考题603第11章编程规范604命名空间60411.1 代码组织规范610文件组织规范61011.1.1 头文件内容规范611源文件内容规范61411.2 内联函数617命名规范62711.2.1 文件名629命名空间、类型命名和关键字typedef62911.2.2 函数、函数模板和变量的命名630枚举成员、宏和只读变量的命名63111.2.3 本书所用的命名规范632排版规范63311.2.4 制表符与缩进634空白行与空格63611.2.5 行数与每行字符数636语句规范63811.2.6 函数相关的语句规范639类型与变量相关的语句规范64011.2.7 简洁且无歧义的表达式64
9、2循环语句与空语句64611.2.8 给语句添加注释646本章小结64711.3 习题 648练习题64811.3.1 思考题650第12章 程序调试与测试65112.1 程序调试651断言 65112.1.1 设置断点与查看即时信息653查看函数堆栈65612.1.2 编写调试日志文件程序658程序测试66212.1.3 程序测试基本概念663穷举测试66412.1.4 黑盒测试674白盒测试67912.2 本章小结682习题 68212.2.1 练习题682思考题684附录A例程的索引685附录B函数、宏和运算符的索引688 参考文献697课程类型2:本科学科基础课授课语种中文考核方式考试
10、教材雍俊海.C+程序设计从入门到精通.北京:清华大学出版社.书号(ISBN): 978-7-302-59237-2.先修要求程序设计基础或者C语言程序设计.适用院系及软件工程或计算机专业专业(本课程与培养方案的关系,与同类课程的比拟分析等):应学校的大类招生培养要求设立本课程,本课程是软件工程与计算机学科的基础课程,将为本学科的后续学习建立必要的基础。课程设立依据国内外软件工程与计算机科学与技术专业的院系均大多设立同类课程。与校内外大学的同类课程相比,符合清华大学学生的特点,采用最新的C+标准,并将面向对象与程序复用性和扩展性相结合,具有新颖性和实用性等特色。1课程内容简介面向对象已成为计算机
11、和软件工程领域的主流技术之一,C+语言有效支持面向对象设计思想,应用十分广泛。本课程讲解面向对象的思维模式和程序设计方法, 涵盖类、对象、封装、继承、多态、模板、编程规范、设计模式、程序测试和程序调试等内容。本课程的目标是促进学生理解和建立面向对象的程序设计思想, 并使得学生掌握采用面向对象程序设计方法来求解实际问题,培养学生问题分析、对象模型建立、代码编写、程序验证,和程序调试的能力,提高程序编写效率 和运行效率,提高代码的可复用性和可维护性。Object-oriented technique is one of the main techniques in the fields of co
12、mputers and software engineering. C+ programming can well support the object-oriented design idea, and is widely used. This course introduces the object-oriented thinking model and the object-oriented program design method. The contents cover classes, objects, encapsulation, inheritance, polymorphis
13、m, templates coding standards, design patterns, program testing and debugging programs. This course aims to help students to understand and build the object- oriented programming design idea. Students are required to master the object- oriented programming design method to solve some practical probl
14、ems. This course w川 train the abilities of students including problems analysis, building object models, coding, program testing, and debugging programs such that the efficiency of coding and running programs will be improved. Moreover, reusability and maintainability of programs will be enhanced as
15、 well.2成绩评定标准所占比例作业30%、期末考试40 %、工程30%3教学安排第几讲主要内容教字要素教学时数课外学时(与每讲对应)活动学时数1绪论 励志 学习方法 C”简介 课程简介 什么是好的C+程序?讲授(LEQ2习题42类与对象基础 面向对象基本思路 类声明与定义基础 面向对象程序例如 构造函数 析构函数 在O中申请和释放内存 访问类的成员讲授(LEC)2习题43继承性 继承性总体概述 类继承格式与代码例如 在类继承F的构造函数与析构函数 子类与父类的兼容性 虚拟继承 继承与组合的区别讲授(LEQ2习题44封装性 继承方式与访问方式 封装性例程 封装性的注意多项 在维承性中的全局类
16、 友元讲授(LEC)2习题45多态性 多态性概述 静态多态性 运算符赋我 动态多态性 纯虚函数 抽象类讲授(LEQ2习46指针和左位引用 指针 指针与const 左值引用 函数参数的传递方式 双向链表案例讲授(LEC)2习愿47MFC程序图形界面设计 MFC概述 MFC多文档例程 使用CDC类的基础 CDC 类 点集的包围恻程序例程基础框架讲授(LEC)2习48MFC事件处理 点集的包围圆程序例程事件处理 基卜对话框的MFC程序讲授(LEC)2习题49模板 函数模板 类模板 向量:vector 集合set 排序(sort)讲授(LEC)2习题410字符串处理 字符系列类型 字符数组形式的字符串
17、 字符串类 超长整数案例讲授(LEC)2习题411流 流的基本概念 流类和流对象 标准输入输出流 格式控制 文件输入输出流讲授(LEC)2习题412命名空间、异常处理、类对象和玳体模式讲授(LEQ2习题413设计模式 设计模式简介 适配器模式讲授(LEC)2习题4工厂方法模式14编程规范、内联函数与共用体讲授(LEC)2习题415策略模式与程序测试 策略模式 程序测试基本原理 黑盒测试 白盒涌试讲授(LEC)2习题416复习 O+面向对象程序设计注意事项汇总 综合练习 答疑讲授(LEC)2习题4合计教学时数:32实验时数:0课外学时:64配套参考教材内容简介本书讲解C+程序设计知识及其编程方法
18、,包括结构化程序设计、面向对象程序设计、共用体、异常处理、模板与标准模板库、字符串处理、标准输入输出与文 件处理、MFC图形界面程序设计、设计模式、编程规范、程序调试与测试等内容,并且每章都附有习题。本书的章节编排与内容以人们学习与认知过程为基础, 紧扣最新国际标准,与公司的实际需求相匹配。本书采用特殊字体突出中心词,以期读者在轻松和欢乐之中迅速了解与掌握C+程序设计的知识和方法,并应用 到实践中去。本书内容丰富易学,而且提供丰富例程和例句,既可以作为计算机专业和非计算机专业的C+程序设计和面向对象程序设计等课程的基础教材,也可以作为需要 使用C+语言的工程人员和科技工作者的自学参考书。本书特
19、色重点突出:木书不仅在内容上抓住并突出C+程序设计的重点和核心本质,而且在形式上通过加粗加框的方式突出各局部内容以及各个概念的中心词。准确严谨:本书努力去除现有C+相关文献资料中的浮华与众多的错误,内容准确严谨,并且详细讲解如何进行C+程序等价类划分,提高程序测试的有效性。内容新颖:本书内容紧扣最新国际标准和软件产业最新实际需求,在C+面向对象程序设计、图形界面程序设计、设计模式和编程规范等方面具有鲜明特色。例程丰富:本书提供了 109个例程和众多的例如性代码,采用简明方式揭示C+程序设计本质之处,通过翔实例程和例句展现C+编程思想,方便入门与自学。目录向上滑动阅览第1章绪论1C+语言简介11
20、.1 C+入门程序4121常规项口操作41.1.2 C+类C局部经典入门程序5C+类C局部结构化入门程序111.1.3 C+面向对象局部入门程序15本章小结171.2 习题17练习题171.2.2 思考题18第2章结构化程序设计192.1 预备知识19标识符192.1.1 关键字和保存字21文件包含语句232.1.2 宏定义与条件编译24数据类型262.1.3 变量定义和声明27布尔类型282.1.4 整数系列类型28字符系列类型302.1.5 浮点数类型32枚举类型342.1.6 数组类型和基于数组的字符串36指针类型与动态数组392.1.7 左值引用与右值引用42自动推断类型auto432.1.8 类型别名定义typedef44常量屈性 const452.2 运算46算术运算482.2.1 关系运算50逻辑运算502.2.2 位运算50赋值类运算532.2.3 条件运算53其他运算54