国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++實現停車場管理系統

2020-01-26 13:48:55
字體:
來源:轉載
供稿:網友

本文實例為大家分享了停車場管理系統的具體代碼,供大家參考,具體內容如下

#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<algorithm>#include<queue>#include<vector>#include<stack>#include<map>using namespace std;struct node{ string no;//車牌號 int time;//車輛進入的時間(以小時為單位) int sub;//車輛在停車場的位置} nod;map<string,int>mp;//用來檢測車輛在停車場或者在便道內deque<node>q1;//模擬停車場deque<node>q2;//模擬便道stack<node>sk;//交換媒介string str1="park",str2="pavement";void Push(int n)//車輛駛入操作{ cout<<"請輸入要進入車輛的車牌號"<<endl; string x; int y,ans; cin>>x; cout<<"請輸入該車輛進入停車場的時間(時間為整形時刻)"<<endl; cin>>y; if(!mp[x])//如果此車不在停車場或者便道內執行以下命令 { if(q1.size()<n)//如果停車場未滿 {  nod.no=x;  nod.time=y;  nod.sub=q1.size()+1;  q1.push_back(nod);  mp[x]=q1.size(); } else//停車場滿了之后進入便道 {  nod.no=x;  nod.time=y;  nod.sub=q2.size()+1;  q2.push_back(nod);  mp[x]=n+q2.size(); } } else cout<<"錯誤:該車輛已在停車場內!"<<endl;}void Pop(int n)//車輛駛出操作{ cout<<"請輸入要駛出車輛的車牌號"<<endl; string x; int y,ans; cin>>x; cout<<"請輸入該車輛駛出停車場的時間(時間為整形時刻)"<<endl; cin>>y; if(!mp[x]) cout<<"錯誤:該輛并不在停車場內!"<<endl; else if(mp[x]<=n)//如果該車在停車場內 { mp[x]=0; while(q1.back().no!=x)//車出 {  q1.back().sub--;  sk.push(q1.back());  q1.pop_back(); } ans=y-q1.back().time; q1.pop_back(); while(!sk.empty()) {  q1.push_back(sk.top());  sk.pop();  mp[q1.back().no]=q1.back().sub; } if(!q2.empty())//如果便道里也有車,那么進入停車場,并且便道后面的車向前移動 {  q2.front().time=y;  q2.front().sub=q1.size()+1;  q1.push_back(q2.front());  q2.pop_front();  while(!q2.empty())  {  q2.back().sub--;  sk.push(q2.back());  q2.pop_back();  }  while(!sk.empty())  {  q2.push_back(sk.top());  sk.pop();  mp[q2.back().no]=q1.back().sub;  }  mp[q1.back().no]=q1.size(); } cout<<"該車輛一共停了 "<<ans<<" 個小時"<<endl; cout<<"所以該車輛需要繳納 "<<ans*5<<"元"<<endl; } else if(mp[x]>n)//如果車在便道里,那么直接離開,后面的車向前移動 { mp[x]=0; while(q2.back().no!=x) {  q2.back().sub--;  sk.push(q2.back());  q2.pop_back(); } q2.pop_back(); while(!sk.empty()) {  q2.push_back(sk.top());  sk.pop(); } cout<<"由于該車輛并未進入停車場,所以不進行收費"<<endl; }}void Query1(int n)//查詢停車場的停車狀態{ cout<<"請輸入要查詢狀態的車牌號"<<endl; cout<<endl; string x; cin>>x; if(!mp[x]) cout<<"該車輛并未在停車場"<<endl; else if(mp[x]<=n) cout<<"該車輛位于停車場"<<mp[x]<<"號位"<<endl; else cout<<"該車輛位于"<<mp[x]-n<<"號便道"<<endl;}void Query2(int n)//查詢停車場的空車位{ cout<<endl; if(q1.size()==n) cout<<"停車場已滿"<<endl; else { cout<<"停車場的"<<q1.size()+1; for(int i=q1.size()+2; i<=n; i++)  cout<<"、"<<i; cout<<"號位車為空"<<endl; }}int main(){ int n; cout<<"  **************停車場管理系統**************"<<endl; cout<<endl; cout<<"停車場管理系統說明:"<<endl; cout<<"1.當停車場車位已滿之后,車將會停在便道"<<endl; cout<<"2.停車場按照每小時五元的標準收費(不足一小時按照一小時計算)"<<endl; cout<<"3.停在便道的車輛不收費。"<<endl; cout<<endl; cout<<"首先請設置停車場的總共的車位數:"<<endl; cin>>n; cout<<endl; cout<<"*********車位設置完畢!下面開始停車場管理系統模擬*********"<<endl; cout<<endl; cout<<"  *********操作說明*********"<<endl; cout<<endl; cout<<"車輛駛入登記->請按1 ^_^  車輛駛出登記->請按2 ^_^"<<endl; cout<<endl; cout<<"查詢停車場的停車狀態->請按3 ^_^ 查詢停車場空閑車位->請按4 ^_^ "<<endl; cout<<endl; cout<<"退出停車場管理系統->請按0 ^_^"<<endl; cout<<endl; cout<<"說明完畢!下面開始操作"<<endl; cout<<endl; while(1) { cout<<"********請選擇操作1~4或者退出按0********"<<endl; cout<<endl; int t; cin>>t; if(t==1)  Push(n); else if(t==2)  Pop(n); else if(t==3)  Query1(n); else if(t==4)  Query2(n); else  break; cout<<endl; cout<<"***********************biubiu***********************"<<endl; cout<<"***********************biubiu***********************"<<endl; cout<<endl; } cout<<"歡迎使用停車場管理系統,期待您的下次使用^_^"<<endl;}

結果:

這里寫圖片描述

這里寫圖片描述

更多學習資料請關注專題《管理系統開發》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通海县| 灵寿县| 房山区| 甘肃省| 安徽省| 津市市| 安达市| 白沙| 建阳市| 临高县| 团风县| 丰都县| 繁峙县| 理塘县| 上饶市| 彭山县| 客服| 垫江县| 垣曲县| 宝清县| 汉源县| 昭通市| 乐平市| 安新县| 晋江市| 德清县| 邢台市| 勐海县| 龙山县| 马山县| 安塞县| 日照市| 泸溪县| 额尔古纳市| 镇原县| 郁南县| 达孜县| 鹤岗市| 荣昌县| 台北县| 随州市|