目录目录1一、课程设计的任务、性质与目的 2二 课程设计的内容2三 课程设计的要求与数据 2四、总体设计 2五、详细设计2六、总程序的调试(以东西 2 个状态图说明)8七、总结9八、成员设计内容9九、参考资料9一、课程设计的任务、性质与目的“C 语言课程设计”是在学习“C 语言程序设计"课程之后进行的一个实践教学环节,课程设计的目的是:(1) 进一步培育学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;(2) 针对 C 语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。(3) 掌握 C 语言的编程技巧和上机调试程序的方法。(4) 掌握程序设计的常用算法。二 课程设计的内容模拟十字路口的红绿灯显示程序,每个方向有直行、左转和右转 3 车道,红灯 30 秒,绿灯 30 秒,黄灯 3 秒;只要求实现一个方向的红绿灯显示模拟实现。三 课程设计的要求与数据(1)用 C 语言实现系统;(2)能动态显示灯的转换;(3)有逼真的仿真模拟界面;(4)有时间的倒计时。四、总体设计模块 1:十字路口的设计模块 2:分隔线的设计模块 3:主逻辑灯的设计模块 4:延时及倒计时的显示五、详细设计1、画十字路口:主要用到 Windows32 的画不规则图形的函数 Polygon 函数,先定义图形的坐标在写函数,程序如下:数组:POINT point1[12]={ {0,200},{400,200},{400,0},{600,0},{600,200},{1500,200},{1500,400},{600,400},{600,1400},{400,1400},{400,400},{0,400} };int drawline(){ SelectObject(hdc,hBrush_black);Polygon(hdc,point1,12);DeleteObject(SelectObject(hdc,hBrush_black));}运行图:2、分隔线的设计:3 个车道,右转、左转、直走,两个方向共有 16 条分隔线,用到直线函数MoveToEx,程序如下:POINT apt[32]={0,333,400,333,600,333,1400,333,0,367,400,367,600,367,1400,367,0,267,400,267,600,267,1400,267,0,234,400,234,600,234,1400,234, 434,0,434,200,434,400,434,1400,467,0,467,200,467,400,467,1400 533,0,533,200,533,400,533,1400,566,0,566,200,566,400,566,1400};int drawrect(){ holdPen=(HPEN)SelectObject(hdc,hPen1); MoveToEx(hdc,400,200,NULL); LineTo(hdc,400,400);LineTo(hdc,600,400); LineTo(hdc,600,200);LineTo(hdc,400,...