我想编一个红绿灯程序,假设东西和南北方向的车流量大致相同,因此红、黄、绿灯的时间也相同,定为红灯45秒,黄灯5秒,绿灯40秒,同时用数码管指示当前状态剩余时间。另外,设计一个特殊状态,当特殊状态出现时,两个方向都禁止通行,指示红灯,计时器不显示时间。特殊状态解除后,重新计数并指示时间。
帮帮忙、
我想编一个红绿灯程序,假设东西和南北方向的车流量大致相同,因此红、黄、绿灯的时间也相同,定为红灯45秒,黄灯5秒,绿灯40秒,同时用数码管指示当前状态剩余时间。另外,设计一个特殊状态,当特殊状态出现时,两个方向都禁止通行,指示红灯,计时器不显示时间。特殊状态解除后,重新计数并指示时间。
帮帮忙、
main()
{
boolen sngreen=0 ,snred,snyellow,wegreen,wered,weyellow; \\设为布尔变量,只有0与1,0代表灯为关闭状态,1代表灯为开启状态
int redtime=45,yellowtime=5,greentime=40 ;
int break=1;
string status;
while(!break)
{
while(!sngreen)
{snred=1;snyellow=0;wegreen=1;wred=0;weyellow=0;
if(redtime)
{ redtime--;
printf("红灯时间d%",redtime);
refresh;}
elseif(redtime==0)
{for(i=0;i<yellowtime;i++)
printf("黄灯时间d%",yellowtime);
refresh;}
else {sngreen=1;snred=0;snyellow=0;wegreen=0;wered=1;weyellow=0;
printf("南北通行,绿灯d%,红灯d%,黄灯d%"return(sngreen),return(snred),return(snyellow));
}
}
while(!wegreen)
{sngreen=1;snred=0;snyellow=0;wred=0;weyellow=0;
if(redtime)
{ redtime--;
printf("红灯时间d%",redtime);
refresh;}
elseif(redtime==0)
{for(i=0;i<yellowtime;i++)
printf("黄灯时间d%",yellowtime);
refresh;}
else {sngreen=0;snred=0;snyellow=0;wegreen=1;wered=1;weyellow=0;}
printf("东西通行"绿灯d%,红灯d%,黄灯d%"return(sngreen),return(snred),return(snyellow));
}
printf("中断吗?\n);
scanf("c% y or n",status);
if(statust==y)
break=0;
else break=1;
}
}