第1部分 基础篇 3
第1堂课 初识C语言 3
1.1 C语言发展史 4
1.1.1程序语言简述 4
1.1.2 C语言历史 4
1.2 C语言的特点 5
1.3一个简单C程序 5
1.4一个完整的C程序 7
1.5 C语言程序的格式 10
1.6开发环境 11
1.6.1 Turbo C 2.0 11
1.6.2 Visual C++6.0 14
1.7照猫画虎——基本功训练 19
1.7.1基本功训练1——使用TC创建C文件 19
1.7.2基本功训练2——使用Visual C++ 6.0创建.c文件 20
1.7.3基本功训练3——打开一个C文件 21
1.7.4基本功训练4——设置工具栏 21
1.8情景应用——拓展与实践 22
1.8.1情景应用1——求和程序 22
1.8.2情景应用2——求10! 23
1.8.3情景应用3——猴子吃桃 24
1.8.4情景应用4——阳阳买苹果 25
1.9自我测试 26
1.10行动指南 27
1.11成功可以复制——迅雷创始人邹胜龙 27
第2堂课 掌握C语言数据类型 29
2.1 C语言的编程规范 30
2.1.1注释的合理使用 30
2.1.2程序中的“{}”要对齐 30
2.1.3合理使用空格使代码更规范 31
2.1.4换行使代码更清晰 31
2.2关键字 32
2.3标识符 32
2.4数据类型 33
2.5常量 34
2.5.1整型常量 34
2.5.2实型常量 36
2.5.3字符型常量 36
2.5.4转义字符 39
2.5.5符号常量 40
2.6变量 41
2.6.1整型变量 41
2.6.2实型变量 43
2.6.3字符型变量 45
2.7照猫画虎——基本功训练 46
2.7.1基本功训练1——定义正确的数据类型求圆周长 46
2.7.2基本功训练2——数值型常量的使用 47
2.7.3基本功训练3——字符变量的使用 48
2.7.4基本功训练4——实型变量的使用 48
2.8情景应用——拓展与实践 49
2.8.1情景应用1——十进制转换为二进制 49
2.8.2情景应用2——利用“#”输出图形 51
2.8.3情景应用3——打印杨辉三角 51
2.8.4情景应用4——利用“*”输出矩形 52
2.9自我测试 53
2.10行动指南 54
2.11成功可以复制——盖茨第二马克·扎克伯格 55
第3堂课 表达式与运算符 57
3.1表达式 58
3.2赋值运算符与赋值表达式 59
3.2.1变量赋初值 60
3.2.2自动类型转换 61
3.2.3强制类型转换 61
3.3算术运算符与表达式 62
3.3.1算术运算符 62
3.3.2算术表达式 63
3.3.3优先级与结合性 64
3.3.4自增自减运算符 66
3.4关系运算符与表达式 68
3.4.1关系运算符 68
3.4.2关系表达式 68
3.4.3优先级与结合性 69
3.5逻辑运算符与表达式 70
3.5.1逻辑运算符 70
3.5.2逻辑表达式 71
3.5.3优先级与结合性 71
3.6位逻辑运算符与表达式 72
3.6.1位逻辑运算符 72
3.6.2位逻辑表达式 72
3.7逗号运算符与表达式 73
3.8复合赋值运算符 74
3.9照猫画虎——基本功训练 75
3.9.1基本功训练1——使用基本的算术运算符 75
3.9.2基本功训练2——赋值表达式类型的转换 76
3.9.3基本功训练3——复合赋值运算符的应用 77
3.9.4基本功训练4——逗号运算符的应用 77
3.9.5基本功训练5——关系表达式进行算术运算 78
3.10情景应用——拓展与实践 78
3.10.1情景应用1——求1~10的累加和 78
3.10.2情景应用2——计算学生平均身高 79
3.10.3情景应用3——求一元二次方程ax2+bx+c=0的根 79
3.10.4情景应用4——求字符串中字符的个数 80
3.10.5情景应用5——计算a+=a*=a/=a-6 81
3.11自我测试 82
3.12行动指南 83
3.13成功可以复制——善于抓住时机的人徐少春 84
第4堂课 数据输入/输出函数 87
4.1语句 88
4.2字符数据输入/输出 88
4.2.1字符数据输出 88
4.2.2字符数据输入 89
4.3字符串输入/输出 91
4.3.1字符串输出函数 91
4.3.2字符串输入函数 92
4.4格式输出函数 93
4.5格式输入函数 95
4.6顺序程序设计应用 99
4.7照猫画虎——基本功训练 100
4.7.1基本功训练1——使用字符函数输入/输出字符 100
4.7.2基本功训练2——使用字符输出函数输出“mrsoft” 101
4.7.3基本功训练3——输出相对的最小整数 102
4.7.4基本功训练4——输出乘法口诀表 102
4.7.5基本功训练5——输出两个数的最大公约数 103
4.8情景应用——拓展与实践 104
4.8.1情景应用1——将输入的小写字符转换为大写字符 104
4.8.2情景应用2——用“*”号输出图案 105
4.8.3情景应用3——输出3×3的矩阵 106
4.8.4情景应用4——输出一个字符的前驱字符 106
4.8.5情景应用5——根据输入判断能否组成三角形 107
4.9自我测试 108
4.10行动指南 110
4.11成功可以复制——暴雪公司的领航者迈克·莫汉 110
第5堂课 设计选择/分支结构程序 113
5.1 if语句 114
5.2 if语句的基本形式 114
5.2.1 if语句形式 114
5.2.2 if…else语句形式 117
5.2.3 else if语句形式 121
5.3 if的嵌套形式 124
5.4条件运算符 126
5.5 switch语句 127
5.5.1 switch语句的基本形式 127
5.5.2多路开关模式的switch语句 131
5.6 if else语句和switch语句的区别 132
5.7选择结构程序应用 134
5.8照猫画虎——基本功训练 136
5.8.1基本功训练1——单条件单分支选择语句 136
5.8.2基本功训练2——单条件双分支选择语句 136
5.8.3基本功训练3——条件运算符的使用 137
5.8.4基本功训练4——计算工人工资 138
5.8.5基本功训练5——判断闰年 139
5.9情景应用——拓展与实践 140
5.9.1情景应用1——从小到大输出3个数 140
5.9.2情景应用2——求学生的最低分和最高分 141
5.9.3情景应用3——模拟自动售货机 142
5.9.4情景应用4——模拟ATM机界面程序 143
5.9.5情景应用5——计算某日是该年的第几天 146
5.10自我测试 147
5.11行动指南 150
5.12成功可以复制——因特网的点火人马克·安德森 151
第6堂课 循环控制 153
6.1循环语句 154
6.2 while语句 154
6.3 do…while语句 157
6.4 for语句 158
6.4.1 for语句使用 158
6.4.2 for循环的变体 161
6.4.3 for语句中的逗号应用 163
6.5 3种循环语句的比较 164
6.6循环嵌套 164
6.6.1循环嵌套的结构 164
6.6.2循环嵌套实例 166
6.7转移语句 166
6.7.1 goto语句 167
6.7.2 break语句 168
6.7.3 continue语句 169
6.8照猫画虎——基本功训练 170
6.8.1基本功训练1——求某个数的阶乘 170
6.8.2基本功训练2——一元钱的兑换方案 171
6.8.3基本功训练3——特殊等式 172
6.8.4基本功训练4——计算1 2+2 2+…+10 2 173
6.8.5基本功训练5——输出10~100之间的素数 173
6.9情景应用——拓展与实践 175
6.9.1情景应用1——爱因斯坦阶梯问题 175
6.9.2情景应用2——斐波那契数列 176
6.9.3情景应用3——银行存款问题 177
6.9.4情景应用4——计算学生的最高分 177
6.9.5情景应用5——统计不及格的人数 178
6.10自我测试 179
6.11行动指南 182
6.12成功可以复制——微型博客Twitter创始人埃文·威廉姆斯 183
第7堂课 数组的应用 185
7.1一维数组 186
7.1.1一维数组的定义和引用 186
7.1.2一维数组初始化 187
7.1.3一维数组应用 189
7.2二维数组 190
7.2.1二维数组的定义和引用 190
7.2.2二维数组初始化 191
7.2.3二维数组应用 192
7.3多维数组 193
7.4数组的排序算法 194
7.4.1选择法排序 194
7.4.2冒泡法排序 196
7.4.3交换法排序 197
7.4.4插入法排序 199
7.4.5折半法排序 201
7.4.6排序算法的比较 204
7.5照猫画虎——基本功训练 205
7.5.1基本功训练1——逆序存放数据 205
7.5.2基本功训练2——查找数组中的最值 206
7.5.3基本功训练3——判断一个数是否存在数组中 207
7.5.4基本功训练4——相邻元素之和 208
7.5.5基本功训练5——求二维数组对角线之和 208
7.6情景应用——拓展与实践 209
7.6.1情景应用1——选票统计 209
7.6.2情景应用2——模拟比赛打分 211
7.6.3情景应用3——统计学生成绩 212
7.6.4情景应用4——矩阵的转置 213
7.6.5情景应用5——设计魔方阵 215
7.7自我测试 216
7.8行动指南 218
7.9成功可以复制——射击游戏之父John Carmack 218
第8堂课 字符数组 221
8.1字符数组的应用 222
8.1.1字符数组定义和引用 222
8.1.2字符数组初始化 222
8.1.3字符数组的结束标志 224
8.1.4字符数组的输入/输出 224
8.1.5字符数组应用 226
8.2字符串处理函数 227
8.2.1字符串复制 227
8.2.2字符串连接 228
8.2.3字符串比较 229
8.2.4 字符串大小写转换 230
8.2.5获得字符串长度 232
8.3照猫画虎——基本功训练 233
8.3.1基本功训练1——不使用strcpy函数实现字符串复制功能 233
8.3.2基本功训练2——用字符数组存储学生姓名并输出 234
8.3.3基本功训练3——字符升序排列 234
8.3.4基本功训练4——在指定位置插入字符 236
8.3.5基本功训练5——删除字符串中的连续字符 237
8.4情景应用——拓展与实践 238
8.4.1情景应用1——统计各种字符个数 238
8.4.2情景应用2——字符串倒置 239
8.4.3情景应用3——字符串替换 240
8.4.4情景应用4——回文字符串 241
8.4.5情景应用5——字符串加密和解密 242
8.5自我测试 244
8.6行动指南 245
8.7成功可以复制——图文世界的缔造者约翰·沃洛克 246
第2部分 提高篇 251
第9堂课 函数的应用 251
9.1函数概述 252
9.2函数的定义 253
9.2.1函数定义的形式 254
9.2.2定义与声明 255
9.3返回语句 257
9.3.1从函数返回 257
9.3.2返回值 258
9.4函数参数 259
9.4.1形式参数与实际参数 260
9.4.2数组作函数参数 261
9.4.3 main的参数 266
9.5函数的调用 267
9.5.1函数调用方式 267
9.5.2嵌套调用 269
9.5.3递归调用 271
9.6内部函数和外部函数 273
9.6.1内部函数 274
9.6.2外部函数 275
9.7局部变量和全局变量 276
9.7.1局部变量 276
9.7.2全局变量 278
9.8函数应用 280
9.9照猫画虎——基本功训练 285
9.9.1基本功训练1——设计函数输出两个数中的最大值 285
9.9.2基本功训练2——设计函数计算学生的平均成绩 286
9.9.3基本功训练3——判断素数 287
9.9.4基本功训练4——求数组元素中的最小值 287
9.9.5基本功训练5——打印1到5的阶乘 288
9.10情景应用——拓展与实践 289
9.10.1情景应用1——递归解决年龄问题 289
9.10.2情景应用2——百钱百鸡问题 290
9.10.3情景应用3——求最大公约数和最小公倍数 292
9.10.4情景应用4——求直角三角形斜边 293
9.10.5情景应用5——小数分离 294
9.11自我测试 294
9.12行动指南 296
9.13成功可以复制——征途巨人史玉柱 297
第10堂课 变量的存储类别 299
10.1了解变量的存储类型 300
10.2使用auto关键字声明自动变量 300
10.3使用static关键字声明静态变量 301
10.4使用register关键字声明寄存器变量 303
10.5使用extern关键字声明外部变量 304
10.5.1声明在一个文件中使用的外部变量 304
10.5.2声明在多个文件中使用的外部变量 305
10.6 使用static关键字声明静态外部变量 306
10.7照猫画虎——基本功训练 307
10.7.1基本功训练1——声明自动变量 307
10.7.2基本功训练2——比较两个数的大小 308
10.7.3基本功训练3——求两个数的和 309
10.7.4基本功训练4——计算用户输入整数的乘积 309
10.7.5基本功训练5——使用register定义局部变量 310
10.8情景应用——拓展与实践 311
10.8.1情景应用1——婚礼上的谎言 311
10.8.2情景应用2——求新同学的年龄 312
10.8.3情景应用3——捕鱼和分鱼 313
10.8.4情景应用4——求邮票总数 314
10.8.5情景应用5——巧分苹果 315
10.9自我测试 316
10.10行动指南 318
10.11成功可以复制——缔造华人的硅谷传奇杨致远 319
第11堂课C语言中的指针 321
11.1指针相关概念 322
11.1.1地址与指针 322
11.1.2变量与指针 323
11.1.3指针变量 323
11.1.4指针自加自减运算 326
11.2数组与指针 327
11.2.1一维数组与指针 328
11.2.2二维数组与指针 331
11.2.3字符串与指针 333
11.2.4字符串数组 334
11.3指向指针的指针 336
11.4指针变量作函数参数 338
11.5返回指针值的函数 343
11.6指针数组作main函数的参数 345
11.7照猫画虎——基本功训练 346
11.7.1基本功训练1——利用指针查找数列中最大值和最小值 346
11.7.2基本功训练2——利用指针实现字符串复制 347
11.7.3基本功训练3——实现数组元素值逆序存放 348
11.7.4基本功训练4——使用指针连接两个字符串 349
11.7.5基本功训练5——利用指针输出数组元素 350
11.8情景应用——拓展与实践 351
11.8.1情景应用1——查找成绩不及格的学生 351
11.8.2情景应用2——使用指针实现冒泡排序 352
11.8.3情景应用3——输入月份号输出英文月份名 353
11.8.4情景应用4——使用指针插入元素 354
11.8.5情景应用5——使用指针交换两个数组中的最大值 355
11.9自我测试 357
11.10行动指南 359
11.11成功可以复制——杀毒王王江民 360
第12堂课 结构体的使用 363
12.1结构体 364
12.1.1结构体类型的概念 364
12.1.2结构体变量的定义 365
12.1.3结构体变量的引用 366
12.1.4结构体类型的初始化 368
12.2结构体数组 370
12.2.1定义结构体数组 370
12.2.2初始化结构体数组 371
12.3结构体指针 373
12.3.1指向结构体变量的指针 373
12.3.2指向结构体数组的指针 376
12.3.3结构体作函数参数 377
12.4包含结构的结构 380
12.5照猫画虎——基本功训练 381
12.5.1基本功训练1——结构体变量的初始化 381
12.5.2基本功训练2——使用结构体存放学生信息 382
12.5.3基本功训练3——整数排序 383
12.5.4基本功训练4——指向数组元素的结构指针运算 384
12.5.5基本功训练5——计算学生的平均成绩 385
12.6情景应用——拓展与实践 386
12.6.1情景应用1——找出最高分 386
12.6.2情景应用2——候选人选票程序 387
12.6.3情景应用3——求平面上两点的距离 388
12.6.4情景应用4——设计通讯录 389
12.6.5情景应用5——输出火车票价 390
12.7自我测试 392
12.8行动指南 394
12.9成功可以复制——中国第一程序员求伯君 395
第13堂课 共用体的综合应用 397
13.1共用体 398
13.1.1共用体的概念 398
13.1.2共用体变量的引用 398
13.1.3共用体变量的初始化 399
13.1.4共用体类型的数据特点 400
13.2枚举类型 400
13.3照猫画虎——基本功训练 401
13.3.1基本功训练1——共用体变量的应用 401
13.3.2基本功训练2——共用体处理任意类型数据 402
13.3.3基本功训练3——取出整型数据的高字节数据 403
13.4情景应用——拓展与实践 404
13.4.1情景应用1——使用共用体存放学生和老师信息 404
13.4.2情景应用2——输出今天星期几 405
13.4.3情景应用3——制作花束 406
13.5自我测试 408
13.6行动指南 409
13.7成功可以复制——80后新贵、泡泡网CEO李想 409
第14堂课 使用预处理命令 411
14.1宏定义 412
14.1.1不带参数的宏定义 412
14.1.2带参数的宏定义 413
14.2 #include指令 414
14.3条件编译 416
14.3.1 #if命令 416
14.3.2 #ifdef及#ifndef命令 418
14.3.3 #undef命令 419
14.3.4 #line命令 419
14.3.5 #pragma命令 420
14.4照猫画虎——基本功训练 420
14.4.1基本功训练1——不带参数的宏定义求平行四边形面积 420
14.4.2基本功训练2——定义带参数的宏实现求两个整数的乘积 421
14.4.3基本功训练3——编写头文件包含圆面积的计算公式 422
14.4.4基本功训练4——使用条件编译将字符转换为大写 423
14.4.5基本功训练5——使用宏定义实现数组值的互换 424
14.5情景应用——拓展与实践 425
14.5.1情景应用1——使用带参数的宏求圆面积 425
14.5.2情景应用2——利用宏定义求偶数和 426
14.5.3情景应用3——从3个数中找出最小数 427
14.5.4情景应用4——利用文件包含设计输出模式 428
14.5.5情景应用5——使用条件编译隐藏密码 428
14.6自我测试 429
14.7行动指南 431
14.8成功可以复制——使计算机成为生活的必需品比尔·盖茨 432
第3部分 高级篇 435
第15堂课 存储管理 435
15.1内存组织方式 436
15.1.1内存组织方式 436
15.1.2堆管理 436
15.2动态管理 437
15.2.1 malloc函数 437
15.2.2 calloc函数 438
15.2.3 realloc函数 439
15.2.4 free函数 439
15.3内存丢失 440
15.4照猫画虎——基本功训练 441
15.4.1基本功训练1——sizeof关键字的应用 441
15.4.2基本功训练2——为具有3个数组元素的数组分配内存 442
15.4.3基本功训练3——为二维数组动态分配内存 442
15.5情景应用——拓展与实践 444
15.5.1情景应用1——使用malloc()函数分配内存 444
15.5.2情景应用2——调用calloc()函数动态分配内存 444
15.5.3情景应用3——商品信息的动态存放 445
15.6自我测试 446
15.7行动指南 447
15.8成功可以复制——知识改变命运、科技改变生活李彦宏 448
第16堂课 链表在C语言中的应用 451
16.1链表 452
16.1.1链表概述 452
16.1.2静态链表 453
16.1.3处理动态链表所需的函数 454
16.2链表相关操作 454
16.2.1创建动态链表 454
16.2.2输出链表 456
16.2.3链表的插入操作 458
16.2.4链表的删除操作 459
16.3链表的表现形式 463
16.3.1单向链表 463
16.3.2循环链表 464
16.3.3双向链表 464
16.4照猫画虎——基本功训练 465
16.4.1基本功训练1——创建单向链表 465
16.4.2基本功训练2——向单向链表中插入元素 467
16.4.3基本功训练3——删除结点元素 469
16.4.4基本功训练4——创建双向链表 471
16.4.5基本功训练5——创建循环链表 474
16.5情景应用——拓展与实践 475
16.5.1情景应用1——单向链表逆置 475
16.5.2情景应用2——双向链表逆序输出 477
16.5.3情景应用3——连接两个链表 479
16.5.4情景应用4——使用链表实现约瑟夫环 480
16.5.5情景应用5——查找两个链表中的相同元素 482
16.6自我测试 484
16.7行动指南 486
16.8成功可以复制——中国通信设备行业的领跑者任正非 486
第17堂课 栈和队列 489
17.1栈的定义和几种基本操作 490
17.1.1栈的定义 490
17.1.2栈常见的几种基本操作 491
17.2栈的存储和实现 492
17.2.1顺序栈 492
17.2.2链栈 494
17.3队列的定义和基本操作 497
17.3.1队列的定义 497
17.3.2队列常见的几种基本操作 497
17.4队列的存储及运算 497
17.4.1顺序队列 497
17.4.2链队列 500
17.4.3循环队列 501
17.5照猫画虎——基本功训练 501
17.5.1基本功训练1——应用栈实现进制转换 501
17.5.2基本功训练2——括号匹配检测 504
17.5.3基本功训练3——利用栈实现递归计算多项式 507
17.5.4基本功训练4——循环队列的基本操作 508
17.6情景应用——拓展与实践 511
17.6.1情景应用1——汉诺塔问题 511
17.6.2情景应用2——机票预售系统 513
17.6.3情景应用3——链队列的使用 515
17.7自我测试 519
17.8行动指南 520
17.9成功可以复制——软件业的华人教父王嘉廉 521
第18堂课 C语言中的位运算 523
18.1位与字节 524
18.2位运算操作符 524
18.2.1与运算符 524
18.2.2或运算符 525
18.2.3取反运算符 527
18.2.4异或运算符 528
18.2.5左移运算符 529
18.2.6右移运算符 530
18.3循环移位 532
18.4位段 533
18.4.1位段的概念与定义 533
18.4.2位段相关说明 534
18.5照猫画虎——基本功训练 535
18.5.1基本功训练1——输入两个整数实现按位与和按位或 535
18.5.2基本功训练2——使二进制数特定位翻转 536
18.5.3基本功训练3——整数与0异或 537
18.5.4基本功训练4——将输入的数左移两位并输出 538
18.5.5基本功训练5——编程实现循环右移 538
18.6情景应用——拓展与实践 539
18.6.1情景应用1——交换两个值不用临时变量 539
18.6.2情景应用2——取一个整数的后4位 540
18.6.3情景应用3——编写循环移位函数 541
18.6.4情景应用4——取出给定16位二进制数的奇数位 541
18.6.5情景应用5——求一个数的补码 542
18.7自我测试 543
18.8行动指南 544
18.9成功可以复制——创造互联网搜索时代谢尔盖·布林 545
第19堂课 文件操作技术 547
19.1文件概述 548
19.2文件基本操作 548
19.2.1文件指针 548
19.2.2文件的打开 549
19.2.3文件的关闭 549
19.3文件的读写 550
19.3.1 fputc函数 550
19.3.2 fgetc函数 551
19.3.3 fputs函数 551
19.3.4 fgets函数 552
19.3.5 fprintf函数 553
19.3.6 fscanf函数 554
19.3.7 fread函数和fwrite函数 555
19.4文件的定位 557
19.4.1 fseek函数 557
19.4.2 rewind函数 558
19.4.3 ftell函数 559
19.5照猫画虎——基本功训练 561
19.5.1基本功训练1——关闭打开的所有文件 561
19.5.2基本功训练2——读取指定文件的内容 563
19.5.3基本功训练3——同时显示两个文件的内容 564
19.5.4基本功训练4——随机读写文件 565
19.5.5基本功训练5——文件的错误处理 567
19.6情景应用——拓展与实践 569
19.6.1情景应用1——创建文件 569
19.6.2情景应用2——文件的复制 570
19.6.3情景应用3——删除文件 572
19.6.4情景应用4——重命名文件 573
19.6.5情景应用5——文件加密 575
19.7自我测试 577
19.8行动指南 579
19.9成功可以复制——IT风云人物鲍岳桥 579
第20堂课 图形图像处理 581
20.1字符屏幕 582
20.1.1定义文本窗口 582
20.1.2颜色设置 582
20.1.3文本的输入和输出 583
20.1.4屏幕操作函数 584
20.2图形显示 586
20.2.1图形模式初始化 586
20.2.2屏幕颜色设置 588
20.2.3基本图形函数 590
20.2.4封闭图形的填充 597
20.3图形屏幕 599
20.4图形模式下文本输出 600
20.4.1文本输出函数 600
20.4.2文本属性设置 601
20.5照猫画虎——基本功训练 603
20.5.1基本功训练1——闪烁的文字 603
20.5.2基本功训练2——实现背景颜色切换 604
20.5.3基本功训练3——绘制圆形 605
20.5.4基本功训练4——在屏幕中绘制两个相同的小球 605
20.5.5基本功训练5——绘制五角星 607
20.6情景应用——拓展与实践 609
20.6.1情景应用1——绘制折线图 609
20.6.2情景应用2——输出饼状图 611
20.6.3情景应用3——画条形图 612
20.6.4情景应用4——画玫瑰花 615
20.6.5情景应用5——菜单界面设计 619
20.7自我测试 625
20.8行动指南 627
20.9成功可以复制——IT大王王志东 627
第4部分 实战篇 631
第21堂课 猜数字游戏 631
21.1概述 632
21.2需求分析 632
21.3系统设计 632
21.3.1设计目标 632
21.3.2开发及运行环境 632
21.4程序预览 632
21.5设计思路 634
21.6文件引用 634
21.7主要功能实现 634
21.7.1主函数 634
21.7.2猜数字 635
21.7.3光标定位 637
第22堂课 五子棋游戏 639
22.1概述 640
22.2需求分析 640
22.3系统设计 640
22.3.1设计目标 640
22.3.2开发及运行环境 640
22.4程序预览 640
22.5 graphics.h文件 641
22.6设计思路 644
22.7预处理 644
22.7.1文件引用 644
22.7.2宏定义 645
22.8声明变量 645
22.9函数声明 645
22.10主要功能实现 645
22.10.1主函数 645
22.10.2开始游戏 647
22.10.3绘制棋盘 647
22.10.4绘制棋子 648
22.10.5清除棋子 648
22.10.6游戏过程 648
22.10.7判断胜负 653
第23堂课 学生成绩管理系统 657
23.1需求分析 658
23.2系统设计 658
23.3功能设计 658
23.3.1功能选择界面 659
23.3.2录入学生成绩信息 660
23.3.3查询学生成绩信息 662
23.3.4删除学生成绩信息 663
23.3.5修改学生成绩信息 664
23.3.6插入学生成绩信息 666
23.3.7统计学生人数 668
第24堂课 图书管理系统(MySQL) 669
24.1概述 670
24.1.1需求分析 670
24.1.2开发工具选择 670
24.2系统设计 670
24.2.1系统目标 670
24.2.2系统功能结构 670
24.2.3系统预览 670
24.2.4开发及运行环境 672
24.3数据库设计 673
24.3.1安装MySQL数据库 673
24.3.2启动MySQL数据库 676
24.3.3创建数据库 677
24.3.4数据表结构 678
24.4 C语言开发数据库程序的流程 678
24.5 C语言操作MySQL数据库 680
24.5.1 MySQL常用数据库操作函数 680
24.5.2连接MySQL数据 682
24.5.3查询图书表记录 683
24.5.4插入图书表记录 685
24.5.5修改图书表记录 686
24.5.6删除图书表记录 687
24.6文件引用 687
24.7变量和函数定义 688
24.8主要功能模块设计 688
24.8.1显示主菜单信息 688
24.8.2显示所有图书信息 690
24.8.3添加图书信息 692
24.8.4修改图书信息 698
24.8.5删除图书信息 704
24.8.6查询图书信息 710
24.9程序调试及错误处理 712
24.9.1解决创建数据表为一个文件的问题 712
24.9.2在创建数据表时,最后一句结尾没有标点 713
24.9.3无法启动MySQL服务 714