模拟智能交通信号灯系统
设计一个智能信号灯系统,在十字路口控制东西南北四个方向交通信号,当然是红灯停绿灯行了,一般情况是四个方向每次绿灯亮30秒,只不过在绿灯熄灭后亮3秒黄灯再转红灯。现要求系统能够根据各个方向路口来的车流情况动态分配信号灯在来车多的方向绿灯可以綖长30秒时间,为此在各个路口设有车流信号统计器,可以向系统动态发送车流信息。
特别说明:系统分为两种工作状态(正常状态和紧急疏通状态)
(1)正常状态
如图所示
说明:图中红色箭头表示该车道规定的车流方向(一条车道有两个车流方向),当其中一个车道出现绿色信号时(当那个车道为多车流车道时,信号持续60秒,否则持续30秒)在该车道的车就允许向前走和向左走。例如,当图中南车道出现绿色信号时,在南车道的车就允许向北走和向西走,北车道的车允许向东走,东车道的车允许向南走。如图蓝色箭头所示。
(2)紧急疏通状态(当一条或两条车道出现拥挤时特别有效)
如图所示
说明:
当其中一个车道出现绿色信号时,在该车道的车允许向任何方向转。其它车道为红灯,即不能通过十字路口。如果绿色信号出现在拥挤车道时,信号持续60秒,否则持续15秒。这个方案在一条或两条车道出现拥挤时特别有效!
(1)正常状态
其中一个方向的车道
东车道
if(e<10)
es=30;
else
es=60;
for(;es>0;es--)
{
system("cls");
cout<<"东往西、东往南车道现在为"<<'\n'<<" >>绿灯<<"<<endl;
cout<<" 剩余时间"<<es<< "秒" << endl;
cout<<"西往北、北往南车道现在为"<<'\n'<<" >>绿灯<<"<<endl;
cout<<" 剩余时间"<<es<< "秒" << endl;
cout<<"其余方向车道为"<<'\n'<<" >>红灯<<"<<endl