第一部分 绪论 2
第1章 程序设计与程序设计语言 2
1.1 计算机与程序设计 2
1.2 从低级语言到高级语言 3
1.3 高级语言程序设计技术的发展 5
1.4 程序设计技术的四个层次 9
习题1 11
第2章 C++语言概述 12
2.1 C++语言的形成过程 12
2.2 C++语言的特点 14
2.3 为什么应该选择C++语言 16
习题2 16
第3章 学习C++语言程序设计 17
3.1 困难与不利条件 17
3.2 正确的指导思想 19
习题3 19
第二部分C++程序设计 22
第4章 初识C++程序 22
4.1 简单的C++程序 22
4.1.1 在屏幕上显示一句话 22
4.1.2 求两个数的和 23
4.1.3 计算圆面积 23
4.2 执行C++程序 24
4.2.1 编辑C++程序 24
4.2.2 编译和链接过程 25
4.3 几点说明 26
习题4 27
第5章 给程序赋予“判断”能力 28
5.1 按条件进行判断 28
5.2 简单的计算器程序 30
5.3 计算e的值和求素数 34
习题5 36
第6章 批量数据的处理 37
6.1 统计学生成绩 37
6.2 输出三角函数表 40
6.3 画一个四叶玫瑰线图形 41
6.4 Eratosthenes筛法求素数 43
习题6 44
第7章 把程序分解为若干个函数 45
7.1 三次方程求根 45
7.2 四元排序程序 47
7.3 “三色冰激淋”程序 49
7.4 解Hanoi塔问题 51
习题7 52
第8章 指针和动态内存分配 54
8.1 选择排序算法 54
8.2 按字典序排列名表 57
8.3 建立一个人员档案链表 59
习题8 61
第9章 把数据和函数组合成类 63
9.1 设计一个栈类 63
9.2 职员档案的管理程序 67
9.3 在平面上用直线和圆画图 69
习题9 72
第10章 用户定义新的数据类型 73
10.1 创建一个集合类型 73
10.2 利用Stack类型解迷宫问题 79
习题10 83
第11章 类之间的层次关系 84
11.1 公司雇员档案的管理 84
11.2 计算函数的定积分 89
11.3 利用图元类画图的程序 93
习题11 100
第12章 充分利用运算符重载功能 101
12.1 集合运算符和集合类型 101
12.2 定义一个完整的复数类型 107
习题12 114
第13章 利用模板设计高可重用的程序 116
13.1 设计一个队列 116
13.2 一个链表模板的设计 118
13.3 带类型参数的函数 121
习题13 122
第14章 为系统设计运行仿真程序 123
14.1 系统仿真的程序设计 123
14.2 仿真程序的框架 124
14.3 电梯运行系统 127
14.4 办公大楼中Person类的设计 130
14.5 楼层(Floor)类的设计 138
14.6 电梯(elevator)类的设计 142
14.7 电梯运行系统的仿真程序 149
习题14 152
第15章 设计一个完整的程序系统 153
15.1 设计一个字处理系统 153
15.2 设置常量和单词行类 154
15.3 行(Line)类 154
15.4 未格式化文本和格式化标尺 158
15.5 缓冲区和格式化文本(文稿) 163
15.6 格阵与表格 169
15.7 文本段 174
15.8 自底向上的面向对象设计 175
习题15 176
第三部分C++语言总述 178
第16章 基本符号 178
16.1 基本符号分类 178
16.2 基本符号与ASCII码 178
第17章C++语言的词汇 181
17.1 关键字(Key word) 181
17.2 标识符(Indentifier) 181
17.3 字面常量(Literal Constant) 182
17.4 运算符(Operator) 182
17.5 分割符(Separator) 185
第18章 语句 185
18.1 说明语句 187
18.1.1 常量说明 187
18.1.2 变量说明 187
18.1.3 类型说明 191
18.1.4 函数说明 192
18.1.5 类说明 194
18.1.6 对象说明 196
18.2 表达式语句 196
18.3 控制语句 198
18.3.1 顺序执行的程序 199
18.3.2 分支控制语句 199
18.3.3 循环语句 202
18.3.4 无条件转移语句 204
18.4 复合语句和空语句 206
18.4.1 复合语句 206
18.4.2 空语句 206
第19章 数据与数据类型 208
19.1 数据类型 208
19.1.1 基本类型 208
19.1.2 派生类型 210
19.2 类,用户定义数据类型(1) 210
19.2.1 完全用户定义的数据类型 211
19.2.2 对象的初始化,构造与析构函数 212
19.2.3 内联(Inline)函数 214
19.2.4 静态成员 215
19.2.5 友元(friend) 216
19.2.6 重载(overload) 216
19.2.7 用户定义数据类型的例 217
19.3 用户定义类型(2) 218
19.3.1 enum类型 219
19.3.2 Struct类型与union类型 219
19.4 数组、导出类型(1) 222
19.4.1 一维数组 222
19.4.2 多维数组 223
19.4.3 数组与字符串 224
19.5 指针,导出类型(2) 225
19.5.1 指针变量说明 225
19.5.2 指针变量的操作 226
19.5.3 指针与数组 228
19.5.4 字符串指针 229
19.5.5 指针与函数 231
19.5.6 指针与内存动态分配 233
19.6 引用,导出类型(3) 234
第20章 数据的处理 237
20.1 基本运算和运算符 237
20.1.1 运算符和表达式的概念 237
20.1.2 运算类型与运算符 238
20.1.3 赋值运算 238
20.1.4 算术运算 239
20.1.5 关系运算 240
20.1.6 逻辑运算 241
20.1.7 位运算 242
20.1.8 其它运算 243
20.1.9 运算的优先级 247
20.1.10 运算与运算符小结 248
20.2 函数 249
20.2.1 函数说明 250
20.2.2 函数调用 250
20.2.3 函数的返回 250
20.2.4 函数的参数 252
20.2.5 值调用与引用调用 253
20.2.6 函数的嵌套与递归 256
20.2.7 内联函数 257
20.2.8 函数重载 257
20.3 运算符重载函数的设计 259
20.3.1 函数的分类 259
20.3.2 可重载的运算符 260
20.3.3 运算符重载函数的定义 262
20.3.4 算术运算符重载 265
20.3.5 赋值运算符的重载 266
20.3.6 增量减量运算符重载 267
第21章 程序的组织(一) 268
21.1 主函数 268
21.2 预处理命令 270
21.2.1 文件嵌入命令 270
21.2.2 宏定义命令 271
21.2.3 条件编译命令 273
21.3 C++程序的SP框架 274
第22章 程序的组织(二) 278
22.1 C++程序的OOP框架 278
22.2 封装 280
22.2.1 构造函数与析构函数 281
22.2.2 this指针 281
22.2.3 静态成员 282
22.2.4 常量成员 283
22.2.5 内联函数成员 284
22.2.6 结构与联合 284
22.3 类之间的包含关系及友元 285
22.3.1 类的对象成员 285
22.3.2 类的友元 287
22.3.3 类的嵌套 288
22.4 类的继承与派生 289
22.4.1 派生类的定义 289
22.4.2 派生类的构造函数 290
22.4.3 其它特征的继承 292
22.4.4 二义性处理和虚基类 293
22.5 虚函数 294
22.5.1 基类指针和派生类指针 295
22.5.2 虚函数的概念 296
22.5.3 抽象基类 297
22.6 模板 298
22.6.1 类模板的定义 298
22.6.2 函数模板 300
22.6.3 与模板相关的几个问题 302
第23章 输入输出系统 305
23.1 文件与流 305
23.2 流类库的优点 306
23.3 C++的流类库 307
23.4 输入输出的格式控制 308
23.4.1 用于格式控制的类ios的成员函数 308
23.4.2 格式控制符 310
23.4.3 用户定义格式控制符 311
23.5 其它输入输出控制函数 312
23.5.1 I/O操作状态控制 312
23.5.2 其它I/O控制 314
23.6 文件的输入输出 315
23.6.1 文件的打开及关闭 315
23.6.2 文件的读写操作 317