停車(chē)場(chǎng)管理系統(tǒng)的代碼_第1頁(yè)
停車(chē)場(chǎng)管理系統(tǒng)的代碼_第2頁(yè)
停車(chē)場(chǎng)管理系統(tǒng)的代碼_第3頁(yè)
停車(chē)場(chǎng)管理系統(tǒng)的代碼_第4頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、設(shè)停車(chē)場(chǎng)是一個(gè)可停放n 輛車(chē)的狹長(zhǎng)通道,且只有一個(gè)大門(mén)可供汽車(chē)進(jìn)出。在停車(chē)場(chǎng),汽車(chē)按到達(dá)的先后次序,由北向南依次排列(假設(shè)大門(mén)在最南端)。若車(chē)場(chǎng)已停滿(mǎn) n 輛車(chē),則后來(lái)的汽車(chē)要在門(mén)外的便道上等候,當(dāng)有車(chē)開(kāi)走時(shí),便道上的第一輛車(chē)即可開(kāi)入。 當(dāng)停車(chē)場(chǎng)某輛車(chē)要離開(kāi)時(shí), 在它之后進(jìn)去的車(chē)輛必須先推出車(chē)場(chǎng)為它讓路,待該輛車(chē)開(kāi)出大門(mén)以后,其他車(chē)輛再按原次序返回車(chē)場(chǎng)。每輛車(chē)離開(kāi)停車(chē)場(chǎng)時(shí),應(yīng)按其停留時(shí)間的長(zhǎng)短交費(fèi)(在便道上停留的時(shí)間不收費(fèi))。試編寫(xiě)程序,模擬上述管理過(guò)程。要求以順序棧模擬停車(chē)場(chǎng),以鏈隊(duì)列模擬便道。從終端讀入汽車(chē)到達(dá)或離去的數(shù)據(jù),每組數(shù)據(jù)包括三項(xiàng): (1) 是“到達(dá)”還是“離去” (2) 汽車(chē)牌

2、照; (3) “到達(dá)”或“離去”的時(shí)刻。與每組輸入信息相應(yīng)的輸出信息為: 如果是到達(dá)的車(chē)輛, 則輸出其在停車(chē)場(chǎng)中或便道上的位置; 如果是離去的車(chē)輛, 則輸出其在停車(chē)場(chǎng)中停留的時(shí)間和應(yīng)繳的費(fèi)用。 (需另設(shè)一個(gè)棧,臨時(shí)停放為讓路而從車(chē)場(chǎng)退出的車(chē)。)#include<iostream>#define M 5using namespace std;typedef int Datatype;typedef structDatatype bianhaoM;int top;int hM;/ 時(shí)int mM;/ 分int sM;/ 秒Seqstack;/ 停車(chē)場(chǎng)棧的定義typedef struct

3、 Node/ 便道結(jié)點(diǎn),表示一輛汽車(chē)Datatype bianhao;struct Node *next;node;typedef struct專(zhuān)業(yè)資料node *front;node *rear;int count;biandao;/ 便道/ 停車(chē)場(chǎng)順序棧初始化void InitSeqstack(Seqstack *t)t->top=-1;/ 進(jìn)棧,即進(jìn)入停車(chē)場(chǎng)int Push(Seqstack *t,intx,int h,int m,int s)if(t->top=M-1)return 0;/ 停車(chē)場(chǎng)棧已滿(mǎn)t->top+;t->bianhaot->top=x;

4、t->ht->top=h;t->mt->top=m;t->st->top=s;return 1;/ 出棧,即離開(kāi)停車(chē)場(chǎng)int Pop(Seqstack *t,int*x,int *h,int *m,int *s)if(t->top=-1)return 0;else*x=t->bianhaot->top;*h=t->ht->top;專(zhuān)業(yè)資料*m=t->mt->top;*s=t->st->top;t->top-;return 1;/ 查找某牌照的車(chē)在停車(chē)場(chǎng)中的位置, 若找到則返回其位置,否則返回 -1i

5、nt Find(Seqstack t,intx)int i;for(i=0;i<=t.top;i+)if(t.bianhaoi!=x)continue;elsebreak;if(i>t.top)return(-1);elsereturn(i);/ 判斷停車(chē)場(chǎng)是否已滿(mǎn)int IsSeqstackFull(Seqstack t)if(t.top=M-1)return 1;elsereturn 0;/ 判斷停車(chē)場(chǎng)是否已沒(méi)有車(chē)輛專(zhuān)業(yè)資料int IsSeqstackEmpty(Seqstack t)if(t.top=-1)return 1;elsereturn 0;/ 依次顯示停車(chē)場(chǎng)停放的所

6、有車(chē)輛void ShowSeqstack(Seqstack t)int i;if(t.top=-1)cout<<" 停車(chē)場(chǎng)沒(méi)有停放車(chē)輛 "<<endl; elsefor(i=0;i<=t.top;i+)cout<<"牌照: "<<t.bianhaoi<<endl;/ 隊(duì)列初始化int Initbiandao(biandao *Q)Q->front=new node;if(Q->front!=NULL)Q->rear=Q->front;Q->front->

7、next=NULL;Q->count=0;return(true);else return(false);/ 入隊(duì)操作,即當(dāng)停車(chē)場(chǎng)滿(mǎn)了的時(shí)候,再到達(dá)的車(chē)輛進(jìn)去便專(zhuān)業(yè)資料道隊(duì)列int Enterbiandao(biandao *Q,intx)node *NewNode;NewNode=new node;if(NewNode!=NULL)NewNode->bianhao=x;NewNode->next=NULL;Q->rear->next=NewNode;Q->rear=NewNode;Q->count+;return(true);else return(

8、false);/ 出隊(duì)操作,即便道上的車(chē)輛從便道開(kāi)出來(lái)int Deletebiandao(biandao *Q,int*x)node *p;if(Q->front=Q->rear)return(false);p=Q->front->next;Q->front->next=p->next;if(Q->rear=p)Q->rear=Q->front;*x=p->bianhao;free(p);Q->count-;return(true);專(zhuān)業(yè)資料/ 判斷便道隊(duì)列是否為空int IsbiandaoEmpty(biandao Q)

9、if(Q.front=Q.rear)return(true);elsereturn(false);/ 當(dāng) count=0時(shí),就空了/ 依次顯示便道上停放的所有車(chē)輛void Showbiandao(biandao Q)node *p;p=Q.front->next;if(p=NULL)cout<<" 便道上沒(méi)有停放車(chē)輛 !"<<endl; elsewhile(p!=NULL)cout<<"牌照: "<<p->bianhao<<endl;p=p->next;36/ 計(jì)算停留時(shí)間差d

10、ouble Time(int h1,int m1,int s1,int h2,int m2,int s2)double p,q;p=h1*3600+m1*60+s1-(h2*3600+m2*60+s2);q=(double)p/3600;return(q);專(zhuān)業(yè)資料/ 計(jì)算停車(chē)費(fèi)用double Cost(double t,int u)return(t*u);/ 主函數(shù)void main()double time,cost;int ch;intx,*y,z;int i,flag=1,h,m,s,unit_price,hh,mm,ss;y=new int;Seqstack*t;/ 定義停車(chē)棧t=n

11、ew Seqstack;InitSeqstack(t);biandao *Q;/ 定義便道隊(duì)列Q=new biandao;Initbiandao(Q);Seqstack*r;/ 定義讓路棧r=new Seqstack;InitSeqstack(r);cout<<"請(qǐng)?jiān)O(shè)置停車(chē)費(fèi)用單價(jià): ( _元 / 小時(shí)) "<<endl;cin>>unit_price;while(flag)cout<<"*"<<endl;專(zhuān)業(yè)資料cout<<" 請(qǐng) 選 擇 命 令 : "<

12、<endl<<"1: 到 達(dá) "<<endl<<"2: 離開(kāi) "<<endl<<"3: 依次顯示停車(chē)場(chǎng)停放車(chē)輛"<<endl<<"4:依次顯示便道上停放車(chē)輛"<<endl<<"5:結(jié)束"<<endl;cout<<"*"<<endl;cin>>ch;switch(ch)case 1:cout<<"

13、請(qǐng)輸入到達(dá)的汽車(chē)牌照:"<<endl;cin>>x;if(IsSeqstackFull(*t)cout<<"停車(chē)場(chǎng)已滿(mǎn),請(qǐng)?jiān)诒愕赖群?"<<endl;Enterbiandao(Q,x);cout<<"將此車(chē)停放在便道的"<<Q->count<<"號(hào)位置 !"<<endl;elsewhile(1)cout<<"請(qǐng)輸入到達(dá)的時(shí)間( 例如,2108 23) : "<<endl;cin&g

14、t;>h>>m>>s;if(h<0|h>23)continue;/ 輸入數(shù)據(jù)不合法,回去重新輸入if (m<0 | m>59) continue;if (s>-1 && s<61)break;/ 輸入時(shí)間全部合法,退出循環(huán)專(zhuān)業(yè)資料/ 輸入時(shí)間全部合Push(t,x,h,m,s);cout<<"將此車(chē)停放在停車(chē)場(chǎng)的"<<t->top+1<<"號(hào)停車(chē)位置 "<<endl;break;case 2:if(IsSeqstackE

15、mpty(*t)cout<<"停車(chē)場(chǎng)已沒(méi)有車(chē)輛"<<endl;elsecout<<"請(qǐng)輸入要離開(kāi)的汽車(chē)的車(chē)牌照:"<<endl;cin>>x;if(Find(*t,x)=-1)cout<<"停車(chē)場(chǎng)沒(méi)有該汽車(chē)!"<<endl;else/ 有該的汽車(chē)while(1)cout<<"請(qǐng)輸入離開(kāi)的時(shí)間( 例如,2358 03) : "<<endl;cin>>h>>m>>s;if(h&

16、lt;0|h>23)continue;/ 輸入數(shù)據(jù)不合法,回去重新輸入if (m<0 | m>59) continue;if (s>-1 && s<61)break;法,退出循環(huán)專(zhuān)業(yè)資料if(Find(*t,x)=t->top)Pop(t,y,&hh,&mm,&ss);/ 要離開(kāi)的車(chē)輛正好是最后一輛進(jìn)入停車(chē)場(chǎng)的車(chē) time=Time(h,m,s,hh,mm,ss);cout<<"停留時(shí)間為:"<<time<<"小時(shí) "<<endl;

17、/ 結(jié)賬cost=Cost(time,unit_price);cout<<"應(yīng) 繳 費(fèi) 用 為 : "<<cost<<"元"<<endl;elsefor(i=(Find(*t,x)+1);i<=t->top;)/該車(chē)不是最后一輛進(jìn)入停車(chē)場(chǎng)的車(chē),其它車(chē)要讓路Pop(t,y,&hh,&mm,&ss);Push(r,*y,hh,mm,ss);/ 進(jìn)入讓路棧rPop(t,y,&hh,&mm,&ss);/ 要離開(kāi)的車(chē)輛離開(kāi)了time=Time(h,m,s,hh,mm,ss);cout<<"停留時(shí)間為:"<<time<<"小時(shí) "<<endl;/ 結(jié)賬cost=Cost(time,unit_price);cout<<"應(yīng)繳費(fèi)用為:"<<cost<<"元"<<endl;for(i=0;i<=r->top;)/ 讓路的車(chē)輛重新回到停車(chē)場(chǎng)專(zhuān)業(yè)資料Pop(r,y,&hh,&mm,&ss);Push(t,*y,hh,mm,ss);if(!Isbia

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論