




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)題目 模擬停車場(chǎng)管理一、 需求分析1、 程序的基本功能: 主控功能:介紹程序的基本功能,并給出程序功能所對(duì)應(yīng)的鍵盤操作的提示,如車到來(lái)或離去的表示方法,停車場(chǎng)或者便道的狀態(tài)的查詢方法提示等。 汽車到來(lái):首先要查詢當(dāng)前停車的狀態(tài),當(dāng)停車場(chǎng)非滿時(shí),將其駛?cè)胪\噲?chǎng)(入棧),開(kāi)始計(jì)費(fèi);當(dāng)停車場(chǎng)滿時(shí),讓其進(jìn)入便道等候(入隊(duì))。 汽車離開(kāi)停車場(chǎng):當(dāng)某輛車要離開(kāi)停車場(chǎng)的時(shí)候,比他后進(jìn)停車場(chǎng)的車要為他讓路,(即將這些車依次“壓入”輔助棧),開(kāi)走請(qǐng)求離開(kāi)的車輛,再將輔助棧中的車依次出棧,“壓入”停車場(chǎng);同時(shí)根據(jù)離開(kāi)的車在停車場(chǎng)停留的時(shí)間進(jìn)行收費(fèi);最后查詢是否有車在便道等候,若有,將便道上的第一輛車駛?cè)胪\噲?chǎng)
2、(先出隊(duì),再入棧),開(kāi)始計(jì)費(fèi)。 查詢狀態(tài):用來(lái)在屏幕上顯示停車位和便道上各位置的狀態(tài)。2、 輸入輸出要求: 輸入:汽車“到達(dá)”或“離去”的信息、汽車牌照號(hào)碼、汽車到達(dá)或離去的時(shí)刻。 輸出:若是車輛到達(dá),則輸出車輛在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出車輛在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)繳納的費(fèi)用(假設(shè)在便道上等候的時(shí)間不收費(fèi))。3、 測(cè)試數(shù)據(jù):當(dāng)停車場(chǎng)容量為5時(shí),連續(xù)有7輛車到來(lái),牌照號(hào)分別為F001、F002、F003、F004、F005、F006、F007,前5輛車應(yīng)該進(jìn)入停車位15車位,第6、7輛車應(yīng)停入便道的1、2位值上。牌照號(hào)為F003的汽車從停車場(chǎng)開(kāi)走,應(yīng)顯示F005、F004
3、的讓路動(dòng)作和F006從便道到停車位上的動(dòng)作。二、 概要設(shè)計(jì)1、 抽象數(shù)據(jù)類型的定義:使用棧來(lái)模擬停車場(chǎng),使用隊(duì)列來(lái)模擬停車場(chǎng)外的便道;還需另設(shè)計(jì)一個(gè)輔助棧,臨時(shí)停放為給要離去的汽車讓路而從停車場(chǎng)退出來(lái)的汽車。2、 本程序包括以下4個(gè)模塊: 汽車進(jìn)停車場(chǎng):如果停車場(chǎng)滿了,就將其余的車停放在便道,將車依次進(jìn)隊(duì);如果停車場(chǎng)沒(méi)滿,就將車依次進(jìn)棧; 汽車出停車場(chǎng):顯示車出停車場(chǎng)的信息,如果便道上有車則將車停入停車場(chǎng),將車進(jìn)站,并顯示新進(jìn)入停車場(chǎng)的車輛信息; 查詢停車場(chǎng)信息:顯示停車場(chǎng)停放車輛的信息;顯示便道等候車輛的信息; 主程序模塊:1 / 9進(jìn)入停車場(chǎng);駛出停車場(chǎng);查詢停車場(chǎng)信息;退出程序;3、 各
4、程序模塊之間的層次關(guān)系 主程序模塊 汽車進(jìn)入 汽車離開(kāi) 查詢車輛三、 詳細(xì)設(shè)計(jì):1、 類型數(shù)據(jù)結(jié)構(gòu)體的定義:typedef struct Carchar licenseN;float time;char state;Car; /汽車類型的定義typedef structCar PackMAX_PARK;int top;ParkStack; /順序棧停車場(chǎng)的定義typedef struct qnodeCar data;struct qnode *next;Qnode; /各汽車信息的存儲(chǔ)空間typedef structQnode *front,*rear;RoadQueue; /用來(lái)表示隊(duì)頭和隊(duì)
5、尾位置的指針2、 偽碼算法:#include<iostream.h>#include<stdlib.h>#include<string.h>#define MAX_PARK 4#define N 10typedef struct Carchar licenseN;float time;char state;Car;typedef structCar PackMAX_PARK;int top;ParkStack;typedef struct qnodeCar data;struct qnode *next;Qnode;typedef structQnode *
6、front,*rear;RoadQueue;ParkStack *Init_ParkStack()ParkStack *s;s=new ParkStack;s->top=-1;return s;int Empty_ParkStack(ParkStack*s)if(s->top=-1)return 1;else return 0;void Push_ParkStack(ParkStack *s,Car x) s->top+; strcpy(s->Packs->top.license,x.license); s->Packs->top.state=x.st
7、ate; s->Packs->top.time=x.time;void Pop_ParkStack(ParkStack *s,Car *x)*x=s->Packs->top;s->top-;RoadQueue *Init_RoadQueue()RoadQueue *q;Qnode *p;q=new RoadQueue;p=new Qnode;p->next=NULL;q->front=p;q->rear=p;return q;void In_RoadQueue(RoadQueue *q,Car x)Qnode *p;p=new Qnode;str
8、cpy(p->data.license,x.license);p->data.state=x.state;p->next=NULL;q->rear->next=p;q->rear=p;int Empty_RoadQueue(RoadQueue *q)if(q->front=q->rear)return 1;elsereturn 0;void Out_RoadQueue(RoadQueue *q,Car *x)Qnode *p;if(Empty_RoadQueue(q)cout<<"tt"<<"
9、便道為空"elsep=q->front->next; q->front->next=p->next;*x=p->data;delete p;if(q->front->next=NULL)q->rear=q->front;void Carin(ParkStack *q,RoadQueue *p)Car c;cout<<"tt"<<"請(qǐng)輸入當(dāng)前時(shí)間:"cin>>c.time;cout<<"tt"<<"
10、請(qǐng)輸入車牌號(hào):"cin>>c.license;cout<<"tt"<<"請(qǐng)輸入停車狀態(tài)(P:停車,W:等待):"cin>>c.state;if(q->top=MAX_PARK-1)cout<<"tt"<<"新來(lái)的車在便道等候停車!"In_RoadQueue(p,c);elsePush_ParkStack(q,c);cout<<"tt"<<"車已在停車場(chǎng)停車,現(xiàn)在開(kāi)始計(jì)時(shí)!&q
11、uot; cout<<endl;void Carout(ParkStack *q,ParkStack *s,RoadQueue *p)char licenseN;Car c;float t;double a=0;cout<<"tt"<<"請(qǐng)輸入當(dāng)前時(shí)間:"cin>>t;cout<<"tt"<<"請(qǐng)輸入車牌號(hào):"cin>>license;Pop_ParkStack(q,&c); while (strcmp(c.license,
12、license)!=0) Push_ParkStack(s,c); Pop_ParkStack(q,&c); a=(t-c.time)*10;cout<<endl<<"tt"<<"車牌號(hào)為"<<license<<"的車輛駛出停車場(chǎng)"<<endl; cout<<"tt"<<"停車費(fèi)用為:"<<a<<endl; while (!Empty_ParkStack(s) Pop_
13、ParkStack(s, &c); Push_ParkStack(q, c); if (!Empty_RoadQueue(p) Out_RoadQueue(p,&c);c.time=t;cout<<"tt"<<c.license<<"t進(jìn)入停車場(chǎng)"<<endl; Push_ParkStack(q, c); void Carsearch(ParkStack *q,ParkStack *s,RoadQueue *p)Car c;Qnode *t;cout<<"tt停車場(chǎng)情況
14、為:"<<endl;if(Empty_ParkStack(q)cout<<"tt"<<"停車場(chǎng)為空"<<endl;else while(!Empty_ParkStack(q) Pop_ParkStack(q, &c);q->top-;Push_ParkStack(s, c);q->top+; while(!Empty_ParkStack(s) Pop_ParkStack(s, &c);cout<<"tt"<<c.license
15、<<"tP"<<"t停車時(shí)刻:"<<c.time<<endl;Push_ParkStack(q, c); cout<<"tt-"<<endl;cout<<"tt便道情況為:"<<endl;t=p->front->next;if(t=NULL) cout<<"tt"<<"便道為空"<<endl;else while(t!=NULL) c
16、out<<"tt"<<t->data.license<<"tW"<<endl;t=t->next; int main()ParkStack *p,*s;RoadQueue *t;int a; p=Init_ParkStack();s=Init_ParkStack(); t=Init_RoadQueue();while(a)cout<<"tt"<<"-請(qǐng)選擇-"<<endl;cout<<"tt&quo
17、t;<<"*1.進(jìn)入停車場(chǎng)*"<<endl;cout<<"tt"<<"*2.駛出停車場(chǎng)*"<<endl;cout<<"tt"<<"*3.查詢車情況*"<<endl;cout<<"tt"<<"*0.退出程序*"<<endl;cout<<"tt"<<"請(qǐng)輸入:"cin>>a;switch(a) case 1: Carin(p,t); cout<<endl<<endl; break; case 2: Carout(p,s,t); cout<<endl<<endl; break; case 3: Carsearch(p,s,t); cout<<endl<<endl; break; case 0:break;return 0;3、 函數(shù)間的調(diào)用關(guān)系:void Push_ParkStackvoid Pop_ParkStackvoid Out_RoadQu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 百貨零售企業(yè)商品組合策略考核試卷
- 航空貨物運(yùn)輸中的航空安全保衛(wèi)措施考核試卷
- 小紅書品牌合作人跨界營(yíng)銷活動(dòng)策劃服務(wù)協(xié)議
- 全方位康復(fù)理療中心委托運(yùn)營(yíng)管理及醫(yī)療資源共享協(xié)議
- 基因測(cè)序數(shù)據(jù)存儲(chǔ)、分析與應(yīng)用培訓(xùn)合同
- 寵物連鎖加盟店授權(quán)運(yùn)營(yíng)協(xié)議
- 數(shù)字經(jīng)濟(jì)創(chuàng)業(yè)項(xiàng)目環(huán)保節(jié)能有限合伙人合作協(xié)議
- 高端養(yǎng)老社區(qū)委托經(jīng)營(yíng)管理及配套服務(wù)協(xié)議
- 《動(dòng)畫角色形象授權(quán)與品牌授權(quán)合作協(xié)議》
- 針對(duì)老城區(qū)改造的房產(chǎn)使用權(quán)保留及補(bǔ)償協(xié)議
- 水利水電工程技術(shù)術(shù)語(yǔ)全
- 2024-2025教科版科學(xué)一年級(jí)下冊(cè)第二單元測(cè)試卷及答案
- 中國(guó)共產(chǎn)主義青年團(tuán)紀(jì)律處分條例試行解讀學(xué)習(xí)
- 數(shù)字孿生技術(shù)在智慧能源系統(tǒng)中的挑戰(zhàn)與機(jī)遇
- 拋石專項(xiàng)施工方案
- 2025中國(guó)汽車出海潛在市場(chǎng)研究:澳大利亞篇-2025-03-市場(chǎng)解讀
- 高中女生預(yù)防性侵教育
- 合同歸檔培訓(xùn)課件
- 《詞根詞綴記詞法》課件
- 感恩父母養(yǎng)育之恩主題班會(huì)
- 2023 年全國(guó)行業(yè)職業(yè)技能競(jìng)賽- 全國(guó)民政行業(yè)職業(yè)技能大賽 養(yǎng)老護(hù)理員職業(yè)競(jìng)賽項(xiàng)目 參考賽題庫(kù)
評(píng)論
0/150
提交評(píng)論