《C语言开发实战》从初学者的角度讲述了使用Visual C++ 6.0(以及部分Turbo C)进行程序开发应该掌握的各项技术,内容突出“基础”、“全面”、“深入”的特点,同时强调“实战”效果(只掌握和理解技术,而没有实际应用,等于没有掌握技术)。本书共分为5篇22章。前3篇中,在介绍技术的同时,每一章均提供了相应的实例,同时在各章的结尾安排有实战,通过几个小型项目来综合应用本章所讲解的知识,做到理论联系实际。在第4篇中,各章都安排了范例,使读者巩固所学的知识。最后,在第5篇中提供了两个完整的项目实例,讲述从前期规划、设计流程图,到项目最终实施的整个实现过程。所有知识都结合具体实例进行介绍,对涉及的程序代码给出了详细的注释,读者可以轻松领会C语言程序开发的精髓,快速提高开发技能。本书特色及丰富的学习资源包如下: 黄金学习搭配、专业学习视频、重难点精确打击、学习经验分享、学习测试诊断、有趣实践任务、专业资源库、学习排忧解难、获取源程序、提供习题答案、赠送开发案例。本书适合有志于从事软件开发的初学者、高校计算机相关专业学生和毕业生,也可作为软件开发人员的参考手册或高校的教学参考书。
目 录
第1篇 新 手 入 门
第1章 C语言开发环境 3
视频讲解:12分钟
1.1 本章知识体系 4
1.2 程序员的成长之路 4
1.3 C语言的重要性 5
1.4 如何学好C语言 5
1.5 C语言常用开发工具简介 6
1.5.1 Turbo C 6
1.5.2 Visual C++ 6.0 7
1.5.3 C++ Builder(BCB) 7
1.5.4 Cygwin 7
1.5.5 Dev-C++ 7
1.5.6 Source Insight 7
1.6 了解Visual C++集成开发环境 8
1.6.1 开发环境布局 8
1.6.2 菜单栏 8
1.6.3 工具栏 14
1.6.4 工作区窗口 14
1.6.5 代码编辑窗口 14
1.6.6 输出窗口 15
1.7 如何在Turbo C 2.0下运行C源程序 15
1.8 了解GCC开发编译器 17
1.9 Dev-C++ 17
1.9.1 Dev-C++概述 17
1.9.2 Dev-C++的使用 17
1.10 Eclipse for C/C++ 19
1.10.1 Eclipse概述 19
1.10.2 Eclipse的使用 19
1.11 实战 20
1.11.1 判断三角形的类型 20
1.11.2 计算某日是该年的第几天 22
1.11.3 婚礼上的谎言 23
1.11.4 尼科彻斯定理 24
1.11.5 猴子吃桃 25
1.11.6 阳阳买苹果 26
1.12 疑难解惑 28
1.12.1 为什么说C语言可移植性好 28
1.12.2 C语言的应用领域有哪些 28
1.12.3 如何提高C语言的编程效率 28
1.13 小结 29
1.14 学习成果检验 29
第2章 C语言开发基础 31
视频讲解:68分钟
2.1 本章知识体系 32
2.2 编码规范要记牢 32
2.2.1 注释的合理使用 32
2.2.2 程序中的{}要对齐 33
2.2.3 合理使用空格使代码更规范 34
2.2.4 换行使代码更清晰 34
2.3 语言要素 35
2.3.1 关键字 35
2.3.2 标识符 35
2.4 常量 36
2.4.1 整型常量 36
2.4.2 实型常量 38
2.4.3 字符型常量 38
2.4.4 字符串常量 39
2.5 变量 40
2.5.1 什么是变量 40
2.5.2 变量的声明 41
2.6 数据类型 41
2.6.1 什么是数据类型 41
2.6.2 整型 41
2.6.3 实型 43
2.6.4 字符型 44
2.6.5 枚举类型 45
2.7 使用typedef定义类型 47
2.8 变量的存储类型 49
2.8.1 了解变量的存储类型 49
2.8.2 使用auto关键字声明自动变量 49
2.8.3 使用static关键字声明静态变量 50
2.8.4 使用register关键字声明寄存器变量 52
2.8.5 使用extern关键字声明外部变量 53
2.8.6 使用static关键字声明静态外部变量 56
2.9 混合运算 57
2.10 实战 58
2.10.1 十进制转换为二进制 58
2.10.2 求100~200之间的素数 60
2.10.3 利用\"#\"输出图形 61
2.10.4 打印杨辉三角 61
2.10.5 利用\"*\"输出矩形 63
2.10.6 小球下落问题 63
2.10.7 巧分苹果 64
2.11 疑难解惑 66
2.11.1 声明变量和定义变量 66
2.11.2 限定词const 66
2.11.3 字符串常量为什么用\"\\0\"作为结束符 67
2.12 小结 67
2.13 学习成果检验 67
第3章 运算符与表达式 69
视频讲解:34分钟
3.1 本章知识体系 70
3.2 运算符与表达式的使用 70
3.2.1 赋值运算符与表达式 70
3.2.2 加减乘除新认识 72
3.2.3 关系源自比较 73
3.2.4 逻辑出真假 74
3.2.5 逗号运算符与表达式 76
3.2.6 运算符的优先级 77
3.3 自增、自减操作符 78
3.3.1 认识自增、自减操作符 78
3.3.2 自增、自减操作符的副作用 79
3.4 位运算 79
3.4.1 \"或\"运算符 80
3.4.2 \"与\"运算符 81
3.4.3 \"取反\"运算符 82
3.4.4 \"异或\"运算符 83
3.4.5 \"左移\"运算符 84
3.4.6 \"右移\"运算符 85
3.5 实战 86
3.5.1 求1~10的累加和 86
3.5.2 计算学生的平均身高 86
3.5.3 求一元二次方程ax2+bx+c=0的根 87
3.5.4 阿姆斯特朗数 88
3.5.5 可逆素数 89
3.5.6 满足abcd=(ab+cd)2的数 90
3.5.7 最大公约数及最小公倍数 91
3.5.8 循环移位 92
3.6 疑难解惑 94
3.6.1 表达式\"a=b\"和\"a= =b\"一样吗 94
3.6.2 如何区分\",\"是运算符还是分隔符 94
3.6.3 C语言中有哪些简化的运算表达式 96
3.7 小结 96
3.8 学习成果检验 96
第4章 语句 99
视频讲解:100分钟
4.1 本章知识体系 100
4.2 语句的构成 100
4.2.1 表达式语句 101
4.2.2 函数调用语句 101
4.2.3 控制语句 103
4.2.4 复合语句 103
4.2.5 空语句 103
4.3 如何实现字符数据输入/输出 103
4.3.1 字符数据输出 103
4.3.2 字符数据输入 104
4.4 格式输入/输出 105
4.4.1 格式输出函数 105
4.4.2 格式输入函数 110
4.5 程序的控制结构 112
4.5.1 顺序结构 112
4.5.2 分支结构 113
4.5.3 循环结构 113
4.6 if语句 114
4.6.1 if语句的介绍 114
4.6.2 if语句的嵌套 118
4.7 条件运算符 119
4.8 switch语句 120
4.8.1 switch语句的基本形式 120
4.8.2 剖析switch和if语句 124
4.9 while与do-while语句 124
4.9.1 当型循环语句while 124
4.9.2 直到型循环语句do-while 127
4.9.3 while与do-while的异同 128
4.10 for语句 129
4.10.1 初识for语句 129
4.10.2 for语句的变体 131
4.10.3 for语句的嵌套 133
4.11 跳转语句 135
4.11.1 continue语句跳出本次循环 135
4.11.2 break语句跳出循环 136
4.11.3 用于返回数据的return语句 137
4.11.4 goto语句 138
4.12 实战 139
4.12.1 输出3*3矩阵 139
4.12.2 输出一个字符的前驱字符 140
4.12.3 根据输入判断能否构成三角形 141
4.12.4 求学生的最高分和最低分 142
4.12.5 整数加减法练习 142
4.12.6 一元钱兑换方案 144
4.13 疑难解惑 145
4.13.1 C语言提供的跳转语句各有什么特点 145
4.13.2 循环嵌套时应该注意什么 145
4.13.3 如何提高循环语句的执行效率 145
4.14 小结 146
4.15 学习成果检验 146
第5章 综合实验(一)--模拟ATM机
界面程序 147
视频讲解:3分钟
5.1 概述 148
5.2 需求分析 148
5.3 设计思路 148
5.4 详细设计 148
5.5 程序代码 153
第2篇 进 阶 提 高
第6章 数组 159
视频讲解:29分钟
6.1 本章知识体系 160
6.2 一维数组 160
6.2.1 如何定义和引用一维数组 160
6.2.2 一维数组初始化 161
6.2.3 一维数组应用 163
6.3 二维数组 164
6.3.1 如何定义和引用二维数组 164
6.3.2 二维数组初始化 164
6.3.3 二维数组应用 166
6.4 多维数组 167
6.5 字符数组 168
6.5.1 如何定义和使用字符数组 168
6.5.2 字符数组初始化 168
6.5.3 字符数组的结束标志 171
6.5.4 字符数组的输入和输出 172
6.5.5 字符数组应用 174
6.6 实战 175
6.6.1 相邻元素之和 175
6.6.2 选票系统 176
6.6.3 统计学生成绩 178
6.6.4 模拟比赛打分 179
6.6.5 矩阵的转置 180
6.6.6 设计魔方阵 181
6.6.7 统计各种字符个数 183
6.6.8 删除字符串中的连续字符 184
6.7 疑难解惑 185
6.7.1 数组下标必须从0开始吗 185
6.7.2 数组名作函数参数与数组元素作函数参数有什么不同之处 185
6.7.3 \'\\0\'和\"\\0\"有什么区别 186
6.8 小结 186
6.9 学习成果检验 186
第7章 函数 187
视频讲解:53分钟
7.1 本章知识体系 188
7.2 函数概述 188
7.3 函数的定义 190
7.3.1 无参函数 190
7.3.2 有参函数 191
7.3.3 空函数 191
7.4 返回语句 192
7.4.1 从函数返回 192
7.4.2 返回值 192
7.5 函数参数 193
7.5.1 形式参数与实际参数 193
7.5.2 数组作函数参数 195
7.5.3 main参数 199
7.6 函数的调用 201
7.6.1 函数调用方式 201
7.6.2 嵌套调用 202
7.6.3 递归调用 203
7.7 内部函数和外部函数 206
7.7.1 内部函数 206
7.7.2 外部函数 207
7.8 局部变量和全局变量 208
7.8.1 局部变量 208
7.8.2 全局变量 209
7.9 实战 212
7.9.1 百钱百鸡问题 212
7.9.2 求直角三角形斜边 213
7.9.3 小数分离 213
7.9.4 判断素数 214
7.9.5 递归解决分鱼问题 215
7.9.6 字母检索 216
7.9.7 求字符串中字符的个数 217
7.9.8 打渔晒网问题 218
7.10 疑难解惑 220
7.10.1 在调用时不使用函数的返回值会产生什么现象 220
7.10.2 C语言中函数的调用方式有哪几种 220
7.10.3 函数定义时容易犯哪些错误 221
7.11 小结 221
7.12 学习成果检验 222
第8章 指针 223
视频讲解:17分钟
8.1 本章知识体系 224
8.2 指针相关概念 224
8.2.1 地址与指针 224
8.2.2 指针变量 225
8.2.3 指针的赋值 225
8.2.4 指针的引用 226
8.3 指针运算 227
8.4 一维数组与指针 230
8.5 指针访问二维数组 234
8.6 字符和指针 237
8.6.1 使用字符指针 237
8.6.2 字符指针数组 239
8.7 指向指针的指针 240
8.8 函数型指针 242
8.9 实战 244
8.9.1 用指针实现数据交换 244
8.9.2 使用指针实现整数排序 245
8.9.3 查找成绩不及格的学生 246
8.9.4 使用指针实现冒泡排序 247
8.9.5 使用指针插入元素 248
8.9.6 实现输入月份号输出该月份的英文名 249
8.9.7 将若干字符串按字母顺序输出 251
8.10 疑难解惑 252
8.10.1 指针类型和指针所指向的类型是一样的吗 252
8.10.2 指针运算与取地址运算符有何联系 253
8.10.3 空指针有何意义 253
8.11 小结 254
8.12 学习成果检验 254
第9章 结构体和共用体 255
视频讲解:40分钟
9.1 本章知识体系 256
9.2 结构体 256
9.2.1 结构体类型的概念 256
9.2.2 结构体变量的定义 257
9.2.3 结构体类型的几点说明 259
9.2.4 结构体变量的引用 260
9.2.5 结构体变量的初始化 260
9.3 结构体数组 261
9.3.1 定义结构体数组 261
9.3.2 初始化结构体数组 262
9.4 结构体指针 264
9.4.1 指向结构体变量的指针 265
9.4.2 指向结构体数组的指针 265
9.4.3 结构体作函数参数 267
9.5 包含结构的结构 270
9.6 链表 271
9.6.1 什么是链表 271
9.6.2 创建动态链表 272
9.6.3 链表相关操作 274
9.7 共用体 280
9.7.1 什么是共用体 280
9.7.2 共用体变量的定义和引用 281
9.7.3 共用体类型的初始化 282
9.8 实战 283
9.8.1 找出最高分 283
9.8.2 候选人选票程序 284
9.8.3 求平面上两点距离 285
9.8.4 设计通讯录 286
9.8.5 输出火车票价格 288
9.8.6 链队列 289
9.8.7 约瑟夫环 293
9.8.8 计算开机时间 295
9.9 疑难解惑 296
9.9.1 定义结构体对结构体成员的类型是否有限制 296
9.9.2 成员运算符(.)和指向结构体成员运算符(->)有何区别 297
9.9.3 结构体和联合体有什么区别和联系 297
9.10 小结 297
9.11 学习成果检验 298
第10章 综合实验(二)--猜数字游戏 299
视频讲解:24分钟
10.1 概述 300
10.2 需求分析 300
10.3 系统设计 300
10.3.1 设计目标 300
10.3.2 开发及运行环境 300
10.4 程序预览 301
10.5 设计思路 302
10.6 文件引用 302
10.7 主要功能实现 303
10.7.1 主函数 303
10.7.2 猜数字 304
10.7.3 光标定位 306
第3篇 高 级 应 用
第11章 文件 311
视频讲解:29分钟
11.1 本章知识体系 312
11.2 文件概述 312
11.3 文件基本操作 313
11.3.1 文件的打开 313
11.3.2 文件的关闭 314
11.4 文件的读写 315
11.4.1 fputc函数 315
11.4.2 fgetc函数 316
11.4.3 fread函数和fwrite函数 317
11.5 文件的定位 319
11.5.1 rewind函数 319
11.5.2 ftell函数 321
11.5.3 fseek函数 321
11.6 出错检测 323
11.6.1 ferror函数 323
11.6.2 clearerr函数 325
11.7 实战 326
11.7.1 读取磁盘文件 326
11.7.2 将数据写入磁盘文件 327
11.7.3 创建文件 328
11.7.4 删除文件 330
11.7.5 重命名文件 331
11.7.6 文件加密 333
11.7.7 格式化读写文件 335
11.8 疑难解惑 337
11.8.1 标准文件和一般文件有什么区别 337
11.8.2 C语言的常用库文件包含哪些 338
11.8.3 为什么文件打开以后要及时
关闭 339
11.9 小结 339
11.10 学习成果检验 339
第12章 预处理 341
视频讲解:29分钟
12.1 本章知识体系 342
12.2 不带参数的宏定义 342
12.3 带参数的宏定义 344
12.4 #include命令 345
12.5 条件编译 348
12.5.1 #if命令 348
12.5.2 #ifdef及#ifndef命令 350
12.5.3 #undef命令 351
12.5.4 #line命令 352
12.5.5 #pragma命令 352
12.6 实战 353
12.6.1 利用宏计算两个数的乘积 353
12.6.2 利用宏求3个数中的最小数 354
12.6.3 使用带参数的宏求圆面积 354
12.6.4 利用文件包含设计输出格式 355
12.6.5 使用条件编译隐藏密码 356
12.7 疑难解惑 356
12.7.1 C语言中包括哪些预处理功能 356
12.7.2 使用宏时需要注意些什么 357
12.7.3 文件包含可以嵌套吗 357
12.8 小结 358
12.9 学习成果检验 358
第13章 存储管理 359
视频讲解:21分钟
13.1 本章知识体系 360
13.2 内存组织方式 360
13.2.1 内存组织方式 360
13.2.2 堆与栈 360
13.3 分配内存函数(malloc和calloc) 363
13.3.1 malloc函数 363
13.3.2 calloc函数 364
13.4 修改已分配内存(realloc函数) 365
13.5 释放内存--free函数 366
13.6 谁偷了我的内存 367
13.7 实战 367
13.7.1 为具有3个元素的数组分配内存 367
13.7.2 为二维数组动态分配内存并释放 368
13.7.3 商品信息的动态存放 369
13.8 疑难解惑 370
13.8.1 什么是\"内存泄露\" 370
13.8.2 内存耗尽了怎么办 370
13.8.3 常见的内存管理错误有哪些 370
13.9 小结 371
13.10 学习成果检验 371
第14章 综合实验(三)--商品信息管理系统 373
视频讲解:29分钟
14.1 概述 374
14.1.1 需求分析 374
14.1.2 功能结构图 374
14.2 预处理 374
14.2.1 文件引用 374
14.2.2 宏定义 375
14.3 声明结构体 375
14.4 函数声明 375
14.5 功能选择界面 376
14.5.1 功能概述 376
14.5.2 主函数 376
14.5.3 自定义菜单功能函数 377
14.6 录入商品信息 378
14.7 查询商品信息 381
14.8 删除商品信息 383
14.9 修改商品信息 385
14.10 插入商品信息 387
14.11 统计商品数 389
14.12 小结 390
第4篇 范 例 演 练
第15章 排序 393
视频讲解:36分钟
15.1 选择排序 394
15.1.1 范例功能演示 394
15.1.2 开发思路指引 394
15.1.3 专家难点解析 395
15.1.4 设计过程详解 396
15.1.5 范例开发手记 397
15.1.6 进阶与提高 397
15.2 冒泡排序 398
15.2.1 范例功能演示 398
15.2.2 开发思路指引 398
15.2.3 专家难点解析 399
15.2.4 设计过程详解 400
15.2.5 范例开发手记 401
15.2.6 进阶与提高 401
15.3 插入排序 402
15.3.1 范例功能演示 402
15.3.2 开发思路指引 402
15.3.3 专家难点解析 403
15.3.4 设计过程详解 404
15.3.5 范例开发手记 405
15.3.6 进阶与提高 405
15.4 希尔排序 406
15.4.1 范例功能演示 406
15.4.2 开发思路指引 406
15.4.3 专家难点解析 407
15.4.4 设计过程详解 408
15.4.5 范例开发手记 409
15.4.6 进阶与提高 409
15.5 快速排序 410
15.5.1 范例功能演示 411
15.5.2 开发思路指引 411
15.5.3 专家难点解析 412
15.5.4 设计过程详解 413
15.5.5 范例开发手记 414
15.5.6 进阶与提高 415
第16章 查找 417
16.1 顺序查找 418
16.1.1 范例功能演示 418
16.1.2 开发思路指引 418
16.1.3 专家难点解析 418
16.1.4 设计过程详解 419
16.1.5 范例开发手记 420
16.1.6 进阶与提高 420
16.2 折半查找 421
16.2.1 范例功能演示 422
16.2.2 开发思路指引 422
16.2.3 专家难点解析 422
16.2.4 设计过程详解 423
16.2.5 范例开发手记 424
16.2.6 进阶与提高 424
16.3 分块查找 426
16.3.1 范例功能演示 426
16.3.2 开发思路指引 426
16.3.3 专家难点解析 426
16.3.4 设计过程详解 428
16.3.5 范例开发手记 429
16.3.6 进阶与提高 429
16.4 哈希查找 431
16.4.1 范例功能演示 431
16.4.2 开发思路指引 431
16.4.3 专家难点解析 431
16.4.4 设计过程详解 433
16.4.5 范例开发手记 435
16.4.6 进阶与提高 436
第17章 数据压缩 441
17.1 RLE算法实现数据压缩 442
17.1.1 范例功能演示 442
17.1.2 开发思路指引 442
17.1.3 专家难点解析 442
17.1.4 设计过程详解 443
17.1.5 范例开发手记 445
17.1.6 进阶与提高 445
17.2 LZW算法实现数据压缩 447
17.2.1 范例功能演示 447
17.2.2 开发思路指引 447
17.2.3 专家难点解析 447
17.2.4 设计过程详解 448
17.2.5 范例开发手记 451
17.2.6 进阶与提高 451
第18章 图形编程 455
视频讲解:45分钟
18.1 绘制折线图 456
18.1.1 范例功能演示 456
18.1.2 开发思路指引 456
18.1.3 专家难点解析 456
18.1.4 设计过程详解 458
18.1.5 范例开发手记 460
18.1.6 进阶与提高 460
18.2 绘制饼状图 462
18.2.1 范例功能演示 462
18.2.2 开发思路指引 462
18.2.3 专家难点解析 462
18.2.4 设计过程详解 464
18.2.5 范例开发手记 465
18.2.6 进阶与提高 466
18.3 绘制条形图 467
18.3.1 范例功能演示 467
18.3.2 开发思路指引 467
18.3.3 专家难点解析 468
18.3.4 设计过程详解 469
18.3.5 范例开发手记 471
18.3.6 进阶与提高 471
18.4 绘制玫瑰花 473
18.4.1 范例功能演示 473
18.4.2 开发思路指引 473
18.4.3 专家难点解析 473
18.4.4 设计过程详解 474
18.4.5 范例开发手记 479
18.4.6 进阶与提高 479
18.5 菜单界面设计 481
18.5.1 范例功能演示 481
18.5.2 开发思路指引 481
18.5.3 专家难点解析 481
18.5.4 设计过程详解 482
18.5.5 范例开发手记 488
18.5.6 进阶与提高 489
第19章 文件的高级应用 491
视频讲解:55分钟
19.1 创建文件 492
19.1.1 范例功能演示 492
19.1.2 开发思路指引 492
19.1.3 专家难点解析 492
19.1.4 设计过程详解 493
19.1.5 范例开发手记 493
19.1.6 进阶与提高 494
19.2 文件的复制 494
19.2.1 范例功能演示 495
19.2.2 开发思路指引 495
19.2.3 专家难点解析 495
19.2.4 设计过程详解 495
19.2.5 范例开发手记 496
19.2.6 进阶与提高 497
19.3 删除文件 498
19.3.1 范例功能演示 498
19.3.2 开发思路指引 498
19.3.3 专家难点解析 498
19.3.4 设计过程详解 499
19.3.5 范例开发手记 500
19.3.6 进阶与提高 500
19.4 重命名文件 503
19.4.1 范例功能演示 503
19.4.2 开发思路指引 503
19.4.3 专家难点解析 503
19.4.4 设计过程详解 504
19.4.5 范例开发手记 504
19.4.6 进阶与提高 505
19.5 文件加密 506
19.5.1 范例功能演示 506
19.5.2 开发思路指引 506
19.5.3 专家难点解析 507
19.5.4 设计过程详解 507
19.5.5 范例开发手记 509
19.5.6 进阶与提高 509
第20章 综合实验(四)--五子棋游戏开发 511
视频讲解:28分钟
20.1 概述 512
20.2 需求分析 512
20.3 系统设计 512
20.3.1 设计目标 512
20.3.2 开发及运行环境 512
20.4 程序预览 512
20.5 graphics.h文件 513
20.6 设计思路 516
20.7 预处理 517
20.7.1 文件引用 517
20.7.2 宏定义 517
20.8 声明变量 517
20.9 函数声明 518
20.10 主要功能实现 518
20.10.1 主函数 518
20.10.2 开始游戏 520
20.10.3 绘制棋盘 520
20.10.4 绘制棋子 521
20.10.5 清除棋子 521
20.10.6 游戏过程 522
20.10.7 判断胜负结果 528
20.11 小结 530
第5篇 项 目 实 战
第21章 网络通信系统 533
视频讲解:37分钟
21.1 网络通信系统概述 534
21.1.1 开发背景 534
21.1.2 需求分析 534
21.1.3 功能结构图 534
21.2 技术攻关 535
21.2.1 TCP/IP协议 535
21.2.2 IP地址 536
21.2.3 数据包格式 537
21.2.4 建立连接 538
21.2.5 套接字库函数 539
21.3 网络通信系统主程序 543
21.4 点对点通信 546
21.5 服务器中转通信 554
21.6 程序调试与错误处理 561
21.7 小结 564
第22章 图书管理系统(MySQL) 567
视频讲解:32分钟
22.1 概述 568
22.1.1 需求分析 568
22.1.2 开发工具选择 568
22.2 系统设计 568
22.2.1 系统目标 568
22.2.2 系统功能结构 569
22.2.3 系统预览 569
22.2.4 开发及运行环境 570
22.3 数据库设计 570
22.3.1 安装MySQL数据库 570
22.3.2 启动MySQL数据库 574
22.3.3 创建数据库 574
22.3.4 数据表结构 575
22.4 C语言开发数据库程序的流程 576
22.5 C语言操作MySQL数据库 578
22.5.1 MySQL常用数据库操作函数 578
22.5.2 连接MySQL数据 579
22.5.3 查询图书表记录 580
22.5.4 插入图书表记录 583
22.5.5 修改图书表记录 584
22.5.6 删除图书表记录 585
22.6 文件引用 586
22.7 变量和函数定义 587
22.8 主要功能模块设计 587
22.8.1 显示主菜单信息 587
22.8.2 显示所有图书信息 589
22.8.3 添加图书信息 592
22.8.4 修改图书信息 599
22.8.5 删除图书信息 606
22.8.6 查询图书信息 611
22.9 程序调试及错误处理 613
22.9.1 解决创建数据表为一个文件的问题 613
22.9.2 在创建数据表时,最后一句结尾没有标点 614
22.10 小结 61