第一篇 C语言基础知识及课程设计指导第1章 C语言基本知识点 2
1.1 C语言简介 2
1.1.1 C语言的发展过程 2
1.1.2 当代最优秀的程序设计语言 2
1.2 C语言的特点 2
1.3 C语言基本语法概述 3
1.3.1 数据类型 3
1.3.2 运算符和表达式 4
1.3.3 程序基本结构 4
1.3.4 数组 6
1.3.5 函数 7
1.3.6 编译预处理 9
1.3.7 指针 10
1.3.8 结构体和共用体 14
1.3.9 文件 16
第2章 课程设计指导 21
2.1 课程设计的目的和任务 21
2.2 课程设计内容 21
2.3 课程设计教学基本要求 22
2.4 软件开发各个阶段任务简介 22
2.4.1 功能需求分析 22
2.4.2 软件总体设计 22
2.4.3 详细设计 23
2.4.4 编码 23
2.4.5 综合测试 23
2.5 课程设计选题及考核 24
2.5.1 课程设计选题 24
2.5.2 课程设计考核 24
第二篇 字符界面及文件操作编程第3章 链表相关知识简介 26
3.1 链表的概念 26
3.2 存储空间的分配和释放 27
3.3 建立和输出链表 27
3.4 单链表的基本操作 28
3.5 双链表 30
第4章 通讯录管理 32
4.1 功能需求分析 32
4.2 总体设计 32
4.2.1 功能模块设计 32
4.2.2 程序处理流程 33
4.3 详细设计与程序实现 34
4.3.1 预处理 34
4.3.2 数据类型定义 34
4.3.3 函数及变量声明 35
4.3.4 主函数 36
4.3.5 主要函数功能介绍 37
4.3.6 辅助函数功能介绍 44
4.4 系统实现截图 46
4.5 小结 48
第5章 学生成绩管理 49
5.1 功能需求分析 49
5.2 总体设计 49
5.2.1 功能模块设计 49
5.2.2 程序处理流程 51
5.3 详细设计与程序实现 52
5.3.1 预处理 52
5.3.2 数据结构定义 53
5.3.3 函数及变量声明 53
5.3.4 main函数 56
5.3.5 主要处理函数 56
5.3.6 辅助函数功能介绍 67
5.4 系统实现截图 72
5.5 小结 75
第6章 家庭财务管理 76
6.1 功能需求分析 76
6.2 总体设计 77
6.2.1 功能模块设计 77
6.2.2 程序处理流程 78
6.3 详细设计与程序设计 83
6.3.1 头文件 83
6.3.2 模块设计 84
6.4 系统实现截图 101
6.5 小结 105
第7章 图书管理 106
7.1 功能需求分析 106
7.2 总体设计 107
7.2.1 功能模块设计 107
7.2.2 程序处理流程 110
7.3 详细设计与程序实现 112
7.3.1 头文件management.h 112
7.3.2 头文件book.h 113
7.3.3 头文件user.h 114
7.3.4 模块化设计management.c 115
7.3.5 模块化设计book.c 122
7.3.6 模块化设计user.c 137
7.4 系统实现截图 147
7.4.1 管理员权限 147
7.4.2 普通用户权限 150
7.5 小结 151
第三篇 游戏编程 154
第8章 Windows编程 154
8.1 Windows程序入口函数 154
8.2 Windows的消息循环 154
8.3 GDI绘图 156
8.3.1 设备内容的句柄 157
8.3.2 画线 158
8.3.3 画边界框函数 158
8.3.4 使用现有画笔 158
8.3.5 创建自定义画笔 159
8.3.6 绘制填充区域 160
8.3.7 矩形 161
8.3.8 GDI位图对象 162
第9章 贪吃蛇 163
9.1 功能需求分析 163
9.1.1 主要功能 163
9.1.2 游戏基本规则 163
9.2 总体设计 163
9.3 详细设计与程序实现 164
9.3.1 数据结构 165
9.3.2 头文件snake.h 166
9.3.3 游戏设计snake.c 166
9.4 系统实现截图 183
9.5 小结 184
第10章 俄罗斯方块 185
10.1 功能需求分析 185
10.1.1 主要功能 185
10.1.2 游戏基本规则 185
10.2 总体设计 185
10.3 详细设计与程序实现 187
10.3.1 方块设计 187
10.3.2 头文件tetris.h 190
10.3.3 游戏设计tetris.c 191
10.4 系统实现截图 210
10.5 小结 211
第四篇 网络编程 214
第11章 网络协议和套接字编程 214
11.1 TCP/IP协议 214
11.1.1 TCP/IP协议概念 214
11.1.2 TCP/IP整体构架概述 214
11.1.3 TCP/IP中的协议 215
11.2 HTTP协议 216
11.2.1 HTTP简介 216
11.2.2 URL 216
11.2.3 HTTP请求 216
11.2.4 HTTP响应 218
11.3 Windows Sockets编程基础 218
11.3.1 套接字编程基本概念 218
11.3.2 Windows Sockets编程原理 219
11.3.3 Windows Sockets的两种编程模型 220
11.3.4 Windows Sockets基本函数 221
第12章 日期时间服务器/客户端程序设计 226
12.1 功能需求分析 226
12.2 总体设计 226
12.2.1 功能模块设计 226
12.2.2 程序流程处理 227
12.3 详细设计与程序实现 228
12.3.1 服务器端程序 228
12.3.2 客户端程序 237
12.4 系统实现截图 244
12.5 小结 245
第13章 简单的Web服务器 246
13.1 功能需求分析 246
13.2 总体设计 246
13.2.1 功能模块设计 246
13.2.2 主要流程处理 247
13.3 详细设计与程序实现 249
13.3.1 头文件header.h 250
13.3.2 头文件common.h 250
13.3.3 头文件http_server.h 251
13.3.4 头文件request.h 251
13.3.5 头文件request_parser.h 252
13.3.6 头文件response.h 252
13.3.7 头文件response_creator.h 253
13.3.8 通用模块common.c 254
13.3.9 HTTP服务模块http_server.c 258
13.3.10 请求模块request.c 263
13.3.11 请求解析模块request_parser.c 264
13.3.12 响应模块response.c 273
13.3.13 生成响应模块response_creator.c 274
13.4 系统实现截图 281
13.5 小结 283
第五篇 Linux下C语言编程 286
第14章 Linux C语言开发环境介绍 286
14.1 文本编辑器 286
14.2 编译与调试 286
14.3 make与makefile 287
14.4 集成开发环境 287
第15章 基于堆栈的计算器 291
15.1 功能需求分析 291
15.2 总体设计 291
15.3 详细设计与程序实现 293
15.3.1 头文件calculator.h 293
15.3.2 计算器模块calculator.c 294
15.4 系统实现截图 307
15.5 小结 308
第16章 万年历 309
16.1 功能需求分析 309
16.2 总体设计 309
16.3 详细设计与程序实现 312
16.3.1 头文件calendar.h 312
16.3.2 万年历模块calendar.c 312
16.4 系统实现截图 321
16.5 小结 322
附录A 常用字符与ASCII代码对照表 323
附录B 库函数 324
参考文献 329