目 录
第1章 基础知识回顾 1
1.1 概述 1
1.1.1 C程序的基本结构 1
1.1.2 高级语言的编译和执行 2
1.1.3 编译和执行C程序 2
1.1.4 Visual C++ 6.0 3
1.2 程序设计结构 8
1.2.1 顺序结构 8
1.2.2 选择结构 8
1.2.3 循环结构 9
1.3 数组 11
1.3.1 一维数组 11
1.3.2 二维数组 11
1.4 函数 11
1.4.1 函数种类 11
1.4.2 函数的调用 13
1.4.3 函数的形参与实参 14
1.4.4 内部变量与外部变量 14
1.4.5 变量的动态存储与静态存储 15
1.5 编译预处理 16
1.5.1 宏定义与符号常量 16
1.5.2 文件包含 17
1.5.3 条件编译 17
1.6 指针 18
1.6.1 指针和指针变量的概念 18
1.6.2 指针变量的定义与应用 19
1.6.3 数组的指针和指向数组的指针变量 19
1.6.4 字符串的指针和指向字符串的指针变量 21
1.6.5 返回指针值的函数 22
1.6.6 指针数组与主函数main()的形参 23
1.7 结构体 23
1.7.1 结构体类型变量的定义 23
1.7.2 结构体变量的引用 24
1.7.3 结构体的使用 24
1.8 小结 24
第2章 图书馆管理系统分析 25
2.1 系统需求分析 25
2.2 模块功能描述 26
2.3 数据结构设计 27
2.3.1 读者信息结构 28
2.3.2 分类目录信息结构 29
2.3.3 图书信息结构 30
2.3.4 借阅信息结构 31
2.3.5 账户信息结构 32
2.3.6 全局ER图 33
2.4 系统流程图 33
2.5 系统菜单设计 34
2.6 小结 35
第3章 读者管理模块的设计与实现 36
3.1 知识要点 36
3.1.1 单链表 36
3.1.2 顺序查找 41
3.1.3 顺序文件操作 41
3.2 模块设计 45
3.3 数据流程图 46
3.4 模块实现 47
3.4.1 增加读者 47
3.4.2 查询读者 48
3.4.3 修改读者 49
3.4.4 浏览所有读者 50
3.4.5 证件挂失 51
3.5 功能测试 51
3.6 小结 54
第4章 分类目录管理模块的设计与实现 55
4.1 知识要点 55
4.1.1 树的基本概念 55
4.1.2 树的存储结构 56
4.1.3 树的遍历 57
4.1.4 图书分类目录 57
4.1.5 随机文件操作 58
4.2 模块设计 61
4.3 数据流程图 61
4.4 模块实现 62
4.4.1 增加分类 62
4.4.2 修改分类 63
4.4.3 删除分类 64
4.4.4 浏览分类目录结构 64
4.5 功能测试 66
4.6 小结 69
第5章 图书编目管理模块的设计与实现 70
5.1 知识要点 70
5.1.1 scanf/fscanf%[] 70
5.1.2 清空输入缓冲区 71
5.1.3 字符串库函数 72
5.2 模块设计 78
5.3 数据流程图 78
5.4 模块实现 79
5.4.1 新书录入 79
5.4.2 删除图书 80
5.4.3 修改图书 83
5.5 功能测试 83
5.6 小结 85
第6章 图书流通管理模块的设计与实现 86
6.1 知识要点 86
6.1.1 顺序表 86
6.1.2 冒泡排序 88
6.1.3 简单选择排序 89
6.1.4 直接插入排序 89
6.1.5 折半查找 89
6.1.6 时间处理函数 91
6.2 模块设计 96
6.3 数据流程图 96
6.4 模块实现 98
6.4.1 图书分类浏览 98
6.4.2 图书检索 100
6.4.3 借书 104
6.4.4 还书 107
6.4.5 续借 109
6.4.6 罚款 109
6.4.7 查询借阅记录 110
6.5 功能测试 111
6.6 小结 113
第7章 账户管理模块的设计与实现 114
7.1 模块设计 114
7.2 数据流程图 114
7.3 功能实现 115
7.3.1 注册账户 116
7.3.2 修改密码 117
7.3.3 查询账户 118
7.3.4 删除账户 119
7.3.5 修改账户 120
7.4 功能测试 121
7.5 小结 122
第8章 内存分区管理算法的设计与实现 123
8.1 知识要点 123
8.1.1 可变分区存储管理 123
8.1.2 空闲区的合并 125
8.1.3 分区的管理与组织方式 126
8.1.4 空闲分区的分配算法 127
8.2 总体设计 128
8.2.1 数据结构设计 128
8.2.2 内存分配算法 129
8.2.3 内存回收算法 130
8.2.4 函数设计 134
8.3 代码实现 134
8.3.1 主函数 134
8.3.2 内存分配函数 136
8.3.3 内存回收函数 137
8.3.4 输出分区 140
8.3.5 运行测试 141
8.4 小结 143
第9章 字母贪吃蛇游戏的设计与实现 144
9.1 理论基础 144
9.1.1 控制台界面操作函数 144
9.1.2 与线程有关的函数 146
9.2 总体设计 147
9.3 游戏代码实现 148
9.3.1 头文件包含 148
9.3.2 常量及变量定义 149
9.3.3 函数声明 150
9.3.4 函数实现 150
9.3.5 游戏运行测试 156
9.4 小结 157
第10章 C语言编程规范 158
10.1 文件结构 158
10.1.1 版权和版本的声明 158
10.1.2 头文件的结构 158
10.1.3 源程序文件的结构 159
10.1.4 头文件的作用 160
10.1.5 目录结构 160
10.2 程序的版式 160
10.2.1 空行 160
10.2.2 代码行 161
10.2.3 代码行内的空格 162
10.2.4 对齐 162
10.2.5 长行拆分 163
10.2.6 修饰符的位置 164
10.2.7 注释 164
10.3 命名规则 165
10.3.1 共性规则 165
10.3.2 应用程序命名规则 166
10.4 常量 166
10.4.1 使用原因 166
10.4.2 const与#define的比较 166
10.4.3 常量定义规则 167
10.5 表达式和基本语句 167
10.5.1 运算符的优先级 167
10.5.2 复合表达式 168
10.5.3 if语句 168
10.5.4 循环语句的效率 169
10.5.5 for语句的循环控制变量 170
10.5.6 switch语句 171
10.6 函数设计 171
10.6.1 参数的规则 171
10.6.2 返回值的规则 172
10.6.3 函数内部实现的规则 173
10.6.4 其他 174
10.7 小结 174
附录 175