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

C++實(shí)現(xiàn)停車場管理系統(tǒng)

 更新時(shí)間:2020年04月08日 10:02:27   作者:Akatsuki__Itachi  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)停車場管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)停車場管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

#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;//車輛進(jìn)入的時(shí)間(以小時(shí)為單位)
 int sub;//車輛在停車場的位置
} nod;
map<string,int>mp;//用來檢測車輛在停車場或者在便道內(nèi)
deque<node>q1;//模擬停車場
deque<node>q2;//模擬便道
stack<node>sk;//交換媒介
string str1="park",str2="pavement";
void Push(int n)//車輛駛?cè)氩僮?
{
 cout<<"請輸入要進(jìn)入車輛的車牌號"<<endl;
 string x;
 int y,ans;
 cin>>x;
 cout<<"請輸入該車輛進(jìn)入停車場的時(shí)間(時(shí)間為整形時(shí)刻)"<<endl;
 cin>>y;
 if(!mp[x])//如果此車不在停車場或者便道內(nèi)執(zhí)行以下命令
 {
 if(q1.size()<n)//如果停車場未滿
 {
 nod.no=x;
 nod.time=y;
 nod.sub=q1.size()+1;
 q1.push_back(nod);
 mp[x]=q1.size();
 }
 else//停車場滿了之后進(jìn)入便道
 {
 nod.no=x;
 nod.time=y;
 nod.sub=q2.size()+1;
 q2.push_back(nod);
 mp[x]=n+q2.size();
 }
 }
 else
 cout<<"錯(cuò)誤:該車輛已在停車場內(nèi)!"<<endl;
}
void Pop(int n)//車輛駛出操作
{
 cout<<"請輸入要駛出車輛的車牌號"<<endl;
 string x;
 int y,ans;
 cin>>x;
 cout<<"請輸入該車輛駛出停車場的時(shí)間(時(shí)間為整形時(shí)刻)"<<endl;
 cin>>y;
 if(!mp[x])
 cout<<"錯(cuò)誤:該輛并不在停車場內(nèi)!"<<endl;
 else if(mp[x]<=n)//如果該車在停車場內(nèi)
 {
 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())//如果便道里也有車,那么進(jìn)入停車場,并且便道后面的車向前移動
 {
 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<<" 個(gè)小時(shí)"<<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<<"由于該車輛并未進(jìn)入停車場,所以不進(jìn)行收費(fèi)"<<endl;
 }
}
void Query1(int n)//查詢停車場的停車狀態(tài)
{
 cout<<"請輸入要查詢狀態(tài)的車牌號"<<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<<" **************停車場管理系統(tǒng)**************"<<endl;
 cout<<endl;
 cout<<"停車場管理系統(tǒng)說明:"<<endl;
 cout<<"1.當(dāng)停車場車位已滿之后,車將會停在便道"<<endl;
 cout<<"2.停車場按照每小時(shí)五元的標(biāo)準(zhǔn)收費(fèi)(不足一小時(shí)按照一小時(shí)計(jì)算)"<<endl;
 cout<<"3.停在便道的車輛不收費(fèi)。"<<endl;
 cout<<endl;
 cout<<"首先請?jiān)O(shè)置停車場的總共的車位數(shù):"<<endl;
 cin>>n;
 cout<<endl;
 cout<<"*********車位設(shè)置完畢!下面開始停車場管理系統(tǒng)模擬*********"<<endl;
 cout<<endl;
 cout<<" *********操作說明*********"<<endl;
 cout<<endl;
 cout<<"車輛駛?cè)氲怯?>請按1 ^_^ 車輛駛出登記->請按2 ^_^"<<endl;
 cout<<endl;
 cout<<"查詢停車場的停車狀態(tài)->請按3 ^_^ 查詢停車場空閑車位->請按4 ^_^ "<<endl;
 cout<<endl;
 cout<<"退出停車場管理系統(tǒng)->請按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<<"歡迎使用停車場管理系統(tǒng),期待您的下次使用^_^"<<endl;
}

結(jié)果:

推薦幾篇文章:

C++實(shí)現(xiàn)簡單的圖書管理系統(tǒng)

C++實(shí)現(xiàn)簡單的職工信息管理系統(tǒng)

C++基礎(chǔ)學(xué)生管理系統(tǒng)

關(guān)于管理系統(tǒng)的更多內(nèi)容請點(diǎn)擊《管理系統(tǒng)專題》進(jìn)行學(xué)習(xí)

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

相關(guān)文章

  • 一文詳解C++子類函數(shù)為什么不能重載父類函數(shù)

    一文詳解C++子類函數(shù)為什么不能重載父類函數(shù)

    這篇文章主要介紹了一文詳解C++子類函數(shù)為什么不能重載父類函數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • Linux中使用C語言的fork()函數(shù)創(chuàng)建子進(jìn)程的實(shí)例教程

    Linux中使用C語言的fork()函數(shù)創(chuàng)建子進(jìn)程的實(shí)例教程

    fork是一個(gè)在Linux系統(tǒng)環(huán)境下專有的函數(shù),現(xiàn)有的進(jìn)程調(diào)用fork后將會創(chuàng)建一個(gè)新的進(jìn)程,這里我們就來看一下Linux中使用C語言的fork()函數(shù)創(chuàng)建子進(jìn)程的實(shí)例教程
    2016-06-06
  • 一起來了解一下C++的結(jié)構(gòu)體?struct

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

    這篇文章主要為大家詳細(xì)介紹了C++的結(jié)構(gòu)體struct,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言如何改變字體顏色

    C語言如何改變字體顏色

    這篇文章主要介紹了C語言如何改變字體顏色,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • C++中overload,override,overwrite的區(qū)別詳細(xì)解析

    C++中overload,override,overwrite的區(qū)別詳細(xì)解析

    以下是對C++中overload,override,overwrite的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-09-09
  • C語言學(xué)習(xí)之條件和?if...else語句詳解

    C語言學(xué)習(xí)之條件和?if...else語句詳解

    這篇文章主要給大家介紹了C語言中的條件和?if...else語句,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • C++使用GDAL庫實(shí)現(xiàn)Tiff文件的讀取

    C++使用GDAL庫實(shí)現(xiàn)Tiff文件的讀取

    這篇文章主要為大家詳細(xì)介紹了C++使用GDAL庫實(shí)現(xiàn)Tiff文件的讀取的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • C語言之選擇分支語句詳解

    C語言之選擇分支語句詳解

    大家好,本篇文章主要講的是C語言之選擇分支語句詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 詳解應(yīng)用程序與驅(qū)動程序通信DeviceIoControl

    詳解應(yīng)用程序與驅(qū)動程序通信DeviceIoControl

    這種通信方式,就是驅(qū)動程序和應(yīng)用程序自定義一種IO控制碼,然后調(diào)用DeviceIoControl函數(shù),IO管理器會產(chǎn)生一個(gè)MajorFunction為IRP_MJ_DEVICE_CONTROL,MinorFunction為自己定義的控制碼的IRP,系統(tǒng)就調(diào)用相應(yīng)的處理IRP_MJ_DEVICE_CONTROL的派遣函數(shù)
    2021-06-06
  • 一文帶你了解C語言中static關(guān)鍵字的3個(gè)作用

    一文帶你了解C語言中static關(guān)鍵字的3個(gè)作用

    static這個(gè)關(guān)鍵字是“靜態(tài)”的意思,在C語言里主要有3個(gè)作用。這篇文章主要通過一些簡單示例為大家詳細(xì)講講這3個(gè)左右,感興趣的小伙伴可以了解一下
    2023-04-04

最新評論