第1章 C语言概述 1
1.1 程序语言的发展 1
1.2 C语言发展史 2
1.3 C语言的特点 2
1.4 C语言程序的格式 3
1.5 C语言程序的运行 4
1.5.1 编译程序和解释程序 4
1.5.2 C源文件在Turbo C 2.0中运行 4
1.5.3 C源文件在Visual C++ 6.0中运行 6
1.5.4 C源文件在Visual Studio 2008中运行 10
第2章 Turbo C 2.0集成开发环境 14
2.1 Turbo C 2.0简介 14
2.2 TC热键 14
2.3 菜单命令 16
2.3.1 File(文件)菜单 16
2.3.2 Edit(编辑)菜单 17
2.3.3 Run(运行)菜单 20
2.3.4 Compile(编译)菜单 21
2.3.5 Project(项目)菜单 22
2.3.6 Options(选择项)菜单 23
2.3.7 Debug(调试)菜单 29
2.3.8 Break/watch(断点及监视表达式)菜单 31
2.4 编译错误信息 32
第3章 算法、数据类型 41
3.1 程序的组成部分 41
3.2 算法 42
3.2.1 算法的概念 42
3.2.2 流程图 42
3.2.3 3种基本结构 44
3.2.4 N-S流程图 46
3.3 标识符与数据类型 46
3.3.1 标识符 46
3.3.2 数据类型 47
3.4 常量 47
3.4.1 整型常量 48
3.4.2 实型常量 49
3.4.3 字符型常量 49
3.4.4 字符串常量 50
3.5 变量 55
3.5.1 整型变量 55
3.5.2 实型变量 56
3.5.3 字符型变量 57
3.6 赋值与类型转换 58
3.6.1 变量赋初值 58
3.6.2 类型转换 58
3.7 运算符及表达式 60
3.7.1 赋值运算符和赋值表达式 60
3.7.2 算术运算符和算术表达式 62
3.7.3 关系运算符和关系表达式 64
3.7.4 逻辑运算符和逻辑表达式 65
3.7.5 逗号运算符和逗号表达式 66
3.7.6 运算符 67
第4章 顺序与选择结构程序设计 69
4.1 C语句及赋值语句 69
4.1.1 C语句概述 69
4.1.2 赋值语句 71
4.2 字符数据输入/输出 72
4.2.1 字符数据输出 72
4.2.2 字符数据输入 73
4.3 格式输入/输出函数 73
4.3.1 格式输出函数 73
4.3.2 格式输入函数 78
4.4 顺序程序设计举例 80
4.5 if语句 81
4.5.1 if语句的基本形式 81
4.5.2 if语句的嵌套形式 85
4.5.3 条件运算符 85
4.6 switch语句 87
4.7 选择结构程序举例 90
第5章 循环控制 93
5.1 while及do-while语句 93
5.1.1 while语句 93
5.1.2 do-while语句 96
5.2 for语句 97
5.2.1 for循环的变体 98
5.2.2 循环嵌套 101
5.3 转移语句 102
5.3.1 goto语句 102
5.3.2 break语句 103
5.3.3 continue语句 104
5.4 循环控制应用举例 105
第6章 数组 109
6.1 一维数组 109
6.1.1 一维数组的定义和引用 109
6.1.2 一维数组的初始化 110
6.2 二维数组 111
6.2.1 二维数组的定义和引用 111
6.2.2 二维数组的初始化 112
6.3 字符数组 114
6.3.1 字符数组的定义和引用 114
6.3.2 字符数组的初始化 114
6.3.3 字符数组的输入/输出 116
6.3.4 字符串处理函数 118
6.4 多维数组 124
6.5 数组应用举例 125
第7章 函数 132
7.1 函数概述 132
7.2 函数定义的一般形式 134
7.3 返回语句 135
7.3.1 从函数返回 135
7.3.2 返回值 136
7.4 函数参数 136
7.4.1 形式参数和实际参数 137
7.4.2 数组作函数参数 138
7.5 函数的调用 142
7.5.1 函数声明 143
7.5.2 嵌套调用 146
7.5.3 递归调用 147
7.6 局部变量和全局变量 150
7.6.1 局部变量 150
7.6.2 全局变量 152
7.7 变量的存储类型 153
7.7.1 动态存储与静态存储 154
7.7.2 auto变量 154
7.7.3 static变量 156
7.7.4 register变量 158
7.7.5 extern变量 159
7.8 内部函数和外部函数 160
7.9 库函数 161
7.9.1 数学函数 162
7.9.2 字符函数和字符串函数 163
7.10 函数应用举例 164
第8章 指针 167
8.1 指针相关概念 167
8.1.1 地址与指针 167
8.1.2 指针变量 168
8.1.3 “&”和“*”运算符 170
8.1.4 指针的算术运算 172
8.2 一维数组与指针 173
8.2.1 指向数组元素的指针 173
8.2.2 使用指针访问数组 174
8.3 二维数组与指针 177
8.4 字符与指针 179
8.4.1 字符指针 179
8.4.2 字符串数组 180
8.5 指针作函数参数 181
8.5.1 指针变量作函数参数 182
8.5.2 数组指针作函数参数 185
8.6 指向指针的指针 189
8.7 函数型指针 191
8.8 main函数的参数 193
8.9 指针应用举例 194
第9章 结构体和共用体 198
9.1 结构体 198
9.1.1 结构体的概念 198
9.1.2 结构体变量的定义和引用 199
9.1.3 结构体变量的初始化 200
9.2 结构体数组 202
9.2.1 定义结构体数组 202
9.2.2 初始化结构体数组 203
9.3 结构体指针 206
9.3.1 结构体指针变量的声明 206
9.3.2 结构体指针应用 206
9.3.3 结构体数组指针 207
9.3.4 结构体变量作函数参数 208
9.3.5 结构体指针变量作函数参数 209
9.4 链表 210
9.4.1 链表概述 210
9.4.2 单链表的建立 211
9.4.3 链表相关操作 213
9.4.4 链表应用举例 222
9.5 共用体 226
9.5.1 共用体的概念 226
9.5.2 共用体变量的定义和引用 227
9.6 枚举类型 228
9.7 用typedef定义类型 230
第10章 位运算 233
10.1 位运算操作符 233
10.1.1 “按位或”运算符 233
10.1.2 “按位与”运算符 234
10.1.3 “取反”运算符 235
10.1.4 “按位异或”运算符 236
10.1.5 “左移”运算符 237
10.1.6 “右移”运算符 238
10.2 位段 239
10.3 位运算应用 241
第11章 预处理 244
11.1 宏定义 244
11.1.1 不带参数的宏定义 244
11.1.2 带参数的宏定义 246
11.2 “文件包含”处理 247
11.3 条件编译 250
11.3.1 #if等命令 250
11.3.2 #ifdef及#ifndef命令 252
11.3.3 #undef等命令 253
第12章 文件 255
12.1 文件概述 255
12.2 文件基本操作 255
12.2.1 文件的打开 256
12.2.2 关闭文件函数fclose 257
12.3 文件的读写 257
12.3.1 字符形式读写文件 257
12.3.2 字符串形式读写文件 259
12.3.3 成块读写文件 260
12.3.4 格式化读写函数 262
12.3.5 随机读写文件 263
12.4 错误检测 267
12.5 文件操作举例 268
第13章 图形图像 274
13.1 字符屏幕 274
13.1.1 定义文本窗口 274
13.1.2 颜色设置 275
13.1.3 文本的输入和输出 276
13.1.4 屏幕操作函数 277
13.2 图形显示 279
13.2.1 图形模式初始化 279
13.2.2 屏幕颜色设置 282
13.2.3 基本图形函数 284
13.2.4 封闭图形的填充 293
13.3 图形屏幕 296
13.4 图形模式下的文本输出 298
13.4.1 文本输出函数 299
13.4.2 文本属性设置 300
13.5 图形应用举例 302
第14章 图书管理系统开发实例 305
14.1 需求分析 305
14.2 系统设计 305
14.3 各模块功能实现 306
14.3.1 头文件及宏定义 306
14.3.2 结构体及全局变量定义 307
14.3.3 功能选择界面及退出系统设计 308
14.3.4 添加图书信息 311
14.3.5 删除图书信息 315
14.3.6 查询图书信息 318
14.3.7 修改图书信息 320
14.3.8 添加会员 321
14.3.9 借书 325
14.3.10 还书 329
14.3.11 主函数 330
第15章 趣味俄罗斯方块 333
15.1 开发背景 333
15.2 系统功能设计 333
15.2.1 系统功能结构 333
15.2.2 业务流程图 334
15.3 使用Dev-C++创建项目 334
15.3.1 开发环境需求 334
15.3.2 创建项目 335
15.4 预处理模块设计 338
15.4.1 文件引用 338
15.4.2 宏定义 339
15.4.3 定义全局变量 339
15.4.4 函数声明 340
15.5 游戏欢迎界面设计 340
15.5.1 游戏欢迎界面概述 341
15.5.2 设置文字颜色 341
15.5.3 设置文字显示位置 343
15.5.4 设计标题部分 343
15.5.5 设计字符画装饰界面 345
15.5.6 设计菜单选项的边框 348
15.5.7 设计菜单选项的文字 349
15.6 游戏主窗体设计 350
15.6.1 游戏主窗体设计概述 350
15.6.2 打印输出游戏界面 351
15.6.3 绘制俄罗斯方块 354
15.6.4 打印俄罗斯方块 362
15.7 游戏逻辑设计 363
15.7.1 游戏逻辑概述 363
15.7.2 判断俄罗斯方块是否可移动 363
15.7.3 清除俄罗斯方块下落的痕迹 366
15.7.4 判断方块是否满行 367
15.7.5 随机产生俄罗斯方块类型的序号 369
15.8 开始游戏 370
15.8.1 开始游戏模块概述 370
15.8.2 显示俄罗斯方块 371
15.8.3 实现各种按键操作 372
15.8.4 游戏结束界面 377
15.8.5 重新开始游戏 379
15.9 游戏按键说明模块 380
15.9.1 游戏按键说明 380
15.9.2 按键说明界面的实现 381
15.10 游戏规则介绍模块 382
15.10.1 游戏规则介绍 382
15.10.2 游戏规则界面的实现 383
15.11 退出游戏 385
15.12 本章总结 385
第16章 贪吃蛇大作战 387
16.1 开发背景 387
16.2 系统功能设计 387
16.2.1 系统功能结构 387
16.2.2 业务流程图 388
16.3 使用Microsoft Visual C++ 6.0创建项目 388
16.3.1 开发环境需求 388
16.3.2 创建项目步骤 389
16.3.3 Visual C++ 6.0主界面介绍 392
16.4 预处理模块设计 392
16.4.1 文件引用 392
16.4.2 宏定义 393
16.4.3 定义全局变量 393
16.4.4 函数声明 395
16.5 游戏欢迎界面设计 396
16.5.1 游戏欢迎界面概述 396
16.5.2 绘制字符蛇 397
16.5.3 绘制菜单选项 400
16.6 游戏主窗体设计 402
16.6.1 游戏主窗体设计概述 403
16.6.2 创建游戏地图 403
16.6.3 绘制右侧得分和小提示 405
16.6.4 读取游戏最高分 406
16.6.5 绘制蛇身 407
16.6.6 创建并随机出现食物 408
16.7 游戏逻辑设计 410
16.7.1 游戏逻辑概述 410
16.7.2 判断蛇是否咬到自己 411
16.7.3 判断蛇是否撞到墙 411
16.7.4 设置蛇加速前进 412
16.7.5 设置蛇减速前进 412
16.7.6 设置不按键时蛇的前进方向 413
16.7.7 通过方向键控制蛇的前进方向 417
16.8 游戏失败界面设计 421
16.8.1 游戏失败界面概述 421
16.8.2 绘制字符边框 423
16.8.3 打印边框中的信息 424
16.8.4 存储游戏最高分 426
16.8.5 设计分支选项 427
16.9 游戏说明模块设计 429
16.9.1 游戏说明模块概述 429
16.9.2 游戏说明界面的实现 429
16.10 本章总结 431
第17章 企业员工管理系统 432
17.1 开发背景 432
17.2 开发环境需求 432
17.3 系统功能设计 432
17.4 预处理模块设计 433
17.4.1 模块概述 433
17.4.2 文件引用 433
17.4.3 定义全局变量 433
17.4.4 定义结构体 434
17.4.5 函数声明 434
17.5 主函数设计 435
17.5.1 功能概述 435
17.5.2 实现主函数 435
17.6 系统初始化 435
17.6.1 模块概述 435
17.6.2 操作密码文件 436
17.6.3 进入企业员工管理系统 437
17.7 系统登录模块设计 439
17.7.1 模块概述 439
17.7.2 使用字符串比较函数strcmp 440
17.7.3 实现密码验证功能 440
17.8 主界面功能菜单设计 441
17.8.1 模块概述 441
17.8.2 设计功能菜单界面 442
17.8.3 实现功能菜单界面的分支选择 442
17.9 添加员工信息 444
17.9.1 模块概述 444
17.9.2 使用fwrite函数 444
17.9.3 实现添加员工信息功能 445
17.10 删除员工信息 447
17.10.1 模块概述 447
17.10.2 实现删除员工信息功能 447
17.11 查询员工信息 449
17.11.1 模块概述 449
17.11.2 查询员工信息的界面设计 450
17.11.3 根据姓名查询员工信息 452
17.11.4 根据工号查询员工信息 452
17.11.5 根据电话号码查询员工信息 453
17.11.6 根据QQ号查询员工信息 454
17.11.7 显示查询结果 455
17.12 修改员工信息 456
17.12.1 模块概述 456
17.12.2 实现修改员工信息的界面设计 457
17.12.3 修改员工工资 459
17.12.4 修改员工年龄 460
17.12.5 修改非数值型信息 460
17.13 统计员工信息 461
17.13.1 模块概述 461
17.13.2 实现统计员工信息 462
17.14 系统密码重置 463
17.14.1 模块概述 463
17.14.2 实现系统密码重置 463
17.15 本章总结 464
第18章 网络通信聊天程序(Visual C++ 6.0实现) 466
18.1 网络通信系统概述 466
18.1.1 开发背景 466
18.1.2 需求分析 466
18.1.3 功能结构图 467
18.1.4 系统预览 467
18.2 技术攻关 468
18.2.1 TCP/IP协议 468
18.2.2 IP地址 469
18.2.3 数据包格式 470
18.2.4 建立连接 471
18.2.5 套接字库函数 472
18.3 网络通信系统主程序 476
18.4 点对点通信 479
18.5 服务器中转通信 485
18.6 程序调试与错误处理 493
18.7 开发总结 495
第19章 火车订票系统 498
19.1 开发背景 498
19.2 需求分析 498
19.3 系统设计 498
19.3.1 系统目标 498
19.3.2 系统功能结构 499
19.4 预处理模块设计 499
19.4.1 模块概述 499
19.4.2 模块实现 499
19.5 主函数设计 501
19.5.1 主函数概述 501
19.5.2 技术分析 501
19.5.3 主函数实现 502
19.6 添加模块设计 503
19.6.1 模块概述 503
19.6.2 技术分析 504
19.6.3 功能实现 504
19.7 查询模块设计 505
19.7.1 模块概述 505
19.7.2 功能实现 506
19.8 订票模块设计 507
19.8.1 模块概述 507
19.8.2 技术分析 508
19.8.3 功能实现 508
19.9 修改模块设计 510
19.9.1 模块概述 510
19.9.2 功能实现 510
19.10 显示模块设计 511
19.10.1 模块概述 511
19.10.2 功能实现 512
19.11 保存模块设计 512
19.11.1 模块概述 512
19.11.2 功能实现 513
19.12 开发总结 514
第20章 通讯录管理系统 515
20.1 开发背景 515
20.2 系统分析 515
20.3 系统设计 515
20.3.1 功能阐述 515
20.3.2 功能结构 516
20.3.3 系统预览 516
20.4 文件引用 517
20.5 声明结构体 517
20.6 函数声明 518
20.7 功能菜单设计 518
20.7.1 功能概述 518
20.7.2 功能菜单实现 518
20.7.3 自定义菜单功能函数 520
20.8 通讯录录入设计 520
20.8.1 功能概述 520
20.8.2 通讯录录入实现 521
20.9 通讯录查询设计 522
20.9.1 功能概述 522
20.9.2 通讯录查询实现 523
20.10 通讯录删除设计 523
20.10.1 功能概述 523
20.10.2 通讯录删除技术分析 524
20.10.3 通讯录删除实现 524
20.11 通讯录显示设计 525
20.11.1 功能概述 525
20.11.2 通讯录显示实现 525
20.12 通讯录数据保存设计 526
20.12.1 功能概述 526
20.12.2 通讯录数据保存实现 526
20.13 数据加载设计 527
20.13.1 功能概述 527
20.13.2 数据加载实现 527
20.14 开发总结 528
第21章 学生个人消费管理系统 529
21.1 开发背景 529
21.2 需求分析 529
21.3 系统设计 529
21.3.1 系统目标 529
21.3.2 系统功能结构 530
21.4 预处理模块设计 530
21.4.1 模块概述 530
21.4.2 技术分析 530
21.4.3 功能实现 531
21.5 主函数设计 532
21.5.1 功能概述 532
21.5.2 技术分析 532
21.5.3 功能实现 533
21.6 录入学生消费信息模块 535
21.6.1 模块概述 535
21.6.2 技术分析 535
21.6.3 功能实现 536
21.7 查询学生消费信息模块 539
21.7.1 模块概述 539
21.7.2 功能实现 540
21.8 删除学生消费信息模块 541
21.8.1 模块概述 541
21.8.2 技术分析 541
21.8.3 功能实现 541
21.9 显示学生消费信息模块 542
21.9.1 功能概述 542
21.9.2 功能实现 543
21.10 保存学生消费信息模块 544
21.10.1 功能概述 544
21.10.2 技术分析 544
21.10.3 功能实现 545
21.11 开发总结 546