这篇文章主要为大家详细介绍了C++实现路口交通灯模拟系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
交通灯信号控制是交通工具现代化的产物,在平面交叉口,为了把可能发生冲突的车流从时空上分离,必须通过交通信号对交通流进行有效的引导和调度。
设计要求:
(1) 设计一个十字路口的交通灯控制电路,要求南北方向和东西方向两个交叉路口的车辆交替运行,每个方向绿灯亮30秒,两个方向能根据车流量的大小自动调节通行时间,车流量大,通行时间增加30秒,车流量小,通行时间仍然是30秒。
(2) 在路灯转为红灯时,要求黄灯先亮3秒钟,才能变换运行车道。
系统算法设计图:
#include<iostream>
#include<windows.h>
using namespace std;
void way1(int a,int y); //交通灯的函数
void way2(int b);
int green1, green2; //定义交通灯的红,黄,绿灯的变量和赋初值
int yellow1, yellow2;
int red1, red2;
int green[2] = {31,61};
int yellow = 4;
int red[3] = {34,64};
int main()
{
int car1, car2, car3, car4; //车辆数变量
int i = 0, j;
char d;
cout<<endl<<"***开始模拟智能交通灯系统***"<<endl<<endl;
while(1)
{
cout<<"请设置东车道车辆数:"; //设置车辆数
cin>>car1;
cout<<"请设置西车道车辆数:";
cin>>car2;
cout<<"请设置北车道车辆数:";
cin>>car3;
cout<<"请设置南车道车辆数:";
cin>>car4;
cout<<endl<<endl;
cout<<"******开始模拟******"<<endl;
if((car1+car2)-(car3+car4)>10) //根据车辆数来选择交通灯计时函数
{
j = i+1;
way1(j, i);
}
else if(((car1+car2)-(car3+car4)>=0)&&((car1+car2)-(car3+car4)<=10))
{
way2(i);
}
else
{
j = i+1;
way1(i, j);
}
cout<<"若想重新设置车辆数请按Y,若退出请按N。";
cin>>d;
if(d == 'Y'||d == 'y')
{
cout<<endl;
continue;
}
else if(d == 'N'||d == 'n')
break;
}
return 0;
}
void way1(int a,int y)
{
green1=green[a]; //先给交通灯赋初值
green2=0;
yellow1=yellow2=0;
red1=0;
red2=red[a];
int c;
char d;
while(1) //东西车道的交通灯
{
for(c=99;c>0;c--)
{
cout<<endl<<"------东西车道------"<<endl;
if(green1>0)
{
if(green1==green[a])
{
green1--;
}
else
{
cout<<" >>> 绿灯 <<< "<<green1<<" 秒\n";
green1--;
}
if(green1==0)
yellow1=yellow;
}
if(yellow1>0)
{
if(yellow1==4)
yellow1--;
else
{
cout<<" >>> 黄灯 <<< "<<yellow1<<" 秒\n";
yellow1--;
}
if(yellow1==0)
{
red1=red[y];
}
}
if(red1>0)
{
if(red1==red[y])
red1--;
else
{
cout<<" >>> 红灯 <<< "<<red1<<" 秒\n";
red1--;
}
if(red1==0)
{
green1=green[a];
}
}
/***********************************************************************************/
cout<<endl<<"------南北车道------"<<endl; //南北车道的交通灯
if(red2>0)
{
if(red2==red[a])
{
red2--;
}
else
{
cout<<" >>> 红灯 <<< "<<red2<<" 秒\n";
red2--;
}
if(red2==0)
green2=green[y];
}
if(green2>0)
{
if(green2==green[y])
green2--;
else
{
cout<<" >>> 绿灯 <<< "<<green2<<" 秒\n";
green2--;
}
if(green2==0)
{
yellow2=yellow;
}
}
if(yellow2>0)
{
if(yellow2==4)
yellow2--;
else
{
cout<<" >>> 黄灯 <<< "<<yellow2<<" 秒\n";
yellow2--;
}
if(yellow2==0)
{
red2=red[a];
}
}
Sleep(1000);
system("cls");
}
cout<<"若想继续请按C,若想返回上一级请按R。";
cin>>d;
if(d == 'C'||d == 'c')
{
cout<<endl;
continue;
}
else if(d == 'R'||d == 'r')
{
cout<<endl<<endl;
break;
}
}
}
void way2(int b)
{
green1=green[b];
green2=0;
yellow1=yellow2=0;
red1=0;
red2=red[b];
int c;
char d;
while(1)
{
for(c=69;c>0;c--)
{
cout<<endl<<"------东西车道------"<<endl;
if(green1>0)
{
if(green1==green[b])
{
green1--;
}
else
{
cout<<" >>> 绿灯 <<< "<<green1<<" 秒"<<endl;
green1--;
}
if(green1==0)
yellow1=yellow;
}
if(yellow1>0)
{
if(yellow1==4)
yellow1--;
else
{
cout<<" >>> 黄灯 <<< "<<yellow1<<" 秒"<<endl;
yellow1--;
}
if(yellow1==0)
{
red1=red[b];
}
}
if(red1>0)
{
if(red1==red[b])
red1--;
else
{
cout<<" >>> 红灯 <<< "<<red1<<" 秒"<<endl;
red1--;
}
if(red1==0)
{
green1=green[b];
}
}
/***********************************************************************************/
cout<<endl<<"------南北车道------"<<endl;
if(red2>0)
{
if(red2==red[b])
{
red2--;
}
else
{
cout<<" >>> 红灯 <<< "<<red2<<" 秒"<<endl;
red2--;
}
if(red2==0)
green2=green[b];
}
if(green2>0)
{
if(green2==green[b])
green2--;
else
{
cout<<" >>> 绿灯 <<< "<<green2<<" 秒"<<endl;
green2--;
}
if(green2==0)
{
yellow2=yellow;
}
}
if(yellow2>0)
{
if(yellow2==4)
yellow2--;
else
{
cout<<" >>> 黄灯 <<< "<<yellow2<<" 秒"<<endl;
yellow2--;
}
if(yellow2==0)
{
red2=red[b];
}
}
Sleep(1000);
system("cls");
}
cout<<"若想继续请按C,若想返回上一级请按R。";
cin>>d;
if(d == 'C'||d == 'c')
{
cout<<endl;
continue;
}
else if(d == 'R'||d == 'r')
{
cout<<endl<<endl;
break;
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
织梦狗教程
本文标题为:C++实现路口交通灯模拟系统


基础教程推荐
猜你喜欢
- C++实战之二进制数据处理与封装 2023-05-29
- 全面了解C语言 static 关键字 2023-03-26
- C++实现ETW进行进程变动监控详解 2023-05-15
- C语言编程C++旋转字符操作串示例详解 2022-11-20
- [c语言-函数]不定量参数 2023-09-08
- [C语言]二叉搜索树 2023-09-07
- C语言 详解字符串基础 2023-03-27
- 带你深度走入C语言取整以及4种函数 2022-09-17
- centos 7 vscode cmake 编译c++工程 2023-09-17
- C语言实现宾馆管理系统课程设计 2023-03-13