目 录 1
前言 1
第一章绪论 1
§1.1计算机的一般知识 1
1.1.1 计算机的定义、特点、用途和分类 1
1.1.2计算机系统 2
§1.2用系统工程的观点和方法开发软件 6
1.2.1 系统和系统工程 6
1.2.2 用系统工程的观点和方法指导软件开发 8
习题一 11
第二章常用的数据结构 12
§2.1数据结构的概念 12
§2.2线性表 13
2.2.1 线性表的逻辑结构 13
2.2.2 线性表的顺序存贮结构 13
2.2.3线性表的运算 14
2.2.4数组 16
§2.3链表 19
2.3.1单链表 19
2.3.2链表的运算 20
2.3.3 循环链表 22
2.3.4 多重链表 24
§2.4栈与队列 25
2.4.1 栈 25
2.4.2 队列 27
2.4.3 栈与队列的应用 30
§2.5树与二叉树 32
2.5.1 树的基本概念 33
2.5.2 二叉树 34
2.5.3遍历二叉树 36
2.5.4 二叉树的应用 37
2.6.1 图的基本概念 41
§2.6图 41
2.6.2 图的存贮结构 42
2.6.3 图的遍历 44
§2.7查找 45
2.7.1 顺序查找 46
2.7.2折半查找 47
2.7.3树型查找 48
2.7.4 散列查找 49
§2.8排序 53
2.8.1 选择排序 53
2.8.2 冒泡排序 54
2.8.3插入排序 55
2.8.4希尔排序 56
2.8.5 快速排序 56
习题二 58
3.1.1 操作系统的功能 62
§3.1概述 62
第三章操作系统 62
3.1.2 操作系统的类型 63
§3.2处理机管理 65
3.2.1 多道程序 65
3.2.2进程及其状态 66
3.2.3作业调度 68
3.2.4 进程调度 70
3.2.5 交通控制 71
3.2.6 死锁问题 73
§3.3存贮管理 74
3.3.1 单一连续区分配 75
3.3.2分区式分配 76
3.3.3分页分配 80
3.3.4 分段分配 83
§3.4设备管理 85
3.4.1 通道技术 85
3.4.2 中断功能 86
3.4.3设备管理程序 87
§3.5文件管理 88
3.5.1 文件及其分类 88
3.5.2 文件系统的功能 89
3.5.3 文件系统的结构 89
3.5.4 文件的建立和使用 91
§3.6微型计算机的操作系统 92
3.6.1 PC-DOS 93
3.6.2 UNIX系统 95
习题三 96
第四章编译技术 98
§4.1程序设计语言的处理程序 98
4.1.1 汇编程序 98
4.1.2 编译程序和解释程序 100
§4.2编译程序的结构 101
§4.3词法分析 102
4.3.1词法分析的任务 102
4.3.2词法分析程序的结构 103
§4.4语法分析与语义分析 109
4.4.1语法分析与语义分析的任务 109
4.4.2语法语义分析方法 109
§4.5中间语言表示 115
4.5.1 逆波兰表示 115
4.5.2 四元式 117
4.5.3 三元式 118
§4.6代码优化 118
4.6.1局部优化 119
4.6.2循环优化 120
§4.7目标代码生成 123
习题四 124
第五章程序设计与测试 125
§5.1 程序设计 125
5.1.1算法 125
5.1.3程序设计方法 127
5.1.2 数据结构 127
5.1.4 工具 138
§5.2程序的测试和调试 142
5.2.1测试的概念 142
5.2.2测试用例设计 147
5.2.3 测试过程 153
5.2.4程序测试的方式和测试工具 158
5.2.5程序调试 160
习题五 170
第六章软件开发 171
§6.1 概述 171
6.1.1 软件工程 171
6.1.2 软件和软件生命期 171
§6.2软件工程的目标及三个侧面 175
6.2.1 软件工程的目标 175
6.2.2 软件工程的三个侧面 175
6.3.1 软件计划 177
§6.3软件计划与需求分析 177
6.3.2软件需求分析 179
§6.4软件设计与编码 180
6.4.1软件设计 180
6.4.2软件设计方法 182
6.4.3软件编码 183
§6.5软件维护 184
6.5.1 软件维护定义 184
6.5.2可维护性 184
6.5.3维护任务 185
习题六 186
附录 187
附录一 《计算机软件设计基础》教学基本要求 187
附录二ASCⅡ码字符集 188
附录三名词索引 192
参考文献 197