版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗題目 模擬停車場管理一、 需求分析1、 程序的基本功能: 主控功能:介紹程序的基本功能,并給出程序功能所對應(yīng)的鍵盤操作的提示,如車到來或離去的表示方法,停車場或者便道的狀態(tài)的查詢方法提示等。 汽車到來:首先要查詢當(dāng)前停車的狀態(tài),當(dāng)停車場非滿時,將其駛?cè)胪\噲觯ㄈ霔#_始計費;當(dāng)停車場滿時,讓其進入便道等候(入隊)。 汽車離開停車場:當(dāng)某輛車要離開停車場的時候,比他后進停車場的車要為他讓路,(即將這些車依次“壓入”輔助棧),開走請求離開的車輛,再將輔助棧中的車依次出棧,“壓入”停車場;同時根據(jù)離開的車在停車場停留的時間進行收費;最后查詢是否有車在便道等候,若有,將便道上的第一輛車駛?cè)胪\噲?/p>
2、(先出隊,再入棧),開始計費。 查詢狀態(tài):用來在屏幕上顯示停車位和便道上各位置的狀態(tài)。2、 輸入輸出要求: 輸入:汽車“到達”或“離去”的信息、汽車牌照號碼、汽車到達或離去的時刻。 輸出:若是車輛到達,則輸出車輛在停車場內(nèi)或便道上的停車位置;若是車輛離去,則輸出車輛在停車場內(nèi)停留的時間和應(yīng)繳納的費用(假設(shè)在便道上等候的時間不收費)。3、 測試數(shù)據(jù):當(dāng)停車場容量為5時,連續(xù)有7輛車到來,牌照號分別為F001、F002、F003、F004、F005、F006、F007,前5輛車應(yīng)該進入停車位15車位,第6、7輛車應(yīng)停入便道的1、2位值上。牌照號為F003的汽車從停車場開走,應(yīng)顯示F005、F004
3、的讓路動作和F006從便道到停車位上的動作。二、 概要設(shè)計1、 抽象數(shù)據(jù)類型的定義:使用棧來模擬停車場,使用隊列來模擬停車場外的便道;還需另設(shè)計一個輔助棧,臨時停放為給要離去的汽車讓路而從停車場退出來的汽車。2、 本程序包括以下4個模塊: 汽車進停車場:如果停車場滿了,就將其余的車停放在便道,將車依次進隊;如果停車場沒滿,就將車依次進棧; 汽車出停車場:顯示車出停車場的信息,如果便道上有車則將車停入停車場,將車進站,并顯示新進入停車場的車輛信息; 查詢停車場信息:顯示停車場停放車輛的信息;顯示便道等候車輛的信息; 主程序模塊:1 / 9進入停車場;駛出停車場;查詢停車場信息;退出程序;3、 各
4、程序模塊之間的層次關(guān)系 主程序模塊 汽車進入 汽車離開 查詢車輛三、 詳細設(shè)計:1、 類型數(shù)據(jù)結(jié)構(gòu)體的定義:typedef 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 *front,*rear;RoadQueue; /用來表示隊頭和隊
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"<<"請輸入當(dāng)前時間:"cin>>c.time;cout<<"tt"<<"
10、請輸入車牌號:"cin>>c.license;cout<<"tt"<<"請輸入停車狀態(tài)(P:停車,W:等待):"cin>>c.state;if(q->top=MAX_PARK-1)cout<<"tt"<<"新來的車在便道等候停車!"In_RoadQueue(p,c);elsePush_ParkStack(q,c);cout<<"tt"<<"車已在停車場停車,現(xiàn)在開始計時!&q
11、uot; cout<<endl;void Carout(ParkStack *q,ParkStack *s,RoadQueue *p)char licenseN;Car c;float t;double a=0;cout<<"tt"<<"請輸入當(dāng)前時間:"cin>>t;cout<<"tt"<<"請輸入車牌號:"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"<<"車牌號為"<<license<<"的車輛駛出停車場"<<endl; cout<<"tt"<<"停車費用為:"<<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進入停車場"<<endl; Push_ParkStack(q, c); void Carsearch(ParkStack *q,ParkStack *s,RoadQueue *p)Car c;Qnode *t;cout<<"tt停車場情況
14、為:"<<endl;if(Empty_ParkStack(q)cout<<"tt"<<"停車場為空"<<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停車時刻:"<<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"<<"-請選擇-"<<endl;cout<<"tt&quo
17、t;<<"*1.進入停車場*"<<endl;cout<<"tt"<<"*2.駛出停車場*"<<endl;cout<<"tt"<<"*3.查詢車情況*"<<endl;cout<<"tt"<<"*0.退出程序*"<<endl;cout<<"tt"<<"請輸入:"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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國有資產(chǎn)租賃合同范本(電力設(shè)施)
- 2025年度護欄配件采購及銷售合同
- 2025年度離婚孩子撫養(yǎng)及教育費用支付執(zhí)行合同
- 2025年度戶外廣告牌廣告位租賃合同
- 2025年二手簡單的商鋪租賃合同模板(2篇)
- 2025年度硅澡泥地暖系統(tǒng)設(shè)計、安裝及售后合同
- 2025年度國際貿(mào)易保理業(yè)務(wù)續(xù)借合同
- 2025年度建筑行業(yè)特殊工種員工勞動合同規(guī)范
- 2025年度空調(diào)冷卻水泵購銷與系統(tǒng)優(yōu)化合同
- 2025年度智能公寓租賃管理服務(wù)合同協(xié)議
- RB/T 101-2013能源管理體系電子信息企業(yè)認證要求
- GB/T 4513.7-2017不定形耐火材料第7部分:預(yù)制件的測定
- GB/T 10205-2009磷酸一銨、磷酸二銨
- 公司財務(wù)制度及流程
- 高支模專項施工方案(專家論證)
- 深圳版初中英語單詞匯總
- 健康養(yǎng)生,快樂生活課件
- 《物流與供應(yīng)鏈管理-新商業(yè)、新鏈接、新物流》配套教學(xué)課件
- MDD指令附錄一 基本要求檢查表2013版
- 駱駝祥子1一24章批注
- 新部編人教版四年級下冊道德與法治全冊教案(教學(xué)設(shè)計)
評論
0/150
提交評論