C++程序设计(第三版)

-
【作 者】主编 曹岳辉 刘卫国
【I S B N 】978-7-5226-1115-0
【责任编辑】王玉梅
【适用读者群】本专通用
【出版时间】2022-12-01
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】320
【千字数】500
【印 张】20
【定 价】¥49
【丛 书】普通高等教育计算机类专业教材
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书全面介绍了面向过程和面向对象的C++程序设计方法,共10章,包括C++基础知识、程序控制结构、函数与编译预处理、数组与指针、自定义数据类型、类与对象、重载与模板、继承与派生、多态性与虚函数、输入/输出流。
各章节选用大量程序设计实例介绍基本概念和程序设计方法,同时配有课后习题供读者练习。本书配有辅导教材《C++程序设计实践教程》(第三版),内容包括上机指导及章节练习。
本书语言表达严谨,文字流畅,内容通俗易懂、重点突出、实例丰富,且由浅入深、相互衔接、循序渐进,适合作为高等学校程序设计课程的教材,也适合广大计算机爱好者阅读参考。
内容丰富
全面介绍面向过程和面向对象的C++ 程序设计方法。
设计合理
组织、编排上注重由浅入深、深入浅出、循序渐进。
实用性强
精心选取大量实例,讲解细致,拓展读者解题思路。
随着计算机技术的普及与提高,高等学校计算机基础教学的内容也在不断改革与发展。程序设计是大学生必须掌握的计算机知识。随着软件工程技术的不断发展,面向对象程序设计方法已成为当今软件开发的重要方法,一些新的开发环境不断涌现,进一步推动了面向对象与可视化编程技术的发展与应用。因此,掌握面向对象程序设计方法已经成为大学生计算机应用与软件开发能力的要求之一。
C++既兼容了C语言功能强、效率高、风格简洁、满足包括系统程序设计和应用程序设计的大多数任务需求的特点,又扩充了面向对象部分,即支持类、继承、派生、多态性等,解决了其代码的重用问题。C++实际上是既支持面向过程的结构化程序设计,又支持面向对象的程序设计的语言,所以,我们根据多年的实际教学经验,在程序设计课程教学改革研究时,选用C++作为程序设计课程的语言。对于本书内容的选择,我们力求面向读者的学习需要,全面介绍面向过程和面向对象的C++程序设计方法,让读者首先接受面向对象的程序设计思想方法,并理解面向对象程序设计是需要面向过程程序设计方法作为基础的。
本书保留了原有章节,共10章:第1~5章以介绍面向过程的程序设计为主;第6~10章以介绍面向对象的基本思想与方法为主。章节内容重新整合,使得在内容组织上更加合理。
本着加强基础、注重实践、突出应用的原则,本书力求有较强的可读性、适用性和先进性。我们的教学理念是:教学是教思想、教方法,真正做到“授人以鱼,不如授人以渔”。为了提高读者对程序设计思想方法的理解,本书结合相应章节的内容选用了大量的实例,通过实例的讲解,拓展读者解题思路,提高读者的程序设计能力。
本书所给出的程序示例均在Visual Studio 2022环境下进行了调试和运行。为了帮助读者更好地学习C++程序设计,编者还编写了配套教材《C++程序设计实践教程》(第三版),内容包括上机指导及章节练习。
本书由曹岳辉、刘卫国任主编,李利明、严晖任副主编。参编人员有杨长兴、李小兰、周春艳、赵颖、周欣然、吕格莉、蔡旭晖等。本书在编写过程中,得到了中南大学计算机基础教学实验中心全体教师的大力支持,在此表示衷心的感谢。
由于编者学识水平有限,书中疏漏在所难免,恳请广大读者批评指正。
第1章 C++基础知识 1
1.1 程序设计语言的基本概念 1
1.2 C++程序的基本结构 2
1.2.1 C++程序结构 2
1.2.2 C++程序的书写格式 4
1.2.3 C++集成开发环境 4
1.3 C++的词法规则 5
1.3.1 C++的字符集组成 5
1.3.2 C++的标识符与关键字 5
1.4 C++基本数据类型 6
1.5 常量与变量 8
1.5.1 常量 8
1.5.2 变量 11
1.6 运算符与表达式 12
1.6.1 算术运算符与算术表达式 12
1.6.2 关系运算符与关系表达式 14
1.6.3 逻辑运算符与逻辑表达式 15
1.6.4 位运算符与位运算表达式 16
1.6.5 赋值运算符与赋值表达式 17
1.6.6 三目运算符与三目条件表达式 19
1.6.7 逗号运算符与逗号表达式 20
1.6.8 指针运算 20
1.6.9 运算符的优先级及结合性 21
1.6.10 类型转换 23
习题1 24
第2章 程序控制结构 28
2.1 顺序结构 28
2.1.1 定义语句 28
2.1.2 表达式语句 28
2.1.3 复合语句 29
2.1.4 空语句 29
2.1.5 基本输入/输出 29
2.2 选择结构 32
2.2.1 if语句 32
2.2.2 switch语句 37
2.3 循环结构 39
2.3.1 while 语句 39
2.3.2 do…while语句 41
2.3.3 for 语句 43
2.3.4 多重循环 45
2.4 控制转向语句 48
2.4.1 break语句 48
2.4.2 continue 语句 49
2.4.3 goto语句 50
2.5 程序实例 50
习题2 56
第3章 函数与编译预处理 60
3.1 函数的概念 60
3.2 函数的定义与调用 61
3.2.1 标准库函数 61
3.2.2 函数的定义 62
3.2.3 函数的声明 63
3.2.4 函数的调用 64
3.3 函数的参数传递 67
3.3.1 参数的传递方式 67
3.3.2 参数的默认值 69
3.4 递归函数 70
3.5 内置函数 75
3.6 变量和函数的属性 76
3.6.1 变量的作用域 76
3.6.2 变量的生存期 81
3.6.3 内部函数和外部函数 85
3.7 编译预处理 86
3.7.1 宏定义 87
3.7.2 文件包含 89
习题3 90
第4章 数组与指针 95
4.1 数组及其应用 95
4.1.1 数组的概念 95
4.1.2 一维数组 96
4.1.3 二维数组 101
4.1.4 数组作函数参数 106
4.2 指针及其应用 109
4.2.1 指针的概念 109
4.2.2 指针变量的定义及初始化 110
4.2.3 指针的运算 111
4.2.4 指针作函数参数 113
4.2.5 返回指针值的函数 115
4.2.6 指向函数的指针 117
4.3 指针与数组 119
4.3.1 指针与一维数组 119
4.3.2 数组名与指针作函数参数 121
4.3.3 指针与二维数组 122
4.4 字符串 126
4.4.1 字符串的概念 126
4.4.2 字符串的存储表示法 126
4.4.3 字符串的输入/输出 128
4.4.4 字符串函数 129
4.4.5 字符串的简单应用举例 131
4.5 指针数组与多级指针 135
4.5.1 指针数组 135
4.5.2 多级指针 137
4.6 引用 138
4.6.1 变量的引用 138
4.6.2 引用作函数参数 139
4.6.3 引用作函数返回值 139
习题4 140
第5章 自定义数据类型 142
5.1 结构体类型 142
5.1.1 结构体类型的定义 142
5.1.2 结构体变量的定义 143
5.1.3 结构体变量的引用与初始化 144
5.1.4 结构体数组 146
5.1.5 结构体与函数 148
5.1.6 链表 150
5.2 共用体类型 155
5.2.1 共用体类型与共同体变量的定义 155
5.2.2 共用体变量的引用 156
5.2.3 共用体与结构体的联合使用 157
5.3 枚举类型 159
5.4 自定义类型 160
习题5 161
第6章 类与对象 164
6.1 从面向过程到面向对象 164
6.1.1 面向对象程序设计的基本概念 164
6.1.2 C++面向对象程序的结构 165
6.2 类与对象的定义 167
6.2.1 类的定义 167
6.2.2 对象的定义与使用 169
6.2.3 类与结构体的区别 171
6.3 对象的初始化 172
6.3.1 构造函数 172
6.3.2 析构函数 176
6.3.3 复制构造函数 177
6.4 对象数组与对象指针 180
6.4.1 对象数组 180
6.4.2 对象指针 182
6.4.3 指向类成员的指针 183
6.4.4 this指针 185
6.5 静态成员 186
6.5.1 静态数据成员 186
6.5.2 静态成员函数 187
6.6 友元 189
6.6.1 友元函数 189
6.6.2 友元类 190
6.7 常对象和常成员 191
6.7.1 常对象和常成员函数 191
6.7.2 常数据成员 193
6.8 程序实例 194
习题6 201
第7章 重载与模板 207
7.1 重载 207
7.1.1 函数重载 207
7.1.2 运算符重载 212
7.2 模板 229
7.2.1 函数模板 229
7.2.2 类模板 231
7.3 应用实例 233
习题7 242
第8章 继承与派生 245
8.1 继承与派生的概念 245
8.1.1 基类与派生类 245
8.1.2 继承与派生的作用 246
8.1.3 派生类的声明 247
8.2 派生类成员的访问控制 248
8.2.1 private、protected与public类成员 248
8.2.2 三种派生方式的定义 250
8.2.3 派生类成员访问控制规则 254
8.3 派生类的构造函数和析构函数 255
8.3.1 派生类的构造函数和析构函数的
声明 255
8.3.2 派生类的构造函数和析构函数的
构造规则 256
8.3.3 派生类的构造函数和析构函数的
调用顺序 257
8.4 多重继承 258
8.4.1 多重继承的声明与引用 258
8.4.2 虚基类 260
8.5 基类和派生类的转换 264
8.6 继承与组合 264
习题8 265
第9章 多态性与虚函数 267
9.1 多态性的概念 267
9.1.1 编译时的多态性 267
9.1.2 运行时的多态性 269
9.2 虚函数 271
9.2.1 虚函数的作用 271
9.2.2 虚函数的使用 274
9.2.3 多重继承与虚函数 276
9.2.4 虚析构函数 277
9.3 纯虚函数与抽象类 279
9.3.1 纯虚函数 279
9.3.2 抽象类 280
9.4 抽象类实例 280
习题9 284
第10章 输入/输出流 286
10.1 C++的输入/输出 286
10.1.1 C++流的概念 286
10.1.2 C++流类库 287
10.1.3 与iostream类库有关的头文件 289
10.1.4 插入与提取运算符的重载 289
10.2 标准输入/输出流 290
10.2.1 标准流类 290
10.2.2 格式控制成员函数 291
10.2.3 数据输入/输出成员函数 293
10.3 文件操作与文件流 296
10.3.1 文件的概念 296
10.3.2 文本文件的读/写 297
10.3.3 二进制文件的读/写 300
10.3.4 文件的随机读/写 303
10.4 字符串流 307
10.4.1 字符串流的概念 307
10.4.2 字符串流的输入操作 308
10.4.3 字符串流的输出操作 309
习题10 310
参考文献 314
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实验指导与实训(第二版) [主编 倪燃]
- Python程序设计及实践教程 [肖朝晖]
- C语言程序设计 [魏琴 刘祖珉 赵仕波 肖阳春]
- C语言程序设计实验教程 [张小刚 司春景]
- 电气控制与PLC程序设计(第二版) [胡冠山]
- Java Web项目化设计实践教程 [邱云 曾陈萍]
- C语言程序设计(第三版) [主编 丁红 王立新 蔡开立]
- Python数据分析 [主编 冯志辉 赵磊 李放]
- Python程序设计与应用(第二版) [主编 张广渊]
- C程序设计实践教程 [刘卫国]
- C程序设计(慕课版) [刘卫国]
- 程序设计基础实践教程(C/C++语言版) [张桂芬 葛丽娜]
- C++案例项目精讲 [主编 杨国兴]
- SwiftUI完全开发 [李智威 著]
- MySQL数据库项目式教程 [陈亚峰]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- Unity3D虚拟现实应用开发实践 [主 编 刘龙]
- Python程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实践教程(活页式) [主编 郑茵 陈巍 滕泓虬]
- 面向对象程序设计 [主编 张勇 张平华 赵小龙]
- Python程序设计基础及实战 [主编 刘健]
- C语言程序设计 [姜雪]
- Python程序设计实践教程 [王鹤琴 蔡正保]
- C++程序设计实践教程(第三版) [主编 刘卫国 曹岳辉]
- C语言程序设计项目化教程(活页式) [主编 张利华 潘晓利]
- 机器人流程自动化(RPA)实战——基于UiPath [主编 金鑫]
- Python 语言程序设计实践指导 [主编 张双狮]
- Python程序设计案例教程 [主编 毛锦庚 钟肖英 周贤来 ]