《C++程式设计教程(第二版)》是由朱红、赵琦、王庆宝编着,2016年清华大学出版社出版的21世纪高等学校计算机教育实用规划教材。该教材面向计算机及相关专业本、专科学生,是学习C++语言的基础教材。
该教材是为高等院校程式设计课程编写的教材,全书共16章,分为两个部分,第一部分是C++语言基础,包括第1~8章,主要讲述C++的数据类型、运算规则,顺序、选择、循环结构的程式设计,以及数组、函式、指针、结构体等内容,侧重于基本概念、基本语法及常规算法; 第二部分是面向对象程式设计基础,包括第9~16章,主要介绍类和对象、类的构造和析构、友元、运算符重载、继承和派生及输入输出流等内容。
基本介绍
- 书名:C++程式设计教程(第二版)
- 作者:朱红、赵琦、王庆宝
- ISBN:9787302422839
- 类别:21世纪高等学校计算机教育实用规划教材
- 页数:414页
- 出版社:清华大学出版社
- 出版时间:2016年9月1日
- 装帧:平装
- 开本:16开
- 字数:653千字
- CIP核字号:2015283736
成书过程
修订过程
该教材由朱红、赵琦、王庆宝编着,在编写过程中,闫玉德、王芳、钱芸生、陈文建、朱近、刘明、刘永、张微、俞虹、蔡骅、靳从等老师对该教材的内容及修订提出了意见。同时,编者参阅了C++的参考书和有关资料。
出版工作
2016年9月1日,该教材由清华大学出版社出版。
责任编辑 | 封面设计 | 责任校对 | 责任印製 |
---|---|---|---|
闫红梅、王冰飞 | 常雪影 | 时翠兰 | 何芊 |
内容简介
全书共16章,分两个部分。
第一部分是C++语言基础,共有8章。第1章C++基础知识介绍C++的发展历史、C++程式的基本要素和C++程式的开发步骤;第2章基本数据类型与表达式介绍C++语言的基本数据类型、运算符与表达式以及数据类型转换,简单输入/输出语句等;第3章基本流程控制结构介绍结构化程式的设计方法,以及与3种控制结构——顺序、选择和循环结构相关联的语法知识及其控制语句;第4章函式介绍函式的定义与声明,函式的调用,内联函式、重载函式以及函式的作用域等内容;第5章编译预处理介绍编译预处理的知识以及3种预处理指令——宏、档案包含和条件编译;第6章数组介绍一维数组和二维数组的定义与使用,数组名作为函式参数的套用,字元数组与字元串的套用;第7章指针介绍指针与指针变数的概念,以及指针运算、指针数组、函式指针、指针的指针等;第8章结构体和共用体介绍了C++的构造数据类型,有结构体、共用体和枚举类型,对单向鍊表的各种操作也做了说明。
第二部分是面向对象程式设计基础,共有8章。第9章类和对象介绍面向对象程式设计的基本要素、类和对象的定义方法、对象的初始化、this指针等;第10章构造函式和析构函式介绍默认的构造函式、构造函式的重载、複製构造函式和显式定义的析构函式;第11章静态成员与友元介绍了静态数据成员和静态成员函式、友元函式和友元类;第12章运算符重载介绍单目与双目运算符的重载,包括重载成为成员函式或友元函式在定义格式及套用中的区别;第13章继承和派生介绍基类和派生类,单继承、多继承和虚基类,继承中冲突的解决和支配规则等;第14章虚函式介绍了虚函式与运行时的多态性的概念,包括虚函式的作用和功能、虚函式的套用、纯虚函式和抽象类等;第15章输入输出流介绍IOS类、键盘输入和萤幕输出、磁碟档案的输入输出等;第16章C++工具介绍模板的概念和异常处理,该章内容是选学内容。
教材目录
第1章C++基础知识 1.1C++与Visual C++语言 1.2C++程式简介 1.2.1一个简单的程式 1.2.2C++程式的基本要素 1.2.3C++程式的书写规则 1.3C++程式的开发步骤与上机实践 1.3.1C++程式的开发步骤 1.3.2C++程式的上机实践 1.4信息在计算机中的表示 1.4.1进位记数制 1.4.2带符号数在计算机中的表示 1.4.3字元在计算机中的表示 练习题 第2章基本数据类型与表达式 2.1数据类型 2.2常量和变数 2.2.1常量 2.2.2变数 2.3整型数据 2.3.1整型常量 2.3.2整型变数 2.4浮点型数据 2.4.1浮点型常量 2.4.2浮点型变数 2.5字元型数据 2.5.1字元型常量 2.5.2字元型变数 2.5.3字元串常量 2.6类型转换 2.6.1不同类型数据间的混合算术运算 2.6.2赋值时的类型转换 2.6.3强制类型转换符 2.7运算符与表达式 2.7.1算术运算符与算术表达式 2.7.2关係运算符与关係表达式 2.7.3逻辑运算符与逻辑表达式 2.7.4赋值运算符与赋值表达式 2.7.5自增运算符与自减运算符 2.7.6逗号运算符与逗号表达式 2.7.7sizeof()运算符及表达式 2.7.8表达式中运算符的运算顺序 2.8简单的输入/输出语句 2.8.1十进制整数、实数与字元数据的输入 2.8.2十六进制或八进制数据的输入 2.8.3数据的输出 练习题 第3章基本流程控制结构 3.1结构化程式设计基础 3.1.1结构化程式设计 3.1.2基本控制结构 3.1.3C++语言中语句的分类 3.2选择结构语句 3.2.1if语句 3.2.2条件运算符“?:” 3.2.3switch语句 3.3循环结构语句 3.3.1while语句 3.3.2do…while语句 3.3.3for语句 3.3.43种循环的比较及适用场合 3.3.5多重循环 3.4控制执行顺序的语句 3.4.1break语句 3.4.2continue语句 *3.4.3goto语句 *3.4.4exit()和abort()函式 3.5综合套用举例 练习题 第4章函式 4.1函式概述 4.2函式的定义与调用 4.2.1函式的定义 4.2.2函式的调用 4.2.3引用作为函式参数 4.3函式的嵌套调用 4.4函式的递归调用 4.5内联函式 4.6重载函式 4.7带有默认参数的函式 4.8局部变数和全局变数 4.8.1局部变数 4.8.2全局变数 4.9变数的存储类别 4.9.1变数的生存期和存储类别 4.9.2auto型变数 4.9.3static局部变数 4.9.4register型变数 4.9.5extern型变数 4.9.6用static声明全局变数 4.10内部函式和外部函式 4.10.1内部函式 4.10.2外部函式 练习题 第5章编译预处理 5.1宏定义 5.1.1不带参数的宏定义 5.1.2带参数的宏定义 5.2档案包含 5.3条件编译 练习题 第6章数组 6.1数组的定义和引用 6.1.1一维数组的定义 6.1.2一维数组的引用 6.1.3一维数组的初始化 6.1.4一维数组程式举例 6.2二维数组的定义和引用 6.2.1二维数组的定义 6.2.2二维数组的引用 6.2.3二维数组的初始化 6.2.4二维数组程式举例 6.3数组作为函式的参数 6.3.1数组元素作为函式的实参 6.3.2数组名作为函式的实参 6.3.3二维数组作为函式的参数 6.4字元数组 6.4.1字元数组的定义 6.4.2字元数组的初始化 6.4.3字元串和字元串结束标誌 6.4.4字元数组的输入/输出 6.4.5字元串处理函式 6.4.6字元数组的套用举例 练习题 第7章指针 7.1指针与地址 7.1.1指针的概念 7.1.2指针变数的定义 7.1.3指针变数作为函式参数 7.2指针与一维数组 7.2.1通过指针引用一维数组中的元素 | 7.2.2通过指针在函式间传递一维数组7.3字元指针与字元串 7.3.1字元数组与字元指针 7.3.2字元串操作的特点 7.4指针与函式7.4.1函式指针变数 7.4.2指针型函式 7.5指针与二维数组 7.5.1二维数组的地址 7.5.2通过指针引用二维数组中的元素 7.6指针数组与指向指针的指针 7.6.1指针数组 7.6.2指针的指针 7.6.3多级指针小结 7.7动态存储分配 练习题 第8章结构体和共用体 8.1结构体 8.1.1结构体与结构体类型的声明 8.1.2结构体类型变数 8.1.3结构体数组和指针 8.2鍊表 8.2.1正向鍊表 8.2.2建立反向鍊表 8.3共用体 8.3.1共用体类型与共用体变数 8.3.2共用体变数的引用 8.4枚举 8.5用typedef声明类型 练习题 第9章类和对象 9.1面向对象程式设计概述 9.1.1面向对象 9.1.2面向对象中的主要概念 9.1.3面向对象的程式设计 9.2类的声明和对象的定义 9.2.1类的声明 9.2.2对象的定义 9.2.3对象成员的访问 9.2.4用类的指针访问对象成员 9.2.5用对象的引用变数访问对象成员 9.3成员函式 9.3.1重载类的成员函式 9.3.2默认参数的类的成员函式 9.4this指针及在成员函式中访问成员函式 9.4.1this指针 9.4.2在成员函式中访问成员函式 9.5类和对象的套用举例 练习题 第10章构造函式和析构函式 10.1构造函式 10.1.1构造函式的作用 10.1.2构造函式的重载 10.1.3默认的构造函式 10.2析构函式 10.3构造对象的顺序 10.4对象的动态建立和释放 10.5複製构造函式 10.6临时对象 10.7面向对象的程式设计套用举例 练习题 第11章静态成员与友元 11.1静态成员 11.2静态成员函式 11.3友元函式 11.3.1将普通函式声明为友元函式 11.3.2将另一类的成员函式声明为类的友元函式 11.4友元类 练习题 第12章运算符重载 12.1运算符重载的概念 12.2将运算符重载为成员函式 12.2.1将双目运算符重载为成员函式 12.2.2将单目运算符重载为成员函式 12.2.3将赋值运算符重载为成员函式 12.3将运算符重载为友元函式 12.3.1将双目运算符重载为友元函式 12.3.2将单目运算符重载为友元函式 12.4类型转换运算符函式 12.5重载流插入和流提取运算符 12.6综合实例 练习题 第13章继承和派生 13.1继承与派生基础 13.1.1继承与派生的概念 13.1.2派生类的定义 13.1.3派生类的3种继承方式 13.2派生类的构造函式和析构函式 13.2.1单继承派生类的构造函式 13.2.2多继承派生类的构造函式 13.2.3有子对象的派生类的构造函式 13.3继承的冲突与支配 13.3.1冲突 13.3.2支配 13.3.3赋值兼容规则 13.4虚基类 13.4.1虚基类的定义 13.4.2虚基类的初始化 练习题 第14章虚函式 14.1多态性的概念 14.2虚函式简介 14.3纯虚函式与抽象类 练习题 第15章输入输出流 15.1C++的输入输出流 15.1.1ios类的结构 15.1.2输入流 15.1.3输出流 15.2格式化输入与输出 15.2.1输入的格式化 15.2.2输出的格式化 15.3档案流 15.3.1档案的概念 15.3.2档案的打开与关闭 15.3.3对文本档案的操作 15.3.4对二进制档案的操作 练习题 第16章C++工具 16.1模板 16.1.1模板的概念 16.1.2函式模板 16.1.3类模板 16.2异常处理 16.2.1异常的概念 16.2.2异常处理的机制 练习题 附录AASCII字元集及其代码对照表 附录B库函式 参考文献 |
(注:目录排版顺序为从左列至右列)
教学资源
- 配套教材
该教材有配套的教学参考书——《C++程式设计上机实践与学习辅导(第二版)》,书中有16个单元的上机实验内容,与主教材中的章节相对应,同时针对学习中的难点补充了例题讲解和各种典型的习题,并有6套模拟试卷及习题解答。
书名 | 书号 | 出版社 | 出版时间 | 作者 |
---|---|---|---|---|
《C++程式设计上机实践与学习辅导(第二版)》 | 9787302422846 | 清华大学出版社 | 2016.08.01 | 王庆宝、朱红 |
- 课程资源
该教材还提供PPT课件、源码。
教材特色
该教材所列举的例题、习题均在VC++6.0下调试通过。
该教材作为C++语言的入门教材,不仅介绍了C++语言,还讲述了面向对象的程式设计方法。该教材的主要特色如下:
- 强调基本概念、基本语法、基本结构,不深究语法的细节,从巨观上把握程式的结构;该教材在对概念的讲解上注重这些概念在编程中的作用及其所实现的功能,而不去罗列一些具体的语法细节和特例;
- 注重模组化的程式设计,注重模仿,强调规範化的程式结构,不提倡过多编程技巧和个人风格;该教材所涉及的概念、算法、语法包括例题的讲解都强调规範化、结构化,引导读者适当地模仿,从基本程式的学习开始就养成规範编程的习惯;
- 该教材利用了图示说明,把複杂的概念、算法用图形的形式描述出来。
作者简介
朱红,女,北京人,博士,南京理工大学电子工程与光电技术学院老师。
赵琦,1985年生,硕士,西南技术物理研究所工程师,主要研究高能雷射在湍流大气中传输的理论、数值模拟和计算研究以及雷射测量与套用。
王庆宝,南京理工大学电子工程与光电技术学院老师。