第1章 算法及其描述方法 1
1.1 为什么要编写程序 1
1.2 算法的概念及基本特征 2
1.3 结构化程序设计方法 4
1.4 算法的几种描述方法 5
1.4.1 自然语言 5
1.4.2 流程图 5
1.4.3 N-S图 7
1.4.4 计算机语言 7
1.4.5 伪代码 10
1.5 C语言简介 10
1.6 VC 6.0上机调试过程 11
1.6.1 C语言程序的编制运行过程 11
1.6.2 VC的启动 12
1.6.3 VC的关闭 12
1.6.4 VC中新程序的建立及调试运行 12
1.6.5 当前源程序及相关环境的关闭 15
1.6.6 已存在程序文件的打开及运行 16
习题1 16
第2章 程序设计基础 18
2.1 信息处理流程概述 18
2.2 数据的输入、存储、加工处理及输出 18
2.2.1 数据的输入、存储、加工处理及输出流程示例 18
2.2.2 标识符及其起名规则 20
2.2.3 常量及变量 21
2.2.4 赋值运算符 25
2.2.5 算术运算符 26
2.2.6 格式化输出函数printf 27
2.2.7 格式化输入函数scanf 31
2.3 顺序结构程序设计 32
2.4 选择结构程序设计 34
2.5 循环结构程序设计 43
2.5.1 当型循环 44
2.5.2 直到型循环 46
2.5.3 for循环 48
2.6 三种控制结构的综合应用 50
2.7 运算符及其优先级和结合性 61
2.7.1 运算符的优先级及结合性简述 61
2.7.2 常见运算符及其相关说明 63
2.7.3 有关结合性的解释 66
2.8 不同类型数据间的转换与运算 67
2.8.1 隐式自动转换 67
2.8.2 显式强制转换 69
习题2 69
第3章 数组及字符串 74
3.1 C语言中的数组 74
3.1.1 一维数组 74
3.1.2 二维数组 85
3.1.3 多维数组 88
3.2 字符串 89
3.2.1 字符串的本质 89
3.2.2 字符数组 89
3.2.3 常用字符串操作函数 90
3.2.4 字符串应用举例 93
习题3 96
第4章 复杂数据类型 97
4.1 C语言中的复杂数据类型概述 97
4.2 结构体 97
4.2.1 结构体类型的定义 98
4.2.2 结构体变量的定义 99
4.2.3 结构体变量的引用 101
4.2.4 结构体变量的赋值 102
4.3 共用体 105
4.3.1 共用体类型的定义 107
4.3.2 共用体变量的定义 107
4.3.3 共用体变量的引用 108
4.3.4 共用体变量的赋值 110
4.4 枚举类型 113
4.4.1 枚举类型的定义 113
4.4.2 枚举型变量的定义 114
4.4.3 枚举型变量的赋值 114
4.4.4 枚举类型有关说明 114
习题4 116
第5章 指针 119
5.1 C语言中的指针概述 119
5.1.1 指针与指针变量 119
5.1.2 指针相关运算 123
5.2 指针与数组的关系 124
5.2.1 数组的指针与指向一维数组元素的指针变量 124
5.2.2 一维数组与指针变量的关系 125
5.2.3 指向指针的指针变量 127
5.2.4 指针数组——元素类型为指针的数组 127
5.2.5 指针数组与指向指针的指针变量的关系 127
5.2.6 二维数组与指针变量的关系 130
5.3 指针与动态内存分配 134
5.3.1 C语言内存管理概述 135
5.3.2 内存空间的动态分配 136
5.3.3 动态释放内存 137
5.3.4 动态内存分配的几种不同情形 137
5.3.5 常见内存错误及其对策 141
5.4 指针与字符串 141
5.4.1 用C语言处理字符串的两种不同形式 141
5.4.2 字符型指针变量与字符型数组 143
习题5 144
第6章 函数 145
6.1 C语言函数简介 145
6.1.1 函数的概念及分类 145
6.1.2 标准函数的使用 145
6.2 自定义函数 147
6.2.1 自定义函数概述 147
6.2.2 自定义函数的一般定义形式 149
6.2.3 自定义函数的调用 149
6.2.4 模块化程序设计 152
6.3 函数中参数的传递方式 155
6.3.1 按值传送 155
6.3.2 按地址传送 156
6.3.3 两种不同参数传递方式的选择 157
6.4 变量的作用域、生存期及存储类型 158
6.4.1 变量的作用域 158
6.4.2 变量的生存期 158
6.4.3 局部变量 158
6.4.4 全局变量 160
6.4.5 文件变量 161
6.4.6 变量的存储类型 162
6.4.7 外部变量在多文件系统中的应用 167
6.4.8 变量作用域、生存期及存储类型小结 168
6.5 函数的嵌套与递归调用 169
6.5.1 函数的嵌套调用 169
6.5.2 函数的递归调用 169
习题6 174
第7章 文件 175
7.1 文件概述 175
7.1.1 文件概述 175
7.1.2 文件的分类 175
7.2 文件操作 177
7.2.1 文件指针 178
7.2.2 文件操作基本步骤示例 178
7.3 文件操作相关函数 180
7.3.1 文件的打开:fopen()函数 180
7.3.2 文件的关闭:fclose()函数 182
7.3.3 文件格式化输出函数:fprintf() 182
7.3.4 文件格式化输入函数:fscanf() 182
7.3.5 判断是否到文件尾函数:feof() 183
7.3.6 文件数据块读/写函数:fread()和fwrite() 183
7.3.7 文件内部指针的定位 183
7.3.8 清除文件缓冲区函数:fflush() 188
习题7 189
第8章 系统开发与链表 190
8.1 软件工程简介 190
8.1.1 软件工程概述 190
8.1.2 软件工程中的瀑布模型 191
8.2 “班级基本信息管理系统”开发示例 193
8.2.1 问题的定义 194
8.2.2 可行性研究 194
8.2.3 需求分析 194
8.2.4 系统设计(概要设计) 195
8.2.5 详细设计 195
8.2.6 编程 198
8.2.7 测试 204
8.2.8 运行及维护 205
8.3 链表与系统开发 205
8.3.1 问题的定义 205
8.3.2 可行性研究 205
8.3.3 需求分析 205
8.3.4 系统设计(概要设计) 205
8.3.5 详细设计(算法设计) 208
8.3.6 编程 212
8.3.7 测试 219
8.3.8 总结 220
习题8 220
第9章 面向对象程序设计入门 221
9.1 面向对象程序设计概述 221
9.1.1 面向过程的程序设计方法 221
9.1.2 面向对象的程序设计方法 222
9.1.3 面向对象程序设计的特点 223
9.1.4 面向对象与面向过程程序设计比较 225
9.1.5 三种常用的面向对象程序设计语言 226
9.1.6 面向对象程序设计示例 226
9.2 面向对象程序设计方法的技术实现 227
9.2.1 类的定义 227
9.2.2 成员的存取控制类别 230
9.2.3 构造函数和析构函数 230
9.2.4 面向对象程序设计实例 230
习题9 238
第10章 可视化程序设计 239
10.1 MFC简介 239
10.1.1 MFC的定义 239
10.1.2 一个简单的MFC应用程序例子 242
10.2 MFC中的控件 253
10.2.1 静态控件 253
10.2.2 按钮 256
10.2.3 编辑框 260
10.2.4 旋转按钮控件 262
10.2.5 列表框 268
10.2.6 组合框 275
10.2.7 进度条 281
10.2.8 滚动条 284
10.2.9 滑动条 285
10.2.10 日期时间控件 290
10.2.11 图像列表控件 290
10.3 用MFC进行可视化系统开发 291
10.4 C/S模式的“班级基本信息管理系统”的开发 318
10.4.1 在VC中用ODBC访问数据库 318
10.4.2 MFC的ODBC类 322
10.4.3 MFC ODBC数据库编程的一般处理流程 322
10.4.4 系统说明 323
10.4.5 开发过程 323
习题10 340
第11章 位运算 341
11.1 C语言中的位运算 341
11.2 位运算实际应用 342
11.2.1 按位与、或、异或及取反 342
11.2.2 移位运算 344
11.2.3 典型应用案例 345
11.3 位域 348
11.3.1 位域类型定义 349
11.3.2 位域变量定义 350
11.3.3 位域的使用 350
11.3.4 位域的空间分配 351
习题11 353
第12章 预处理 354
12.1 预处理简介 354
12.2 宏定义 354
12.2.1 无参宏定义 355
12.2.2 带参宏定义 355
12.2.3 取消宏定义 357
12.3 文件包含 357
12.4 条件编译 357
习题12 360
附录A 常见标准函数 361
附录B C语言关键字 378
附录C ASCII码表 379
附录D C语言常见错误举例说明 383
附录E 学习建议 391
参考文献 392