第1章 基础知识 1
1.1 计算机系统组成与应用分类 1
1.1.1 计算机的基本组成 1
1.1.2 计算机的应用分类 2
1.2 计算机软件 4
1.2.1 计算机语言 4
1.2.2 计算机软件定义 6
1.2.3 系统软件 7
1.2.4 应用软件 8
1.2.5 软件开发环境 8
1.2.6 面向对象的软件开发方法 9
习题 9
第2章 线性数据结构 10
2.1 基本概念 10
2.1.1 数据和数据结构 10
2.1.2 算法的描述和评价 12
2.2 线性表 14
2.2.1 线性表的定义及操作 14
2.2.2 线性表的顺序存储结构 15
2.2.3 线性表的链式存储结构 18
2.2.4 循环链表和双向链表 25
2.3 栈和队列 27
2.3.1 栈 28
2.3.2 队列 32
2.4 串和数组 38
2.4.1 串 38
2.4.2 数组 41
习题 44
第3章 非线性数据结构 46
3.1 树及其基本概念 46
3.2 二叉树 47
3.2.1 二叉树的定义及其性质 47
3.2.2 二叉树的存储结构 51
3.3 二叉树的遍历 52
3.4 树的存储结构和遍历 55
3.5 树、森林与二叉树的转换 56
3.6 霍夫曼树及其应用 58
3.7 图及其基本概念 61
3.8 图的存储结构 62
3.8.1 邻接矩阵 63
3.8.2 邻接表 63
3.9 图的遍历 65
3.10 图的连通性及最小生成树 69
习题 72
第4章 查找和排序 75
4.1 线性表查找 75
4.1.1 顺序查找 75
4.1.2 折半查找 76
4.1.3 分块查找 78
4.2 二叉排序树的查找 79
4.3 哈希查找 83
4.3.1 哈希表的建立 84
4.3.2 处理冲突的方法 85
4.3.3 哈希查找 86
4.4 排序 88
4.4.1 直接插入排序 88
4.4.2 简单选择排序 89
4.4.3 冒泡排序 90
4.4.4 快速排序 92
4.4.5 归并排序 94
习题 97
第5章 操作系统 98
5.1 概述 98
5.1.1 操作系统的作用与地位 98
5.1.2 操作系统的功能 99
5.1.3 操作系统的类型 100
5.1.4 操作系统的基本特征 103
5.2 进程管理 104
5.2.1 多道程序设计 104
5.2.2 进程 107
5.2.3 进程间的通信 109
5.2.4 进程控制 112
5.2.5 进程调度 113
5.2.6 进程死锁 114
5.3 存储管理 117
5.3.1 存储管理的功能 117
5.3.2 分区存储管理 119
5.3.3 页式存储管理 121
5.3.4 段式存储管理 123
5.3.5 段页式存储管理 125
5.3.6 虚拟存储管理 126
5.3.7 请求页式存储管理 128
5.4 设备管理 131
5.4.1 设备管理概述 131
5.4.2 I/O控制方式 133
5.4.3 设备分配 134
5.4.4 I/O传输控制 136
5.4.5 磁盘调度 137
5.5 文件管理 138
5.5.1 文件与文件系统 138
5.5.2 文件结构和存取方法 140
5.5.3 文件目录 143
5.5.4 文件存储空间的管理 145
5.5.5 文件存取控制 146
5.6 作业管理 147
5.6.1 操作系统与用户的接口 147
5.6.2 作业的基本概念 148
5.6.3 作业控制块和后备队列 149
5.6.4 作业调度与作业控制 150
5.6.5 UNIX/XENIX操作系统简介 152
习题 153
第6章 数据库技术基础 156
6.1 数据库基本概念 156
6.1.1 信息、数据和数据处理 156
6.1.2 数据管理技术的发展 156
6.1.3 数据库系统 159
6.2 数据模型 161
6.2.1 数据模型的概念 161
6.2.2 数据模型的要素 161
6.2.3 概念模型——E-R模型 162
6.2.4 常用的数据模型 164
6.3 数据库系统的体系结构 167
6.3.1 数据库系统中模式的概念 167
6.3.2 数据库系统的三级模式结构 168
6.3.3 数据库的二级映像与数据独立性 169
习题 170
第7章 关系数据库系统 171
7.1 关系模型概述 171
7.2 关系数据结构及形式化定义 172
7.2.1 关系的形式化定义 172
7.2.2 关系的性质 176
7.3 关系的完整性 177
7.3.1 完整性约束的分类 177
7.3.2 实体完整性规则 177
7.3.3 参照完整性规则 178
7.3.4 用户定义的完整性 179
7.4 关系代数 180
7.4.1 传统的集合运算 181
7.4.2 专门的关系运算 182
7.5 关系数据库标准语言SQL 187
7.5.1 SQL概述 187
7.5.2 SQL的数据定义 189
7.5.3 SQL的数据查询 192
7.5.4 SQL的数据更新 198
7.5.5 视图 200
7.5.6 SQL的数据控制语句 204
习题 206
第8章 关系规范化理论与数据库设计 208
8.1 函数依赖 208
8.2 规范化和范式 210
8.2.1 引例 210
8.2.2 第一范式(1NF)及规范化 212
8.2.3 第二范式(2NF)与第三范式(3NF) 213
8.2.4 BC范式(BCNF) 214
8.2.5 关系模式的分解 215
8.3 数据库设计概述 217
8.4 需求分析 220
8.4.1 需求分析的任务 220
8.4.2 需求分析的方法 221
8.5 概念结构设计 222
8.5.1 概念结构 222
8.5.2 概念结构设计的方法和步骤 222
8.6 逻辑结构设计 226
8.6.1 E-R图向关系模型的转换 227
8.6.2 数据模型的优化 228
8.7 物理结构设计 228
8.8 数据库的实施和维护 229
习题 231
第9章 数据库管理系统简介 232
9.1 Oracle数据库系统 232
9.1.1 Oracle数据库系统简介 232
9.1.2 Oracle的主要产品及其功能 232
9.1.3 Oracle数据仓库和Internet解决方案 234
9.2 IBM DB2数据库系统 235
9.2.1 IBM DB2数据库系统简介 235
9.2.2 DB2通用数据库的功能和特色 236
9.2.3 IBM的商务智能解决方案 236
9.2.4 IBM内容管理解决方案 238
9.3 SYBASE数据库系统 238
9.3.1 SYBASE数据库系统简介 238
9.3.2 SYBASE数据库系统的功能及其特色 239
9.3.3 SYBASE的Internet应用和商务智能解决方案 241
9.3.4 SYBASE的移动与嵌入计算解决方案 242
9.4 MS_SQL SERVER数据库系统 243
9.4.1 MS_SQL SERVER数据库系统简介 243
9.4.2 MS_SQL SERVER数据库系统主要功能及其特色 243
9.4.3 SQL Server 2000多版本支持 245
9.4.4 Microsoft SQL Server 2000的软、硬件环境 246
习题 247
第10章 软件工程 248
10.1 软件工程概述 248
10.2 问题定义与可行性研究 249
10.3 软件的需求分析 250
10.3.1 需求分析概述 250
10.3.2 结构化分析方法 252
10.3.3 数据流图 253
10.3.4 数据字典 255
10.4 软件的设计 257
10.4.1 软件设计概述 257
10.4.2 软件设计准则 259
10.4.3 结构化设计方法 261
10.4.4 详细设计方法 265
10.4.5 面向对象的程序设计方法 267
10.5 软件的编程 275
10.6 软件的测试 277
10.6.1 软件测试概述 277
10.6.2 测试用例的设计 278
10.6.3 测试实施策略 282
10.6.4 软件的调试 285
10.7 软件的维护 287
习题 288
参考文献 289