1概述 1
1.1 实践目标 1
1.2 内容安排 1
1.3 开发环境 3
第一部分 技术专题 6
2栈与表达式求值实践 6
2.1 实验目标 6
2.2 实验任务 6
2.3 分析和设计 7
2.3.1 表达式组成 7
2.3.2 核心算法 7
2.3.3 栈(stack) 9
2.4 编码实现 14
2.4.1 创建工程 14
2.4.2 定义栈(链表) 16
2.4.3 表达式解析 17
2.4.4 比较操作符 21
2.4.5 表达式计算 23
2.4.6 最终结果 25
2.5 调试和运行 26
习题 27
3队列与停车场管理程序实践 28
3.1 实验目标 28
3.2 实验任务 28
3.3 分析和设计 30
3.3.1 数据结构 30
3.3.2 业务流程 32
3.3.3 技术分析 33
3.4 编码实现 39
3.4.1 创建工程 39
3.4.2 定义数据结构 42
3.4.3 车辆入场 44
3.4.4 车辆离开 46
3.4.5 查看停车场 48
3.5 调试和运行 50
习题 51
4串与字符串替换程序实践 53
4.1 实验目标 53
4.2 实验任务 53
4.3 分析和设计 54
4.3.1 数据结构 54
4.3.2 业务流程 55
4.3.3 定位子串在主串的位置 56
4.3.4 字符串的替换 56
4.4 编码实现 56
4.4.1 创建工程 56
4.4.2 定义串的存储结构 57
4.4.3 串的基本操作 57
4.4.4 主函数 61
4.4.5 扩展优化 63
4.5 调试和运行 63
习题 64
5二叉树与赫夫曼图片压缩实践 66
5.1 实验目标 66
5.2 实验任务 66
5.3 分析和设计 69
5.3.1 Huffman树 70
5.3.2 Huffman编码 72
5.3.3 压缩过程 74
5.3.4 压缩与解压 76
5.3.5 文件操作 77
5.4 编码实现 77
5.4.1 创建工程 77
5.4.2 读取原文件 79
5.4.3 生成Huffman树 80
5.4.4 生成Huffman编码 82
5.4.5 压缩原文件 84
5.4.6 保存压缩文件 88
5.4.7 扩展功能 90
5.5 调试和运行 91
习题 91
6图与景区信息管理系统实践 93
6.1 实验目标 93
6.2 实验任务 93
6.3 分析和设计 96
6.3.1 程序设计 96
6.3.2 界面设计 97
6.3.3 算法设计 97
6.3.4 数据结构设计 98
6.4 编码实现 99
6.4.1 创建工程 99
6.4.2 定义图 100
6.4.3 查询景点信息 103
6.5 调试和运行 104
习题 105
7深度优先搜索与旅游景点导航实践 106
7.1 实验目标 106
7.2 实验任务 106
7.3 分析和设计 106
7.4 编码实现 108
7.4.1 导入工程 108
7.4.2 遍历景区景点图(一条路线) 109
7.4.3 优化遍历算法(多条路线) 110
7.5 调试和运行 111
习题 112
8 Dijkstra算法与搜索最短路径实践 113
8.1 实验目标 113
8.2 实验任务 113
8.3 分析和设计 113
8.4 编码实现 114
8.4.1 导入工程 115
8.4.2 搜索最短路径 115
8.4.3 查询最短路径 115
8.5 调试和运行 116
习题 117
9最小生成树与铺设电路规划实践 118
9.1 实验目标 118
9.2 实验任务 118
9.3 分析和设计 118
9.4 编码实现 120
9.4.1 导入工程 120
9.4.2 构建最小生成树 121
9.4.3 查询铺设电路规划图 121
9.5 调试和运行 121
习题 122
第二部分 综合实践 124
10线性结构与连连看游戏综合实践 124
10.1 实践目标 124
10.2 需求分析 124
10.2.1 项目简介 124
10.2.2 游戏规则 125
10.2.3 功能简介 126
10.3 系统设计 127
10.3.1 界面设计 127
10.3.2 程序结构设计 128
10.3.3 数据结构设计 128
10.3.4 算法设计 130
10.4 创建工程 134
10.4.1 功能需求 134
10.4.2 设计思路 135
10.4.3 编码实现 135
10.5 主界面 141
10.5.1 功能需求 141
10.5.2 设计思路 141
10.5.3 编码实现 142
10.6 开始游戏 145
10.6.1 功能需求 145
10.6.2 设计思路 147
10.6.3 编码实现 151
10.7 消子判断 162
10.7.1 功能需求 162
10.7.2 设计思路 163
10.7.3 编码实现 165
10.8 判断胜负 176
10.8.1 功能需求 176
10.8.2 设计思路 176
10.8.3 编码实现 177
11非线性结构与连连看游戏综合实践 179
11.1 实践目标 179
11.2 需求分析 179
11.3 系统设计 180
11.3.1 程序结构设计 180
11.3.2 数据结构设计 181
11.3.3 开局与重排算法 182
11.3.4 消子判断算法 183
11.3.5 消子算法 184
11.3.6 胜负判断算法 184
11.4 创建工程 184
11.5 主界面 184
11.6 开始游戏 184
11.6.1 功能需求 184
11.6.2 设计思路 184
11.6.3 编码实现 187
11.7 相邻同色消子 191
11.7.1 功能需求 191
11.7.2 设计思路 191
11.7.3 编码实现 193
11.8 消子判断 194
11.8.1 功能需求 194
11.8.2 设计思路 194
11.8.3 编码实现 195
11.9 判断胜负 198
11.9.1 功能需求 198
11.9.2 设计思路 198
11.9.3 编码实现 199
11.10 扩展功能 200
11.10.1 提示 200
11.10.2 重排 200
12附录 201
12.1 参考资料 201
12.2 C++编码规范 201
12.2.1 基本原则 201
12.2.2 命名标准 201
12.2.3 注释规范 203
12.2.4 编码规范 204
12.2.5 排版规范 204
12.3 MFC应用程序介绍 204