欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實現(xiàn)路口交通燈模擬系統(tǒng)

 更新時間:2022年03月22日 14:40:22   作者:KC-馮世傑  
這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)路口交通燈模擬系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

交通燈信號控制是交通工具現(xiàn)代化的產(chǎn)物,在平面交叉口,為了把可能發(fā)生沖突的車流從時空上分離,必須通過交通信號對交通流進行有效的引導(dǎo)和調(diào)度。

設(shè)計要求:

(1)  設(shè)計一個十字路口的交通燈控制電路,要求南北方向和東西方向兩個交叉路口的車輛交替運行,每個方向綠燈亮30秒,兩個方向能根據(jù)車流量的大小自動調(diào)節(jié)通行時間,車流量大,通行時間增加30秒,車流量小,通行時間仍然是30秒。

(2)  在路燈轉(zhuǎn)為紅燈時,要求黃燈先亮3秒鐘,才能變換運行車道。

系統(tǒng)算法設(shè)計圖:

#include<iostream> ?
#include<windows.h> ?
using namespace std; ?
??
void way1(int a,int y); ? ? //交通燈的函數(shù)
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; ? ? //車輛數(shù)變量
?? ?int i = 0, j;
?? ?char d;
?? ?cout<<endl<<"***開始模擬智能交通燈系統(tǒng)***"<<endl<<endl;
?? ?while(1)
?? ?{
?? ??? ?cout<<"請設(shè)置東車道車輛數(shù):"; ? ? ?//設(shè)置車輛數(shù)
?? ??? ?cin>>car1;
?? ??? ?cout<<"請設(shè)置西車道車輛數(shù):";
?? ??? ?cin>>car2;
?? ??? ?cout<<"請設(shè)置北車道車輛數(shù):";
?? ??? ?cin>>car3;
?? ??? ?cout<<"請設(shè)置南車道車輛數(shù):";
?? ??? ?cin>>car4;
?? ??? ?cout<<endl<<endl;
?? ??? ?cout<<"******開始模擬******"<<endl;
?? ??? ?if((car1+car2)-(car3+car4)>10) ? ? //根據(jù)車輛數(shù)來選擇交通燈計時函數(shù)
?? ??? ?{
?? ??? ??? ?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<<"若想重新設(shè)置車輛數(shù)請按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<<"若想繼續(xù)請按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<<"若想繼續(xù)請按C,若想返回上一級請按R。";
?? ??? ?cin>>d;
?? ??? ?if(d == 'C'||d == 'c')
?? ??? ?{
?? ??? ??? ?cout<<endl;
?? ??? ??? ?continue;
?? ??? ?}
?? ??? ?else if(d == 'R'||d == 'r')
?? ??? ?{
?? ??? ??? ?cout<<endl<<endl;
?? ??? ??? ?break;
?? ??? ?}
?? ?}
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++?vector的簡單實現(xiàn)

    C++?vector的簡單實現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了C++?vector的簡單實現(xiàn),使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言詳解用char實現(xiàn)大小寫字母的轉(zhuǎn)換

    C語言詳解用char實現(xiàn)大小寫字母的轉(zhuǎn)換

    這篇文章主要給大家介紹了關(guān)于C語言實現(xiàn)大小寫字母轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C語言實現(xiàn)自動給QQ好友發(fā)窗口抖動

    C語言實現(xiàn)自動給QQ好友發(fā)窗口抖動

    這篇文章主要介紹了C語言實現(xiàn)自動給QQ好友發(fā)窗口抖動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C語言 操作符分類解析與使用

    C語言 操作符分類解析與使用

    C 語言提供了豐富的操作符,有:算術(shù)操作符,移位操作符,位操作符,邏輯操作符,逗號表達式。讓我們通讀本篇來詳細(xì)了解吧
    2021-11-11
  • Qt數(shù)據(jù)庫應(yīng)用之實現(xiàn)數(shù)據(jù)的導(dǎo)入與導(dǎo)出

    Qt數(shù)據(jù)庫應(yīng)用之實現(xiàn)數(shù)據(jù)的導(dǎo)入與導(dǎo)出

    QT中涉及到數(shù)據(jù)庫相關(guān)的項目,幾乎都需要將少量的信息數(shù)據(jù)導(dǎo)出到文件保存好,然后用戶可以打開該表格進行編輯,編輯完成后保存,再重新導(dǎo)入到軟件中。所以本文將具體為大家介紹一下這一功能如何實現(xiàn),感興趣的可以跟隨小編一起試一試
    2022-01-01
  • C++ Boost Utility超詳細(xì)講解

    C++ Boost Utility超詳細(xì)講解

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱
    2022-12-12
  • 一起來了解一下C++的結(jié)構(gòu)體?struct

    一起來了解一下C++的結(jié)構(gòu)體?struct

    這篇文章主要為大家詳細(xì)介紹了C++的結(jié)構(gòu)體struct,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言中雙向鏈表和雙向循環(huán)鏈表詳解

    C語言中雙向鏈表和雙向循環(huán)鏈表詳解

    這篇文章主要介紹了C語言中雙向鏈表和雙向循環(huán)鏈表詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 詳解C++中OpenSSL動態(tài)鏈接庫的使用

    詳解C++中OpenSSL動態(tài)鏈接庫的使用

    這篇文章主要介紹了OpenSSL動態(tài)鏈接庫的使用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • C++開發(fā):為什么多線程讀寫shared_ptr要加鎖的詳細(xì)介紹

    C++開發(fā):為什么多線程讀寫shared_ptr要加鎖的詳細(xì)介紹

    本篇文章介紹了,在C++中為什么多線程讀寫shared_ptr要加鎖的詳細(xì)說明。需要的朋友參考下
    2013-04-04

最新評論