第1篇 软件基础 2
第1章 软件工程 2
1.1 软件工程概述 2
1.1.1 软件工程的定义 2
1.1.2 软件生存周期 4
1.1.3 软件开发模型 4
1.2 软件的分析 6
1.2.1 问题定义 6
1.2.2 可行性研究 6
1.2.3 需求分析 6
1.2.4 软件分析方法 7
1.2.5 表达工具 8
1.3 软件的设计 12
1.3.1 软件设计概述 13
1.3.2 软件设计准则 14
1.3.3 总体设计方法 16
1.3.4 详细设计方法 20
1.4 软件编程 24
1.4.1 编程语言的选择 25
1.4.2 编程风格 25
1.5 软件的测试 26
1.5.1 软件测试概述 26
1.5.2 测试用例的设计 27
1.5.3 测试实施策略 34
1.5.4 软件的调试 37
1.6 软件的维护 39
1.6.1 维护的基本概念 39
1.6.2 软件的可维护性 39
1.6.3 维护的实施 39
1.7 面向对象的方法 40
1.7.1 面向对象的基本概念 40
1.7.2 面向对象软件的开发过程 42
1.7.3 面向对象的设计 50
习题 54
第2章 算法 61
2.1 算法的概念 61
2.1.1 算法的基本概念 61
2.1.2 算法的特性 62
2.2 算法的描述 62
2.3 算法的评估 63
2.3.1 算法设计的要求 63
2.3.2 算法效率的度量 64
习题 67
第3章 程序设计语言 68
3.1 程序设计语言的分类 68
3.1.1 低级程序设计语言 68
3.1.2 高级程序设计语言 70
3.2 高级程序设计语言介绍 70
3.2.1 面向过程的程序设计语言 70
3.2.2 面向对象程序设计语言的特点 79
习题 82
第4章 数据结构 83
4.1 数据结构概述 83
4.1.1 数据结构的定义 83
4.1.2 数据结构的基本内容 84
4.2 线性表 85
4.2.1 线性表的逻辑结构 85
4.2.2 线性表的存储结构 86
4.2.3 算法评价及改进算法的各种策略 93
4.3 特殊线性表 102
4.3.1 栈 102
4.3.2 队列 108
4.3.3 串 113
4.3.4 数组 116
4.4 树 121
4.4.1 树的定义及存储结构 121
4.4.2 二叉树的定义及存储 123
4.4.3 二叉树的存储结构 125
4.4.4 树、森林与二叉树之间的转换 127
4.4.5 二叉树的算法——遍历二叉树 129
4.4.6 二叉树的应用 131
4.5 图 135
4.5.1 图的定义及存储结构 135
4.5.2 图的存储 137
4.5.3 图的常用算法——图的遍历 139
4.6 查找 142
4.6.1 静态查找 143
4.6.2 动态查找 147
4.6.3 哈希查找 148
4.7 排序 151
4.7.1 选择排序 152
4.7.2 插入排序 152
4.7.3 冒泡排序 153
4.7.4 快速排序 154
4.7.5 归并排序 156
习题 157
第2篇 计算机软件开发基础第5章 数据库技术概述 170
5.1 数据管理技术的发展 170
5.1.1 人工管理阶段 170
5.1.2 文件系统阶段 171
5.1.3 数据库系统阶段 171
5.1.4 数据的传统管理方式与数据库管理方式的比较 172
5.2 数据及数据模型 174
5.2.1 数据描述的三个领域 174
5.2.2 数据模型 176
5.2.3 数据库系统的体系结构 180
5.3 数据库系统的组成 182
5.3.1 软件部分 183
5.3.2 硬件部分 184
5.3.3 数据库管理员 184
习题 184
第6章 关系型数据库理论 188
6.1 关系及关系代数 188
6.1.1 关系及关系模型 188
6.1.2 关系代数 191
6.2 关系型数据库标准语言SQL 198
6.2.1 SQL概述 198
6.2.2 数据的定义 201
6.2.3 数据操纵 204
6.2.4 数据控制 212
6.2.5 嵌入式SQL 214
6.3 关系数据库的规范化理论 216
6.3.1 函数依赖 219
6.3.2 规范化的关系模式 221
6.3.3 关系模式的分解 223
习题 226
第7章 数据库系统设计 230
7.1 概述 230
7.1.1 数据库系统设计的任务 231
7.1.2 数据库系统设计的特点 232
7.1.3 数据库系统设计的步骤 232
7.2 需求分析 233
7.2.1 需求信息的收集 233
7.2.2 需求信息的整理 234
7.3 概念设计 235
7.3.1 设计局部概念模式 236
7.3.2 设计全局概念模式 237
7.4 逻辑设计 240
7.4.1 E-R图到关系模式的转换 240
7.4.2 数据逻辑设计 240
7.4.3 物理设计 241
7.4.4 存储记录的格式设计 241
7.4.5 存储方法设计 241
7.4.6 存取方法设计 242
习题 242
第3篇 实验指导 244
实验1 线性表的建立 244
实验2 线性表的插入 248
实验3 线性表的删除 252
实验4 顺序栈的建立和操作 255
实验5 链栈的建立和操作 258
实验6 队列的建立和操作 261
实验7 稀疏矩阵压缩存储的转置运算 265
实验8 二叉树的顺序存储及访问 268
实验9 二叉树动态存储的构建及遍历 271
实验10 二叉树的应用——二叉排序树的建立和访问 274
实验11 图的邻接表建立及图的遍历 277
实验12 折半查找算法 281
实验13 哈希查找算法 283
实验14 快速排序算法 285
部分习题参考答案 288
参考文献 293