交通信号灯模拟操作系统可设.docx
《交通信号灯模拟操作系统可设.docx》由会员分享,可在线阅读,更多相关《交通信号灯模拟操作系统可设.docx(11页珍藏版)》请在冰豆网上搜索。
交通信号灯模拟操作系统可设
课程设计任务书
学院
信息学院
专业
计算机科学与技术
学生姓名
学号
题目
交通信号灯模拟
内容及要求:
内容:
一个十字路口,共有四组红绿灯,每个路口的车辆都遵循"红灯停,绿灯行"的原那么,假设将每一台汽车都作为一个进程,请设计良好的机制,展示出合理的"十字路口交通管理"情况.
车辆通行设定:
路口宽度不限,对一个路口而言,只有当一辆车通过路口(越过对面路口的交通灯后)后,其后续车辆才能继续通过交通灯,车辆通过路口的时间可以固定,可以自行计算。
进程的互斥:
交通灯进程实际上是互斥的,即不能同时为红或者同时为绿.
进程的消息通信或其他通信方式:
对车辆进程而言,每一个车辆在通过路口前,必须确认前面的车辆已经通过了路口.
进程的调度:
停留在一个路口的车辆,决定其前进或等候的因素是交通灯和前面车辆的状态,需要设计一个良好的进程调度机制来控制所有车辆的通行。
要求:
1.设计数据结构,存储结构;
或兼容环境完成上述题目的代码编写与调试;
3.程序运行界面交互性好;
测试实例。
任务交付:
1.程序源代码;
2.课程设计论文及电子文档。
进度安排:
本课程设计时间为16、20教学周。
其中包含设计、代码调试、课程设计论文撰写几个阶段。
第1周查找资料、完成初步设计、代码设计与初步调试;
第2周调试、测试、验收、课程设计论文撰写、辩论。
指导教师〔签字〕:
年月日
学院院长〔签字〕:
年月日
1需求分析………………………………………………….…….2
1.1设计要求………………………………………………….2
1.2解决方案……………………………………………….…2
2概要设计……………………………………………………......2
2.1函数定义说明………………………………………....…2
2.2结构设计说明……………………………………........…2
2.3算法流程图………………………………………........…3
3详细设计…………………………..………………………....…4
3.1核心函数的设计……...…………………………….……4
3.2主函数的设计……........................................................…7
4调试分析…………………………..……………………….…...8
4.1调试过程及结果……...…………………………….……8
4.2结果分析……...…………………………………….…..10
5课设总结…………………………..………………………......10
6参考文献…………………………..……………………..........10
1需求分析
1.1设计要求
一个十字路口,共有四组红绿灯,每个路口的车辆都遵循"红灯停,绿灯行"的原那么,假设将每一台汽车都作为一个进程,请设计良好的机制,展示出合理的"十字路口交通管理"情况.
车辆通行设定:
路口宽度不限,对一个路口而言,只有当一辆车通过路口(越过对面路口的交通灯后)后,其后续车辆才能继续通过交通灯,车辆通过路口的时间可以固定,可以自行计算。
进程的互斥:
交通灯进程实际上是互斥的,即不能同时为红或者同时为绿.
进程的消息通信或其他通信方式:
对车辆进程而言,每一个车辆在通过路口前,必须确认前面的车辆已经通过了路口.
进程的调度:
停留在一个路口的车辆,决定其前进或等候的因素是交通灯和前面车辆的状态,需要设计一个良好的进程调度机制来控制所有车辆的通行。
1.2解决方案
根据设计要求,在VC++6.0环境下编译,设计了一个能够实现自由模拟某一时段交通状况并能预测某辆车需要多久才能到达路口的系统程序,改程序到达了设计要求,成功地实现了要求功能。
2概要设计
函数定义说明
本设计中,定义了两个函数实现P、V原语的操作,其中P〔inti〕函数实现了i方向上车辆等待数目减一,车辆编号增一以及输出的功能,V〔inti〕函数实现了时间的增加,交通转换灯的转换,无车标志的转换以及输出的功能。
同时定义了东西调度函数ETW〔〕和南北调度函数STN〔〕,最后当然定义了main〔〕来调用上述函数实现动态演示及预测功能。
结构设计说明
为了实现题设的要求,在VC++6.0环境下编译实现,整个系统的主要流程设计为如下步骤:
2.3算法流程图
选取局部核心流程图如下:
图2.1P函数图2.2V函数
图2.3main函数
3详细设计
3.1核心函数的设计
设计P〔inti〕函数用来实现从i〔东西南北〕方向等待车辆中挑出当前的第一个并让其通行,同时记录此车的编号,输出此车的发车时间,代码如下:
voidP(inti)//P函数,i为方向判断标志
{
if(Max[i]>0)
{
Max[i]=Max[i]-1;//i方向上的车辆等待数目减一
R[i]++;//当前车辆编号
if((PS-1)==i&&R[i]==PN)
PT=Time;//保存预测时间
cout<