教学日历第一周:任务:课堂介绍本课程相关事宜。时间地点见课表。组织同学自由结组,组成学习小组,互相帮助,为活动做准备。自学第1章和第2章。完成本章作业通过教育在线提交。注意提交作业截止日期:2013年9月9日。学习要点:第1章绪论1.1计算机程序设计语言的发展了解,浏览。1.2面向对象的方法阅读,理解。类、对象的基本概念面向对象的三个基本特征:封装、继承、多态。思考这些概念,为后面的程序设计打基础。1.3面向对象的软件开发了解,浏览。1.4信息的表示与存储可以根据自己兴趣取舍。1.5程序开发的基本概念了解,浏览。第2章C++简单程序设计2.1C++语言概述了解C++语言。理解C++语言的特点,简单概括为两个:兼容C和支持面向对象。兼容C,则C++字符集只是在C的基础上扩展了字符,语法(词法和句法等)与C大致相同,并具有了面向对象的特征,增加了关键字,注意其中很重要的一个关键字class(类)。虽然C和C++程序看起来很像(因为兼容,语法类似),但是编程思想确是有本质不同,因为C++程序是面向对象的(回忆1.2节中的基本概念)。2.2基本数据类型和表达式本节内容与C语言类似,可作为复习。注意掌握C++有哪些数据类型,各种数据类型用于存储怎样的数据,各种数据类型的范围与精度,变量与常量,常用转义字符。掌握变量需先定义,再访问。访问的方式有:依据变量名访问,依据变量的地址访问,依据指针对变量进行访问,依据引用进行访问。特别注意引用型变量,在本书的第三章有简单的介绍。本书介绍不多的地方,可阅读其他书补充。掌握表达式由数据和运算符组成。首先掌握各种C++的运算符功能,特别注意运算符的优先级和结合性。正确使用各种表达式。了解C++语言中的类型转换的规则和强制类型转换。2.3数据的输入与输出掌握数据的输入和输出,熟练使用cin和cout。可以认为它是printf和scanf在C++中升级版本,由I/O流库提供,比前者更方便使用。熟记常用输出格式控制符。2.4算法的基本控制结构掌握本节内容,与C语言类似,是复习的部分。掌握程序的三种基本控制结构。掌握if语句,switch语句。掌握while语句,do_while语句,for语句。掌握条件表达式的使用。2.5自定义数据类型掌握本节内容,与C语言类似,是复习的部分。2.6深度搜索理解本节内容。2.7小结理解本节内容。作业:不需提交作业:前两章的课后习题。课后习题用来检验自己对知识和技能的掌握情况,同学可根据自己的情况选做课后习题,已很熟练的同学可以少做,不熟练的同学需要多做,确保自己能够熟练完成类似难度的编程任务。习题答案在《C++语言程序设计(第4版)学生用书》中。需要从网上提交的作业见“教育在线”。第二周:任务:请各班班长提交本班学习小组结组名单,于9月13日前发至老师邮箱:chencai@bjut.edu.cn和zmgui@bjut.edu.cn。自学第3章。完成本章作业通过教育在线提交。注意提交作业截止日期:2013年9月16日。学习要点:第3章函数3.1函数的定义与使用掌握本节内容,与C语言类似,是复习的部分。掌握函数的定义、函数的调用,理解函数调用的执行过程,理解递归调用。掌握函数参数的值传递和地址传递,掌握引用参数的使用。熟练、规范地用函数编写程序。3.2内联函数理解本节内容。3.3带默认形参值的函数掌握本节内容。3.4函数重载理解本节内容。3.5C++系统函数理解本节内容。3.6深度探索理解本节内容。3.6小结理解本节内容。作业:不需提交作业:第三章的课后习题。课后习题用来检验自己对知识和技能的掌握情况,同学可根据自己的情况选做课后习题,已很熟练的同学可以少做,不熟练的同学需要多做,确保自己能够熟练完成类似难度的编程任务。习题答案在《C++语言程序设计(第4版)学生用书》中。需要从网上提交的作业见“教育在线”。第三、四周:任务:自学第4章。完成本章作业通过教育在线提交。注意提交作业截止日期:2013年9月30日。学习要点:第4章类与对象4.1面向对象程序设计的基本特点面向对象的程序设计首先是抽象出对象(属性和行为构成对象),研究对象之间的关系,然后利用封装、继承和多态设计和实现程序。4.2类和对象与C对比,类是C++中的全新内容,体现面向对象编程最基础的语法内容,需要重点学习。定义类,属性成为类的数据成员、行为成为类的成员函数。学会编写类的成员函数。学会使用类对象。逐渐体会面向对象的思想。学会使用private、protected、public关键字控制对类成员的访问。仔细体会定义三种不同类型成员的意义。重点体会面向对象的重要概念:封装。公有成员是对象的外部接口,私有成员不可用对象访问,只能类内部函数使用,但可以利用公有的get和set函数控制私有数据的读写。通常数据应该受到保护,定义为私有数据。外部接口对数据的访问用公有的set和get函数完成,从而控制对数据的读写。学习如何访问对象的成员。结合private、protected、public的意义思考类的对象或指针可以访问的对象成员有哪些?4.3构造函数和析构函数比较重要的内容,要深刻领会。构造函数:创建对象时,被自动调用的成员函数(公有),原型中没有返回类型。切记它不返回任何值。将它与void区分开。析构函数:对象超出生存范围时被自动调用的成员函数(公有)。切记!一个类只能有一个析构函数。掌握拷贝构造函数的使用4.4类的组合理解类的组合的意义和用途,掌握编程方法。理解构造和析构函数调用顺序。了解前向引用声明即可。4.5UML图形标识了解UML。4.6结构体和联合体认真阅读本节,提高程序设计能力。4.7综合实例--个人银行账户管理程序认真阅读本节,提高程序设计能力。4.8深度探索理解本节内容。4.9小结理解本节内容。作业:不需提交作业:第4章的课后习题。课后习题用来检验自己对知识和技能的掌握情况,同学可根据自己的情况选做课后习题,已很熟练的同学可以少做,不熟练的同学需要多做,确保自己能够熟练完成类似难度的编程任务。习题答案在《C++语言程序设计(第4版)学生用书》中。需要从网上提交的作业见“教育在线”。第五周:任务:自学第5章。完成本章作业通过教育在线提交。注意提交作业截止日期:2013年10月8日。学习要点:第5章数据的共享与保护5.1标识符的作用域与可见性深刻理解作用域和可见性。C中的作用域和可见性的概念在C++中依然成立,C++又多了与类作用域的概念,可见性也多了和类相关的部分,如私有成员只是对其他类成员可见。5.2对象的生存期对象的生存期与其他类型变量的生存期的概念相同。5.3类的静态成员重点理解类的静态成员是属于类的,而非属于对象。掌握什么时候用类的静态成员以及静态成员的用法。5.4类的友元理解友元的概念,对理解面向对象有帮助。但友元对类的封装是有破坏作用的,学习时应体会什么时候才适合使用友元类和函数。5.5共享数据的保护了解本节内容。本课程中这部分不是重点内容,但将来程序设计中可能遇到。5.6多文件结构和编译预处理命令理解本节内容。5.7综合实例--个人银行账户管理程序认真阅读本节,提高程序设计能力。5.8深度探索理解本节内容。5.9小结理解本节内容。作业:不需提交作业:第5章的课后习题。课后习题用来检验自己对知识和技能的掌握情况,同学可根据自己的情况选做课后习题,已很熟练的同学可以少做,不熟练的同学需要多做,确保自己能够熟练完成类似难度的编程任务。习题答案在《C++语言程序设计(第4版)学生用书》中。需要从网上提交的作业见“教育在线”。第六周:任务:自学第6章。完成本章作业通过教育在线提交。注意提交作业截止日期:2013年10月14日。学习要点:第6章数组、指针与字符串6.1数组本节内容与C语言类似,可作为复习。只是数组类型当然可以是对象类型6.2指针本节内容与C语言类似,可作为复习。只是指针当然可以是指向对象类型的指针,其语法是新学的内容。this指针是全新的概念,理解此概念。对象的成员函数是通过当前对象的this指针调用的。6.3动态内存分配动态内存分配的概念与C相同,学会使用C++中的new和delete操作符进行动态分配。6.4用vector创建数组对象了解,可以尝试使用。6.5深复制与浅复制了解。6.6字符串掌握string的使用,这是C++中全新的内容。其他内容与C中相同。6.7综合实例--个人银行账户管理程序认真阅读本节,提高程序设计能力。6.8深度探索理解本节内容。6.9小结理解本节内容。作业:不需提交作业:第6章的课后习题。课后习题用来检验自己对知识和技能的掌握情况,同学可根据自己的情况选做课后习题,已很熟练的同学可以少做,不熟练的同学需要多做,确保自己能够熟练完成类似难度的编程任务。习题答案在《C++语言程序设计(第4版)学生用书》中。需要从网上提交的作业见“教育在线”。第七、八周:任务:自学第7章。完成本章作业通过教育在线提交。注意提交作业截止日期:2013年10月28日。由出题负责人组织,小组讨论提出设计题目。学习要点:第7章继承与派生7.1类的继承与派生掌握类继承的概念和语法,更要理解面向对象的思想,体会面向对象的第2个重要概念:继承。7.2访问控制学会使用private、protected、public关键字进行访问控制,仔细体会何时适宜使用何种继承关系。注意应用访问声明的技巧。学习重名成员编译器如何处理,并进一步理解类成员的可见性与作用域。7.3类型兼容规则深刻理解类型兼容原则。7.4派生类的构造与析构函数掌握语法。理解派生类构造好和析构函数的调用顺序。7.5派生类成员的标识与访问学会巧妙利用访问控制达到自己的设计目的。重新复习和理解可见性、作用域和生存期。学会有同名函数时如何用作用域分辨。理解虚基类。7.6程序实例--用高斯消去法解线性方程组根据自己情况学习本节的实例。7.7综合实例--个人银行账户管理程序认真阅读本节,提高程序设计能力。7.8深度探索理解本节内容。7.9小结理解本节内容。作业:不需提交作业:第7章的课后习题。课后习题用来检验自己对知识和技能的掌握情况,同学可根据自己的情况选做课后习题,已很熟练的同学可以少做,不熟练的同学需要多做,确保自己能够熟练完成类似难度的编程任务。习题答案在《C++语言程序设计(第4版)学生用书》中。需要从网上提交的作业见“教育在线”。第九、十周:任务:自学第8章。完成本章作业通过教育在线提交。注意提交作业截止日期:2013年11月11日。11月5日题目答辩,地点注意教育在线通知。设计题目答辩之后修改,提交截止日期:2013年11月5日。学习要点:第8章多态性8.1多态性概述理解面向对象的第3个重要概念:多态。8.2运算符重载是多态的一种情况学习三个例子:成员函数形式重载加法(例8-1);成员函数形式重载前置和后置++运算符(例8-2);友元函数形式重载加法(例8-3)。8.3虚函数虚函数是学习重点。但本书在这个章节编写内容不够详尽,课找其他书籍补充。掌握语法。理解静态和动态绑定。理解实现多态的三个基本条件:①声明函数为虚函数;②通过指针、引用访问函数。③赋值兼容原则:基类指针可以指向派生类对象,但通过此指针只能调用基类成员,但如将同名函数声明成虚函数,则通过基类指针可调用派生类成员(指针正在指向的对象成员),从而实现多态。学会在需要的时侯使用多态性设计程序。了解虚析构函数即可。8.4纯虚函数与抽象类理解纯虚函数和抽象类8.5程序实例---用变步长梯形积分算法求解函数的定积分根据自己情况学习本节的实例。8.6综合实例--个人银行账户管理程序认真阅读本节,提高程序设计能力。8.7深度探索理解本节内容。8.8小结理解本节内容。作业:不需提交作业:第8章的课后习题。课后习题用来检验自己对知识和技能