目录 1
第1章 概论 1
1.1 计算机系统 1
1.1.1 计算机系统的发展 1
1.1.2 软件与软件的分类 2
1.2 计算机语言和语言处理程序 3
1.2.1 计算机语言概述 3
1.2.2 计算机语言处理程序概述 4
1.3 计算机软件技术概述 5
1.3.1 数据结构、算法和程序设计 5
1.3.2 操作系统和计算机网络 6
1.3.3 数据库管理系统 7
1.3.4 软件工程 8
1.3.5 面向对象方法学 9
1.4.1 软件开发方法 10
1.4 软件开发环境 10
1.4.2 软件开发环境 11
习题 12
第2章 C程序设计基础 13
2.1 C程序设计入门 13
2.1.1 C语言的发展简史与特点 13
2.1.2 C程序的基本结构 14
2.1.3 C语言的基本数据类型 16
2.1.4 基本运算符和表达式 24
2.1.5 不同类型数据混合运算及数据转换 37
2.1.6 C程序设计初步 39
2.2 C程序的控制结构 48
2.2.1 概述 48
2.2.2 分支结构 48
2.2.3 循环结构 51
2.2.4 算法与程序举例 56
习题 59
第3章 模块化程序设计 60
3.1 模块化程序设计 60
3.1.1 模块化程序设计概念 60
3.1.2 函数 61
3.1.3 模块组合与函数的嵌套调用 62
3.1.4 函数的递归调用 66
3.1.5 模块结构与程序结构 67
3.1.6 编译预处理 73
3.2 指针与函数 79
3.2.1 指针的概念 79
3.2.2 指针变量作函数的参数 81
3.2.3 函数的指针与函数调用 82
3.2.4 返回指针值的函数 84
习题 85
4.1.1 数组与指针 86
4.1 构造类型和指针 86
第4章 C程序中的构造数据类型和文件 86
4.1.2 结构体和指针 101
4.1.3 共用体 109
4.1.4 枚举类型 112
4.1.5 位段及应用 114
4.2 文件 115
4.2.1 文件概念与文件类型指针 115
4.2.2 文件的打开与关闭 117
4.2.3 文件的读写 118
4.2.4 文件的定位和随机读写 125
4.2.5 文件操作的错误检测 127
习题 128
第5章 基本数据结构 129
5.1 数据结构的基本概念 129
5.1.1 什么是数据结构 129
5.1.2 几种基本结构 130
5.1.3 数据结构的存储方式 133
5.1.4 抽象数据类型和数据结构的描述 136
5.2 线性数据结构 136
5.2.1 线性表及其顺序存储结构 137
5.2.2 线性表的链接存储结构 138
5.2.3 栈和队列 142
5.3 树型数据结构 151
5.3.1 树的基本概念 151
5.3.2 二叉树 152
5.4 集合与查找 159
5.4.1 集合 160
5.4.2 线性表表示下的查找 160
5.4.3 二叉树表示下的查找 161
5.4.4 散列表表示下的查找 162
5.5 图型数据结构 164
5.6.1 简单排序 170
5.6 排序 170
5.6.2 希尔排序 180
习题 181
第6章 面向对象程序设计语言C++ 182
6.1 C++的起源与特点 182
6.2 C++封装性:对象类 183
6.2.1 类的说明和类的实例 184
6.2.2 实例的初始化和析构 187
6.3 C++继承性:导出类 189
6.3.1 继承 189
6.3.2 继承关系分类 189
6.3.3 在派生类中初始化基类成员 193
6.3.4 继承的多义性 194
6.3.5 基类指针与派生类指针 195
6.3.6 基类对象的赋值 196
6.4.1 编译时多态性与运算符的重载 198
6.3.7 继承关系与其他 198
6.4 多态性:虚函数 198
6.4.2 运行时多态性与虚函数 199
习题 201
第7章 软件工程概述 202
7.1 软件工程概述 202
7.1.1 软件工程的产生 202
7.1.2 软件工程概念及目标 203
7.1.3 软件工程研究的内容 203
7.2 软件开发模型 204
7.2.1 软件生命周期 204
7.2.2 软件开发模型 205
7.3 软件工程过程 207
7.3.1 基本过程 207
7.3.3 组织过程 208
7.3.2 支持过程 208
7.3.4 软件过程的改进及CMM模型 209
7.3.5 ISO 9000-3 210
习题 211
实验一 基本输入输出实验 212
实验二 选择结构程序设计实验 212
实验三 循环结构程序设计实验 213
实验四 数组编程实验 213
实验五 函数编程实验 213
实验六 指针编程实验 214
实验七 结构体程序设计实验 214
实验八 文件程序设计实验 215
实验九 排序程序设计实验 215
实验十 单向链表程序设计实验 216
实验十一 二叉树编程实验 216
实验十二 栈的应用实验 217