目 录 1
第一章软件设计概论 1
1.1 软件与软件危机 1
1.2软件工程 2
1.3程序设计方法 3
1.3.1 传统的结构化程序设计 3
1.3.2面向对象的程序设计 5
1.4算法设计与分析 8
1.4.1算法的概念 8
1.4.2算法的表示 8
1.4.3常用算法介绍 11
1.5C语言和面向对象的C++ 13
1.6一个简单的C++程序 14
习题 16
第二章C++基础知识 17
2.1 C++的词法单位 17
2.1.1 C++的字符集 17
2.1.2关键字 17
2.1.3标识符 18
2.1.4标点符号 19
2.2 C++中的数据类型 19
2.3变量和常量 21
2.3.1 变量 21
2.3.2字面常量 23
2.3.3常变量 25
2.4数组与字符数组 26
2.4.1 数组 26
2.4.2字符数组 27
2.5运算符、表达式和语句 28
2.5.1运算符、优先级和结合性 28
2.5.2表达式 35
2.5.3 算术类型转换和赋值类型 38
转换 38
2.5.4强制类型转换运算符 39
2.5.5求值次序与副作用 40
2.5.6语句 40
2.6简单的输入/输出 41
2.6.1 C++的输入/输出 41
2.6.2 C语言的输入/输出 46
习题 47
3.1.1 if语句 49
3.1 分支结构程序设计 49
第三章基本控制结构程序设计 49
3.1.2条件运算符“?:” 55
3.1.3 switch 语句 55
3.2循环结构程序设计 58
3.2.1 while语句 58
3.2.2 do-while语句 59
3.2.3 for语句 62
3.2.4循环的嵌套 64
3.3转向语句 65
3.4常用算法应用实例 68
3.5枚举类型 72
3.5.1枚举类型的定义 72
3.5.2枚举变量的使用 73
3.6输入/输出文件简介 75
习题 77
4.1 函数的定义与调用 80
4.1.1 函数概述 80
第四章函数 80
4.1.2函数的定义 81
4.1.3函数的调用 83
4.2 函数的参数传递、返回值及函数原型说明 84
4.2.1 函数的参数传递及传值调用 84
4.2.2函数返回值 85
4.2.3函数原型说明 87
4.3全局变量和局部变量 89
4.3.1 变量的存储机制与C++的 89
内存布局 89
4.3.2全局变量 90
4.4函数调用机制 91
4.3.3局部变量 91
4.5作用域与存储类型 93
4.5.1作用域 93
4.5.2变量的存储类型 96
4.5.3外部存储类型与静态存储 98
类型 98
4.5.4生命期与可见性 99
4.6函数的递归调用 101
4.7函数的一些高级议题 107
4.7.1函数重载 107
4.7.2缺省参数 108
4.7.3内联函数 109
4.9.1 头文件 110
4.9头文件与多文件结构 110
4.8 C++的系统库函数 110
4.9.2多文件结构 111
4.10编译预处理 112
4.10.1宏定义指令 112
4.10.2文件包含指令 113
4.10.3条件编译指令 114
习题 115
第五章类与对象 120
5.1类与对象的基本概念 120
5.1.1 C++类的定义 120
5.1.2成员函数的定义 122
5.1.3对象的创建与使用 123
5.1.4名字空间域和类域 126
5.2从面向过程到面向对象 130
5.3引用 133
5.4构造函数和析构函数 136
5.4.1 构造函数的定义与使用 136
5.4.2拷贝构造函数 138
5.4.3折构函数的定义 140
5.4.4成员对象与构造函数 140
5.5运算符的重载 145
5.6友元 150
5.7静态成员 155
5.7.1静态数据 155
5.7.2静态函数成员 156
5.8结构和联合 157
5.9全局对象与类接口 160
5.10.1 面向对象程序的组织与Windows下的实现 161
编程 161
5.10面向对象程序设计和Windows 161
5.10.2传统的Windows编程 164
5.10.3 MFC编程 166
5.11 图书馆流通管理系统设计 168
——对象与类的识别 168
习题 177
第六章指针与数组 180
6.1指针与地址 180
6.1.1指针的概念 180
6.1.2指针变量的赋值、初始化与 181
简单应用 181
6.2 this指针 185
6.3.1数组与数组元素 186
6.3数组与指针 186
6.3.2数组名、指针和指针运算 189
6.3.3指针、数组名作为函数参数 191
6.3.4字符串处理 193
6.4多维数组与指针 197
6.4.1多维数组 197
6.4.2指向多维数组的指针 201
6.5模板 204
6.5.1 函数模板及应用 204
6.5.2类模板与线性表 207
6.6排序与查找 213
6.6.1常用查找方法 213
6.6.2常用的排序法 219
6.7指针数组 224
6.8 数指针及其应用 225
6.9复杂指针及其他 229
6.10 Windows对象句柄 230
6.11 图书馆流通管理系统设计 232
——改进类的封装 232
习题 236
第七章动态内存分配 241
7.1堆内存分配 241
7.1.1 堆内存的分配与释放 242
7.1.2堆对象与构造函数 246
7.1.3浅拷贝与深拷贝 247
7.2链表与链表的基本操作 250
7.2.1单链表基本算法 250
7.2.2单链表类型模板 255
7.2.3双向链表 259
7.3栈与队列的基本操作及其应用 263
7.3.1栈与应用 263
7.3.2队列 271
7.4二 叉 树 275
7.4.1二叉树的概念 276
7.4.2二叉树的遍历 278
7.4.3 二叉排序树 282
7.5 MFC对象和Windows对象的关系 283
7.6图书馆流通管理系统设计 285
——链表类应用 285
习题 290
第八章继承与多态 292
8.1 继承与派生的概念 292
8.1.1类的派生与继承 293
8.1.2公有派生与私有派生 295
8.2 派生类的构造函数与析构函数 296
8.3 多重继承与派生类成员标识 302
8.4虚基类 306
8.5派生类应用讨论 313
8.6 MFC基础类及其层次结构 317
8.7 多态性与虚函数 320
8.7.1虚函数的定义 321
8.7.2 纯虚函数 325
8.7.3动态联编 335
8.8 MFC的消息映射与命令传递 336
8.9 图书馆流通管理系统设计 341
——继承与多态的应用 341
习题 348
9.1C++的基本流类体系 352
第九章流类库和输入/输出 352
9.2输入/输出的格式控制 355
9.3标准设备的输入/输出 360
9.4文件的输入/输出 365
9.4.1文件的打开/关闭 366
9.4.2 文本文件的读写 368
9.4.3二进制文件的读写 372
9.4.4文件的随机访问 375
9.4.5文件与对象 377
9.5字符串流(内存流) 378
9.6 MFC中的文件处理 379
9.6.1文档/视图结构 379
9.6.2存档类序列化 380
——输入/输出流的应用 381
9.7 图书馆流通管理系统设计 381
习题 387
第十章异常处理 390
10.1异常的概念 390
10.2 常处理的机制 391
10.3栈展开与异常捕获 393
10.4异常的重新抛出和catch_all 397
子句 397
10.5异常规范 398
10.6异常和继承 401
10.7 C++标准库的异常类层次结构 405
习题 409
第十一章标准模板库(STL) 410
11.1标准模板库简介 410
11.2 迭代子类 414
11.3 顺序容器 420
11.4关联容器 422
11.5容器适配器 423
11.6 泛型算法与函数对象 425
11.6.1 函数对象 425
11.6.2泛型算法 429
11.7 VC++中的STL 431
习题 432
附录 433
附录一 ASCⅡ(美国标准信息交换码)字符表 433
附录二C语言的部分标准库函数 434
及头文件 434
附录三标准模板库容器类成员函数与泛型算法 438
参考文献 448