课程概况
编写大型计算机程序需要学习程序设计方法。程序的功能是数据处理,其中包括数据和算法两大部分。数据是程序处理的对象,对应程序中的变量或常量。算法是描述数据处理过程的一组操作步骤,即程序中所编写的一组语句序列。大型程序的功能很强,这意味着要处理大量的数据,数据处理的算法也很多、很复杂。
程序设计方法的基本思想是:将大型程序中的数据和算法分解成程序零件,将不同零件的设计任务交由不同的程序员完成,这样就能以团队的形式来共同开发,然后将开发好的零件组装在一起,最终完成复杂的程序功能。目前,程序设计方法分为结构化程序设计和面向对象程序设计两种,它们分别采用不同的方式来分解和组装程序零件。
更进一步,如果所分解出的程序零件在以前项目中曾经开发过,或者可以从市场上购买到,那么就可以直接使用这些零件来组装软件,实现快速开发。使用已有的程序零件,实际上是重用其程序代码,这就是程序设计中的代码重用(code reuse)。为了让不同程序员开发的程序零件能够正确地组装在一起,在编写时它们应遵守共同的语法规则。因为易于复制,代码重用的成本很低,这是软件行业所独有的特点。代码重用可以极大地提高软件开发效率,代码重用也因此成为软件技术不断进步的主要动力。
为了应用程序设计方法来编写大型复杂程序,计算机语言需要提供描述和组装程序零件的语法规则。支持结构化程序设计方法的语言称为结构化程序设计语言,支持面向对象程序设计方法的语言称为面向对象程序设计语言。C语言是一种结构化程序设计语言,而C++语言既支持结构化程序设计方法,又支持面向对象程序设计方法。
本课程将详细讲解面向对象程序设计方法,并具体介绍C++语言中相关的语法规则。
课程大纲
01
第7章 面向对象程序设计之一
学习内容:面向对象程序设计方法将程序中的数据元素和算法元素根据其内在关联关系进行分类管理,这就形成了“类”的概念。分类可以更好地管理程序代码。类相当于是一种自定义的数据类型,用类所定义的变量被改称为“对象”。本章通过具体案例演示了结构化程序设计是如何演变到面向对象程序设计的,然后再系统地介绍面向对象程序设计方法。本章内容包括类的定义、对象的定义与访问、对象的构造与析构、类中的常成员与静态成员以及类的友元等。
课时
12学时
02
第8章 面向对象程序设计之二
学习内容:重用类代码有三种形式,分别是用类定义对象、类的组合和类的继承。本章讲解类的组合与继承。程序员可以基于已有的零件类来定义新的整体类,这就是类的组合。程序员也可以继承已有的基类来定义新的派生类,这就是类的继承与派生。利用派生类和基类之间的特殊关系可以进一步提高程序代码的可重用性,这就是面向对象程序设计中的对象替换与多态技术。本章还会具体讲解与多态相关的运算符重载、虚函数和抽象类等概念。最后本章将简单讨论一下类的多继承。
课时
8学时
03
第9章 流类库与文件I/O
学习内容:C语言通过输入/输出函数(例如scanf、printf)实现了数据的输入和输出,C++语言则是通过输入/输出流类为程序员提供输入/输出功能。这些输入/输出流类都是从类ios派生出来的,它们组成了一个以ios为基类的类族,这个类族被称为C++语言的流类库。本章将介绍流类库中三组不同功能的输入/输出流类,分别是通用输入/输出流类、文件输入/输出流类和字符串输入/输出流类。
课时
4学时
04
第10章 C++标准库
学习内容:C++语言全盘继承了C语言的标准C库,另外又增加了一些新的库。新库中包含一些新增的系统函数,但更多的是为面向对象程序设计方法提供的系统类库,这些新库被统称为C++标准库。为了更好地凝练源代码,C++语言引入了模板技术,其中包括函数模板和类模板。模板是一种代码重用技术,C++标准库在编写时就采用了模板技术,因此标准库能以较少的代码量却提供了很强大的功能。本章重点介绍模板技术、C++语言的异常处理机制以及C++标准库所提供的数据集合存储及处理功能。本章最后还以微软公司开发的MFC类库为例,简单介绍如何开发一个Windows图形用户界面程序。
课时
8学时
预备知识
《C语言程序设计》,或
已选修中国大学MOOC《C++语言程序设计(上)》(阚道宏 主讲)
参考资料
参考教材:
《C++语言程序设计(MOOC版)》(第2版),阚道宏编著,清华大学出版社,2017年10月。ISBN 9787302475620。配套教材可通过网上商城购买,例如天猫、京东、当当等。