第1章 程序设计的基本目标与准则 1
1.1 实验:程序正确性 1
1.2 实验:程序健壮性 3
1.3 实验:程序可靠性 5
1.4 实验:程序可理解性 8
1.5 实验:程序的有效性 10
1.6 实验:程序可维护性 11
1.7 实验:程序可重用性 13
第2章 程序设计原理 16
2.1 实验:抽象与分解 16
2.2 实验:模块化、局部化、信息隐藏 19
2.3 实验:结构化 22
2.4 实验:可验证性 26
第3章 程序设计风格 30
3.1 实验:清晰的微观结构 32
3.2 实验:程序简明,直截了当地表达意图,不要太巧妙 34
3.3 实验:防御性编程技术 36
3.4 实验:利用数据组织程序 37
3.5 实验:布尔函数的应用 43
3.6 实验:程序中的命名 44
3.7 实验:编排程序的格式 46
3.8 实验:注释程序 48
第4章 选择结构 54
4.1 实验:if语句 55
4.2 实验:switch语句 61
第5章 循环结构 71
5.1 实验:while语句 71
5.2 实验:do_while语句 76
5.3 实验:for语句 82
5.4 实验:break语句、continue语句和goto语句 90
第6章 程序设计中的数据 96
6.1 实验:整型常数的八进制、十进制和十六进制表示形式 96
6.2 实验:数据类型规定了该类数据所允许的操作 99
6.3 实验:选用合适的数据类型 99
6.4 实验:数据类型的转换 103
6.5 实验:使用string类型表示文本数据优于C风格字符串 105
7.1 实验:抽象数据类型的描述 109
第7章 类与抽象数据类型 109
7.2 实验:类的定义 111
7.3 实验:用不同方式实现同一抽象数据类型 121
7.4 实验:继承的作用 125
7.5 实验:动态数组的抽象数据类型和实现——模板的应用 131
第8章 线性数据结构 137
8.1 实验:字符串的顺序存储和链式存储 138
8.2 实验:链式存储有利于有序插入和删除 140
8.3 实验:有序线性表有利于数据的检索 150
8.4 实验:循环队列——队列的有效顺序表示及实现 157
8.5 实验:栈适用于求解迷宫问题 159
第9章 非线性数据结构 165
9.1 实验:家谱树 165
9.2 实验:哈夫曼编码 174
9.3 实验:图的最小生成树 180
第10章 使用C++函数编程 188
10.1 实验:C++函数声明与调用 188
10.2 实验:函数的参数传递方式——按值传递(非指针参数) 190
10.3 实验:函数的参数传递方式——按地址传递(指针参数) 196
10.4 实验:函数的参数传递方式——按引用传递 199
10.5 实验:函数的参数传递方式——按值传递与按引用传递的比较 201
10.6 实验:标识符的作用域 204
10.7 实验:内联函数 206
10.8 实验:带缺省参数的函数 207
10.9 实验:函数名的重载 208
10.10 实验:输入/输出流的使用 212
第11章 动态数据类型和动态数据结构 215
11.1 实验:动态内存管理——创建动态数组 215
11.2 实验:动态数据类型——链表的使用 220
第12章 封装的效应 230
12.1 实验:封装的使用——名字类 230
12.2 实验:封装的使用——模拟电梯 234
12.3 实验:几何形状处理——使用结构化设计方法 236
12.4 实验:几何形状处理——使用面向对象设计方法 239
第13章 程序测试 246
13.1 实验:语句覆盖测试 246
13.2 实验:条件相关测试 248
13.3 实验:路径覆盖测试 252
13.4 实验:测试用例的等价类划分技术 255
13.5 实验:程序的验证与确认 257
第14章 面向对象的设计 262
14.1 实验:二叉树的树叶计数问题 262
14.2 实验:棋盘上马的遍历问题 267
14.3 实验:迷宫的创建问题 274
第15章 综合实验 283
15.1 实验:穷举搜索和回溯技术 283
15.2 实验:算法与程序 290
附录A 上机编程过程 293
A.1 实验:C++单文件程序的实现 294
A.2 实验:C++多文件程序的实现 295
B.2 实验报告的主要内容 297
B.1 实验报告的要求 297
附录B 实验报告写作指南 297
附录C Turbo C++3.0集成开发环境简介 299
C.1 Turbo C++3.0编辑界面 299
C.2 常用功能键及其意义 299
C.3 部分菜单与选项参考 300
C.4 Turbo C++3.0的出错信息 303
附录D Visual C++6.0编程环境简介 305
D.1 Visual C++6.0编程窗口 305
D.2 编制一个简单程序的过程 306
D.3 菜单栏 312
D.4 调试过程和工具 313
参考文献 316