第1章 程序设计导论 1
1.1 计算机硬件结构 1
本节习题 4
1.2 计算机程序 4
本节习题 8
1.3 计算机程序开发 8
1.3.1 程序设计 8
1.3.2 程序实现 10
1.3.3 程序测试 12
1.3.4 程序发布 12
本节习题 13
1.4 信息分类与数据类型 13
1.4.1 二进制数制 13
1.4.2 数据类型 16
1.4.3 信息分类及数字化 18
本节习题 21
1.5 C++语言简介 21
1.6 本章习题 22
第2章 数值计算 23
2.1 程序中的变量 23
2.1.1 变量的定义 24
2.1.2 变量的访问 26
本节习题 27
2.2 程序中的常量 28
本节习题 31
2.3 算术运算 31
2.3.1 C++语言中的加减乘除 31
2.3.2 其他算术运算符 34
本节习题 35
2.4 位运算 35
本节习题 39
2.5 赋值运算 40
本节习题 42
2.6 数据的输入与输出 42
本节习题 45
2.7 引用与指针 45
2.7.1 引用 45
2.7.2 指针 47
本节习题 53
2.8 本章习题 54
第3章 算法与控制结构 55
3.1 算法 56
本节习题 57
3.2 布尔类型 57
3.2.1 关系运算符 58
3.2.2 逻辑运算符 59
本节习题 59
3.3 选择语句 60
3.3.1 if-else语句 61
3.3.2 switch-case语句 65
本节习题 68
3.4 循环语句 69
3.4.1 while语句 70
3.4.2 do-while语句 71
3.4.3 for语句 72
3.4.4 break语句和continue语句 74
本节习题 77
3.5 算法设计与评价 78
3.5.1 计算复杂度 79
3.5.2 内存占用量 80
3.5.3 算法设计举例 81
3.6 本章习题 84
第4章 数组与文字处理 86
4.1 数组 87
4.1.1 数组变量的定义与访问 87
4.1.2 常用的数组处理算法 91
本节习题 94
4.2 指针与数组 95
4.2.1 指针运算 95
4.2.2 动态内存分配 99
4.2.3 指针数组 102
本节习题 103
4.3 字符类型 103
4.3.1 字符型常量 104
4.3.2 字符型运算 105
本节习题 106
4.4 字符数组与文字处理 106
4.4.1 字符串常量 107
4.4.2 字符数组 107
4.4.3 常用文字处理算法 109
本节习题 111
4.5 中文处理 112
4.5.1 字符编码标准 112
4.5.2 基于ANSI编码的中文处理程序 113
4.5.3 基于Unicode编码的中文处理程序 115
本节习题 118
4.6 程序设计方法简介 118
4.7 本章习题 119
第5章 结构化程序设计之一 121
5.1 结构化程序设计方法 121
5.1.1 设计举例 121
5.1.2 于模块的团队分工协作开发 123
5.1.3 模块的4大要素 125
本节习题 126
5.2 函数的定义和调用 127
5.2.1 函数的定义 127
5.2.2 函数的调用 128
5.2.3 函数应用举例 130
5.2.4 函数的执行 132
5.2.5 函数的声明 135
5.2.6 程序员与函数 136
本节习题 138
5.3 数据的管理策略 139
5.3.1 数据分散管理,按需传递 139
5.3.2 数据集中管理,全局共享 140
5.3.3 变量的作用域 142
本节习题 148
5.4 程序代码和变量的存储原理 148
5.4.1 程序副本与变量 149
5.4.2 动态分配的内存 153
5.4.3 函数指针 154
本节习题 156
5.5 函数间参数传递的三种方式 157
5.5.1 值传递 157
5.5.2 引用传递 158
5.5.3 指针传递 160
5.5.4 函数参数的设计 161
本节习题 165
5.6 在函数间传递数组 165
5.6.1 在函数间传递一维数组 166
5.6.2 在函数间传递一维数组的首地址 166
5.6.3 在函数间传递二维数组 168
5.7 本章习题 169
第6章 结构化程序设计之二 171
6.1 C++源程序的多文件结构 171
6.1.1 多文件结构的源代码组织 171
6.1.2 静态函数与静态变量 174
6.1.3 头文件 177
本节习题 179
6.2 编译预处理指令 180
6.2.1 文件包含指令 180
6.2.2 宏定义指令 181
6.2.3 条件编译指令 183
本节习题 186
6.3 几种特殊形式的函数 187
6.3.1 带默认形参值的函数 187
6.3.2 重载函数 189
6.3.3 内联函数 189
6.3.4 主函数main的形参和返回值 191
6.3.5 递归函数 193
本节习题 198
6.4 系统函数 199
6.4.1 C语言的系统函数 199
6.4.2 命名空间 204
6.4.3 C++语言的系统函数 206
本节习题 208
6.5 自定义数据类型 208
6.5.1 类型定义typedef 209
6.5.2 枚举类型 210
6.5.3 联合体类型 211
6.5.4 结构体类型 213
本节习题 218
6.6 结构化程序设计的应用与回顾 219
6.6.1 开发Windows图形用户界面程序 220
6.6.2 结构化程序设计回顾 224
6.7 本章习题 226
第7章 面向对象程序设计之一 229
7.1 面向对象程序设计方法 229
7.1.1 结构化程序设计中的函数 229
7.1.2 结构化程序设计中的结构体类型 231
7.1.3 面向对象程序设计中的分类 233
7.1.4 面向对象程序设计中的封装 236
本节习题 240
7.2 面向对象程序的设计过程 241
7.2.1 分析 241
7.2.2 抽象 243
7.3.3 组装 245
本节习题 247
7.3 类与对象的语法细则 247
7.3.1 类的定义 247
7.3.2 对象的定义与访问 250
7.3.3 对象指针 252
7.3.4 类与对象的编译原理 253
本节习题 256
7.4 对象的构造与析构 258
7.4.1 构造函数 258
7.4.2 析构函数 262
7.4.3 拷贝构造函数中的深拷贝与浅拷贝 263
7.4.4 类与对象编程举例 265
本节习题 269
7.5 对象的应用 271
7.5.1 对象数组 272
7.5.2 对象的动态分配 273
7.5.3 对象作为函数的形参 274
本节习题 277
7.6 类中的常成员与静态成员 278
7.6.1 常成员 281
7.6.2 静态成员 283
本节习题 288
7.7 类的友元 289
7.7.1 友元函数 290
7.7.2 友元类 291
本节习题 291
7.8 本章习题 293
第8章 面向对象程序设计之二 296
8.1 重用类代码 296
8.1.1 用类定义对象 296
8.1.2 用类继续定义新类 298
本节习题 300
8.2 类的组合 300
8.2.1 组合类的定义 301
8.2.2 组合类对象的定义与访问 302
8.2.3 组合类对象的构造与析构 304
8.2.4 类的聚合 306
8.2.5 前向引用声明 308
本节习题 309
8.3 类的继承与派生 310
8.3.1 派生类的定义 311
8.3.2 派生类对象的定义与访问 314
8.3.3 保护权限与保护继承 316
8.3.4 派生类对象的构造与析构 319
8.3.5 继承与组合的应用 322
本节习题 325
8.4 多态性 327
8.4.1 面向对象程序中的多态 328
8.4.2 运算符的多态与重载 328
本节习题 334
8.5 对象的替换与多态 334
8.5.1 算法代码的可重用性 334
8.5.2 钟表类及其处理算法 337
8.5.3 类型兼容语法规则 341
8.5.4 对象的多态性 343
8.5.5 虚函数 345
8.5.6 抽象类 349
本节习题 351
8.6 关于多继承的讨论 353
8.6.1 多个基类之间的成员重名 353
8.6.2 重复继承 354
8.6.3 虚基类 356
本节习题 357
8.7 本章习题 357
第9章 流类库与文件I/O 360
9.1 流类库 360
本节习题 363
9.2 标准I/O 364
9.2.1 通用输入流类istream及其对象cin 364
9.2.2 通用输出流类ostream及其对象cout 369
本节习题 375
9.3 文件I/O 376
9.3.1 文件及其操作 376
9.3.2 文件输出流类ofstream及文件输出 379
9.3.3 文件输入流类ifstream及文件输入 382
9.3.4 文件输入/输出流类fstream 385
本节习题 389
9.4 string类及字符串I/O 389
9.4.1 字符串类string 389
9.4.2 字符串I/O 391
本节习题 392
9.5 基于Unicode编码的流类库 392
本节习题 394
9.6 本章习题 394
第10章 C++标准库 395
10.1 函数模板 395
10.1.1 函数模板的定义与使用 396
10.1.2 函数模板的编译原理 397
10.1.3 函数模板的声明 399
本节习题 400
10.2 类模板 400
10.2.1 类模板的定义与使用 400
10.2.2 类模板的编译原理 402
10.2.3 类模板的继承与派生 403
本节习题 405
10.3 C++标准库 406
本节习题 407
10.4 C++语言的异常处理机制 408
10.4.1 程序中的三类错误 408
10.4.2 程序异常处理机制 410
10.4.3 try-catch异常处理机制 412
10.4.4 C++标准库中的异常类exception 418
本节习题 420
10.5 数据集合及其处理算法 421
10.5.1 数据集合的存储和处理 421
10.5.2 C++标准库中数据集合的存储和处理 424
10.5.3 向量类vector 427
10.5.4 列表类list 431
10.5.5 集合类set 432
10.5.6 映射类map 433
本节习题 434
10.6 面对象程序设计总结 435
10.6.1 使用MFC类库开发图形用户界面程序 435
10.6.2 结语 440
10.7 本章习题 441
附录A Visual C++ 6.0集成开发环境 442
附录B 各章“本节习题”参考答案 449
参考文献 452