图书简介:
第1章 程序设计与敏捷开发……………………………………………………………… 1
1.1 程序设计能力的提高是一个长期的循序渐进的过程……………………………… 1
1.1.1 面向过程语言的淘汰与面向对象语言的流行…………………………………… 1
1.1.2 数据结构课程的变化对程序设计课程教学的影响……………………………… 2
1.1.3 新时期程序设计基础课的要求…………………………………………………… 2
1.1.4 关于教材建设的思考与探索……………………………………………………… 2
1.2 在程序设计学习中主动实践敏捷开发思想………………………………………… 4
1.2.1 敏捷软件开发的四个核心观点………………………………………………… 4
1.2.2 敏捷软件开发的原则…………………………………………………………… 4
1.2.3 敏捷软件开发的主要特征……………………………………………………… 5
1.2.4 敏捷软件开发的主要过程……………………………………………………… 6
1.2.5 敏捷软件开发典型方法………………………………………………………… 6
1.2.6 两种方法学的比较……………………………………………………………… 7
1.2.7 敏捷软件开发思想的实践……………………………………………………… 8
第2章 算法演示系统的敏捷开发……………………………………………… 10
2.1 算法演示系统原理…………………………………………………………………… 10
2.1.1 脚本语言……………………………………………………………………… 10
2.1.2 系统设计思想……………………………………………………………………11
2.2 开发过程与方法……………………………………………………………………… 11
2.2.1 面向对象的界面接口设计……………………………………………………… 11
2.2.2 迭代与重构……………………………………………………………………… 12
2.2.3 测试驱动………………………………………………………………………… 12
2.2.4 开发过程的线性化……………………………………………………………… 13
2.3 一个实例……………………………………………………………………………… 13
2.4 演示系统的构成……………………………………………………………………… 15
2.4.1 系统目录与程序演示部分的关联……………………………………………… 15
2.4.2 程序演示部分………………………………………………………………………16
2.5 演示类基类的实现…………………………………………………………………… 17
2.5.1 基类的成员说明……………………………………………………………… 17
2.5.2 算法代码的填充……………………………………………………………… 18
2.5.3 脚本行的解释………………………………………………………………… 19
2.5.4 简单静态变量的分配与变化………………………………………………… 20
2.5.5 二维数组的分配与值的修改………………………………………………… 21
2.5.6 系统工作栈的入栈及出栈……………………………………………………… 22
2.5.7 指针类型的结点申请………………………………………………………… 23
2.5.8 指针变量相互赋值……………………………………………………………… 24
2.5.9 对结点的数据域、指针域赋值………………………………………………… 27
2.6 演示算法的开发过程及方法……………………………………………………… 28
2.6.1 开发过程……………………………………………………………………… 28
2.6.2 输入检查……………………………………………………………………… 29
2.6.3 算法代码输出…………………………………………………………………… 30
2.6.4 算法的执行……………………………………………………………………… 31
2.6.5 脚本的输出……………………………………………………………………… 32
2.7 结论………………………………………………………………………………… 34
第3章 线性表………………………………………………………………………… 35
3.1 顺序结构线性表的操作……………………………………………………………… 36
3.1.1 顺序表的类的定义……………………………………………………………… 36
3.1.2 主要方法说明…………………………………………………………………… 37
3.1.3 算法演示………………………………………………………………………… 38
3.2 链式结构线性表的操作……………………………………………………………… 40
3.2.1 链表的类的定义……………………………………………………………… 41
3.2.2 主要方法说明………………………………………………………………… 41
3.2.3 算法演示……………………………………………………………………… 45
3.3 Strategy模式与基于抽象类的应用………………………………………………… 47
第4章 栈……………………………………………………………………………… 51
4.1 栈及其实现………………………………………………………………………… 51
4.2 栈的简单应用……………………………………………………………………… 53
4.2.1 简单行编辑应用……………………………………………………………… 53
4.2.2 表达式求值……………………………………………………………………… 54
4.3 在汉诺塔游戏中应用栈…………………………………………………………… 59
4.3.1 递归……………………………………………………………………………… 59
4.3.2 汉诺塔游戏……………………………………………………………………… 59
4.4 八皇后问题和迷宫问题……………………………………………………………… 64
4.4.1 八皇后问题……………………………………………………………………… 64
4.4.2 迷宫问题………………………………………………………………………… 66
第5章 队列……………………………………………………………………………… 71
5.1 队列的存储结构……………………………………………………………………… 71
5.2 链队列………………………………………………………………………………… 72
5.2.1 类的定义及主要方法………………………………………………………… 72
5.2.2 在链队列中插入与删除元素………………………………………………… 74
5.3 循环队列……………………………………………………………………………… 74
5.3.1 类的定义及主要方法…………………………………………………………… 74
5.3.2 在循环队列中插入与删除元素………………………………………………… 76
第6章 广义表………………………………………………………………………… 78
6.1 广义表的定义………………………………………………………………………… 78
6.2 广义表的建立………………………………………………………………………… 78
6.3 求广义表的深度…………………………………………………………………… 81
6.4 广义表的取头、取尾操作…………………………………………………………… 83
第7章 二叉树……………………………………………………………………………86
7.1 二叉树的建立…………………………………………………………………………86
7.1.1 先根递归建立二叉树……………………………………………………………87
7.1.2 二叉树的图形显示………………………………………………………………89
7.1.3 由二叉树的先序和中序序列生成二叉树………………………………………92
7.1.4 二叉排序树的建立………………………………………………………………94
7.2 二叉树的遍历………………………………………………………………………97
7.2.1 二叉树的递归遍历算法………………………………………………………97
7.2.2 二叉树的非递归遍历算法………………………………………………………98
第8章 图……………………………………………………………………………… 103
8.1 图的存储…………………………………………………………………………… 103
8.1.1 图的输入设计…………………………………………………………………… 103
8.1.2 图的顺序存储…………………………………………………………………… 109
8.1.3 图的链式存储…………………………………………………………………… 112
8.2 基于顺序存储的算法……………………………………………………………… 117
8.2.1深度优先遍历…………………………………………………………………… 117
8.2.2 广度优先遍历…………………………………………………………………… 119
8.2.3 单源点最短路径问题…………………………………………………………… 120
8.3 基于链式存储的算法……………………………………………………………… 122
8.3.1 求图的入度……………………………………………………………………… 122
8.3.2 拓扑排序………………………………………………………………………… 123
8.3.3 求关键路径……………………………………………………………………… 125
第9章 简易应用系统的敏捷开发……………………………………………… 128
9.1 一种简易数据库类的设计与应用………………………………………………… 128
9.1.1 一种简易数据库类……………………………………………………………… 128
9.1.2 list类在开发中的应用………………………………………………………… 133
9.2 简易竞赛系统的开发……………………………………………………………… 133
9.2.1 编制用来输入选择题的程序…………………………………………………… 133
9.2.2 编制用来进行选择题考试的程序……………………………………………… 137
9.2.3 编制进行文字录入题考试的程序……………………………………………… 141
第10章 小游戏软件的敏捷设计与开发………………………………………… 146
10.1 五子棋游戏………………………………………………………………………… 146
10.1.1 概要设计……………………………………………………………………… 146
10.1.2 界面设计……………………………………………………………………… 147
10.1.3 响应需求变化………………………………………………………………… 149
10.1.4 重构代码以利于相应变化…………………………………………………… 150
10.1.5 相关算法的部分代码……………………………………………………… 151
10.2 对对碰游戏………………………………………………………………………157
10.2.1 游戏简介……………………………………………………………………… 157
10.2.2 总体设计思想………………………………………………………………… 157
10.2.3 界面设计……………………………………………………………………… 158
10.2.4 接口类设计…………………………………………………………………… 159
10.2.5 棋盘数据类设计……………………………………………………………… 159
10.2.6 相关类设计………………………………………………………………… 165
10.2.7 总结………………………………………………………………………… 168
10.3 俄罗斯方块游戏………………………………………………………………… 168
10.3.1 总体设计思想……………………………………………………………… 168
10.3.2 优先编写测试程序…………………………………………………………… 169
10.3.3 迭代计划实现类……………………………………………………………… 173
10.3.4 界面优化……………………………………………………………………… 175
10.3.5 总结…………………………………………………………………………… 178
参考文献………………………………………………………………………………… 179
展开
无………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
展开