停車場(chǎng)問題(打印稿)C++_第1頁(yè)
停車場(chǎng)問題(打印稿)C++_第2頁(yè)
停車場(chǎng)問題(打印稿)C++_第3頁(yè)
停車場(chǎng)問題(打印稿)C++_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

停車場(chǎng)問題(打印稿)C++停車場(chǎng)問題(打印稿)C++停車場(chǎng)問題(打印稿)C++xxx公司停車場(chǎng)問題(打印稿)C++文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度實(shí)驗(yàn)二停車場(chǎng)管理問題描述:設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門在最南端,最先到達(dá)的第一輛車停放在停車場(chǎng)的最北端),若車場(chǎng)內(nèi)已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當(dāng)停車場(chǎng)內(nèi)某輛車要離開時(shí),在它之后進(jìn)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開出大門外,其他車輛再按原次序進(jìn)入停車場(chǎng),每輛停放在停車場(chǎng)的車離開停車場(chǎng)時(shí)必須按它停留時(shí)間長(zhǎng)短交納費(fèi)用。試為停車場(chǎng)編制按此要求進(jìn)行管理的模擬程序?;疽螅阂詶DM停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼以及到達(dá)或離去的時(shí)刻。對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)。測(cè)試數(shù)據(jù):設(shè)n=2,輸入數(shù)據(jù)為(’A’,1,5),(’A’,2,10),(’D’,1,15),(’A’,3,20),(’A’,4,25),(’A’,5,30),(’D’,2,35),(’D’,4,40),(’E’,0,0)。其中:’A’表示到達(dá)(Arrival);’D’表示離去(Departure);’E’表示輸入結(jié)束(End)。實(shí)現(xiàn)提示:需另設(shè)一個(gè)棧,臨時(shí)停放為給要離去的汽車讓路而從停車場(chǎng)退出來的汽車,也用順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)。輸入數(shù)據(jù)按到達(dá)或離去的時(shí)刻有序。棧中每個(gè)元素表示一輛汽車,包含兩個(gè)數(shù)據(jù)項(xiàng):汽車的牌照號(hào)碼和進(jìn)入停車場(chǎng)的時(shí)刻。下面是以VC代碼寫成的,但沒有用到棧和隊(duì)列的中所聲明的類。要求:使用棧和隊(duì)列的中所聲明的類改編,并保證運(yùn)行正確。#include<>structnode1{ intcno;//車號(hào) intctime;//到達(dá)停車場(chǎng)的時(shí)間};typedefstruct{ node1*base; node1*top; intsize;}stack1,stack2;//分別均用順序存儲(chǔ)表示停車場(chǎng)棧和臨時(shí)停放棧structnode2{ intcno;//車號(hào) intctime;//到達(dá)時(shí)間 node2*next;};typedefstruct{ node2*front;//隊(duì)頭指針 node2*rear;//隊(duì)尾指針}que;//用鏈表表示隊(duì)列--便道voidinitial1(stack1&s,intn)//初始化停車場(chǎng)棧{ =newnode1[n*sizeof(node1)]; if(!{cout<<"stack1false!";return;} =; =n;}voidinitial2(que&q){//初始化等待隊(duì)列--便道 ==newnode2; if(!{cout<<"queuefalse!";return;} >next=NULL;}voidinitial3(stack2&s,intn)////初始化臨時(shí)停放棧{ ==newnode1[(n-1)*sizeof(node1)]; if(!{cout<<"stack2false!";return;}}voidINstack1(stack1&s,intcnum,intctim)//入停車場(chǎng)棧{ >cno=cnum; >ctime=ctim; ++;}voidINque(que&q,intcnum,intctim)//入等待隊(duì)列--便道{ node2*p; p=newnode2; p->cno=cnum; p->ctime=ctim; p->next=NULL; >next=p; =p;}voidINstack2(stack1&s1,stack2&s2,intk)//將停車場(chǎng)s1中k之上的車倒入臨時(shí)停放棧s2{ node1*p; p=; while(p->cno!=k)//查找車號(hào)為k的車所在位置,由p指向 p++; while!=p){//將停車場(chǎng)s1中k之上的車倒入臨時(shí)停放棧s2 >cno=>cno; >ctime=>ctime; ++; ; } }voidmain(void){ stack1s1;//停車場(chǎng)棧 stack2s2;//臨時(shí)停放棧 que q;//等待隊(duì)列--便道 intprice,time,n,num,m; charstate; cout<<"輸入價(jià)格:"; cin>>price; cout<<"輸入停車場(chǎng)容量:"; cin>>n;initial1(s1,n);//s1模擬停車場(chǎng)棧 initial2(q);//q模擬等待隊(duì)列--便道 initial3(s2,n);//s2模擬臨時(shí)停放棧 inttag=1; while(tag) {if(tag==0)break; cout<<"輸入“A”表示到達(dá),“D”表示離開,“E”表示結(jié)束輸入:"; cin>>state; cout<<"輸入車號(hào):"; cin>>num; cout<<"輸入到達(dá)或離開的時(shí)刻:"; cin>>time; switch(state) {case'E':tag=0; break; case'A':if//直接入停車場(chǎng)棧 {INstack1(s1,num,time); m=int cout<<"此車在停車場(chǎng)的位置是:"<<m<<endl; } else//進(jìn)入等待隊(duì)列--便道 { INque(q,num,time);//加入等待隊(duì)列尾 node2*p=>next;//因等待隊(duì)列有頭結(jié)點(diǎn) m=1; while(p!={p=p->next;m++;}//計(jì)算位置 cout<<"此車在便道上的位置是:"<<m<<endl; }; break; case'D': INstack2(s1,s2,num);//將停車場(chǎng)中num之上的車倒入臨時(shí)停放棧s2 cout<<"停留時(shí)間為:"<<>ctime+1<<endl; cout<<"費(fèi)用是:"<<price*>ctime+1)<<'\n'; ; //臨時(shí)停放棧s2非空時(shí),將s2中的車回到停車場(chǎng) while!= {>cno=>cno; >ctime=>ctime; ++;; } //有一輛車離開,只要等待隊(duì)列--便道非空,則必可把等待隊(duì)列頭的車加入停車場(chǎng)棧 if!= {node2*p1;

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論