第1章 课堂同步实验 1
实验1 熟悉集成开发环境 1
实验2 选择与循环结构 6
实验3 算法设计(一) 15
实验4 算法设计(二) 26
实验5 函数 38
实验6 递归函数设计 49
实验7 一维数组 55
实验8 二维数组和回溯法 68
实验9 字符串 89
实验10 指针与动态内存分配 106
实验11 结构与链表 120
实验12 文件与应用有限状态自动机解题 134
第2章 软件工程初步 149
2.1 软件工程概述 149
2.1.1 软件的定义和特点 149
2.1.2 软件危机与软件工程 150
2.1.3 软件质量要素 151
2.1.4 软件工程三要素 152
2.2 软件开发过程 153
2.3 软件需求分析 154
2.4 软件设计 155
2.4.1 软件设计目标 155
2.4.2 软件设计过程 156
2.4.3 软件模块化设计 156
2.4.4 软件结构图 161
2.4.5 详细设计 163
2.4.6 人机界面设计 163
2.5 软件实现 166
2.6 软件测试 166
2.6.1 软件测试基础 166
2.6.2 软件测试技术 167
2.6.3 软件测试过程 172
2.7 案例分析——十字路口交通灯控制系统 176
2.7.1 交通灯控制系统问题描述 176
2.7.2 需求分析 177
2.7.3 概要设计 180
2.7.4 源代码 190
第3章 课程设计 204
3.1 模拟电梯控制系统的实验要求 204
3.2 模拟火车调度系统的实验要求 208
3.3 模拟银行营业厅排队系统的实验要求 210
3.4 课程设计的程序总体结构 213
3.5 课程设计的实验步骤 214
3.6 课程设计的实验报告模板 216
3.7 课程设计的测试用例参考 221
附录A C语言编程注意事项 225
A.1 不定长字符序列的读取和处理 225
A.2 应该用sizeof()获取数据类型或变量占用的字节数 226
A.3 应避免使用依赖编译器求值顺序的语句 226
A.4 避免用“==”判断浮点数是否相等 227
A.5 要防范数值溢出 227
A.6 printf()和scanf()中格式控制字符串与参数类型要匹配 228
A.7 执行scanf()时输入数据的方式与格式控制串要一致 229
A.8 使用%c格式符易出现的问题 230
A.9 数组下标不能越界 232
A.10 不可以利用数组名对数组内容进行复制和比较 232
A.11 字符串要以字符‘\0’结尾 233
A.12 注意野指针 233
A.13 防止内存泄露 234
A.14 防止返回指向非静态局部变量的指针 234
A.15 不要混淆字符数组与字符指针变量 235
A.16 给头文件加宏定义锁 236
A.17 文件打开后要主动关闭 236
A.18 fopen()中文件路径错误 237
A.19 文件操作易出现的其他问题 237
附录B 多线程使用说明 238
B.1 进程和线程 238
B.2 创建线程 239
B.3 线程同步 242
B.4 利用互斥对象实现线程同步 245
附录C Visual C++ 6.0操作手册 249
C.1 新建C语言工程 249
C.2 编译源程序 250
C.3 运行程序 252
C.4 调试程序 252
C.5 创建、编译和运行工程 254
参考文献 257