![停車場(chǎng)管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/c199888d-0ce8-4d9f-a06d-5f47fce74594/c199888d-0ce8-4d9f-a06d-5f47fce745941.gif)
![停車場(chǎng)管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/c199888d-0ce8-4d9f-a06d-5f47fce74594/c199888d-0ce8-4d9f-a06d-5f47fce745942.gif)
![停車場(chǎng)管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/c199888d-0ce8-4d9f-a06d-5f47fce74594/c199888d-0ce8-4d9f-a06d-5f47fce745943.gif)
![停車場(chǎng)管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/c199888d-0ce8-4d9f-a06d-5f47fce74594/c199888d-0ce8-4d9f-a06d-5f47fce745944.gif)
![停車場(chǎng)管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/22/c199888d-0ce8-4d9f-a06d-5f47fce74594/c199888d-0ce8-4d9f-a06d-5f47fce745945.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、華北水利水電學(xué)院 數(shù)據(jù)結(jié)構(gòu) 實(shí)驗(yàn)報(bào)告20112012學(xué)年 第 二 學(xué)期 2011級(jí) 計(jì)算機(jī) 專業(yè)班級(jí): * 學(xué)號(hào): * 姓名: * -實(shí)驗(yàn)二 棧和隊(duì)列及其應(yīng)用一、 實(shí)驗(yàn)?zāi)康模?掌握棧的特點(diǎn)(先進(jìn)后出FILO)及基本操作,如入棧、出棧等,棧的順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),以便在實(shí)際問題背景下靈活應(yīng)用。2掌握隊(duì)列的特點(diǎn)(先進(jìn)先出FIFO)及基本操作,如入隊(duì)、出隊(duì)等,隊(duì)列順序存儲(chǔ)結(jié)構(gòu)、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)和循環(huán)隊(duì)列的實(shí)現(xiàn),以便在實(shí)際問題背景下靈活運(yùn)用。二、 實(shí)驗(yàn)內(nèi)容:1鏈棧的建立、入棧、出棧操作。2環(huán)形隊(duì)列的建立、入隊(duì)、出隊(duì)操作。3停車場(chǎng)管理。設(shè)停車場(chǎng)內(nèi)只有一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)大門可供汽車
2、進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門在最南端,最先到達(dá)的第一輛車停放在車場(chǎng)的最北端),若車場(chǎng)內(nèi)已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當(dāng)停車場(chǎng)內(nèi)某輛車要離開時(shí),在它之后開入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開出大門外,其它車輛再按原次序進(jìn)入車場(chǎng),每輛停放在車場(chǎng)的車在它離開停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。試為停車場(chǎng)編制按上述要求進(jìn)行管理的模擬程序。實(shí)現(xiàn)提示:以棧模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、
3、汽車牌照號(hào)碼及到達(dá)或離去的時(shí)刻,對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出數(shù)據(jù)為:若是車輛到達(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é)點(diǎn))實(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í)刻。設(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
4、),(D,4,40),(E,0,0)。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼及到達(dá)或離去的時(shí)刻,其中,A表示到達(dá);D表示離去,E表示輸入結(jié)束。三、 實(shí)驗(yàn)要求:1 C/ C+完成算法設(shè)計(jì)和程序設(shè)計(jì)并上機(jī)調(diào)試通過。2 撰寫實(shí)驗(yàn)報(bào)告,提供實(shí)驗(yàn)結(jié)果和數(shù)據(jù)。3 寫出算法設(shè)計(jì)小結(jié)和心得。四、 程序源代碼:1.#include<iostream.h>#include<stdlib.h>typedef struct stnodeint data;stnode *next;LinkStack;/創(chuàng)建一個(gè)棧頭結(jié)點(diǎn),無頭結(jié)void InitStack(Link
5、Stack *&ls)ls=NULL;/進(jìn)棧,相當(dāng)于頭插法void Push(LinkStack *&ls,int x)LinkStack *p;p=(LinkStack *)malloc(sizeof(LinkStack);p->data=x;p->next=NULL;p->next=ls;ls=p;/出棧void Pop(LinkStack *&ls)if(ls=NULL)return;LinkStack *p;int x;p=ls;while(p)x=p->data;ls=p->next;cout<<x<<&q
6、uot; "free(p);p=ls;cout<<"出棧成功!"<<endl;/創(chuàng)建棧void CreatStack(LinkStack *&ls)InitStack(ls);int i=1,num;cout<<"以000表示輸入結(jié)束!"<<endl;while(1)cout<<"請(qǐng)輸入第"<<i<<"個(gè)元素:"cin>>num;if(num=000)break;Push(ls,num);i+;cout
7、<<"進(jìn)棧成功!"<<endl;void main()LinkStack *ls,*p;CreatStack(ls);Pop(ls);2.#include<iostream.h>#define QueueSize 100typedef struct sqqueueint dataQueueSize;int front,rear;SqQueue;/初始化隊(duì)列void InitQueue(SqQueue &qu)qu.rear=qu.front=0;/進(jìn)隊(duì)int EnQueue(SqQueue &sq,int x)if(sq.
8、rear+1)%QueueSize=sq.front)return 0;sq.rear=(sq.rear+1)%QueueSize;sq.datasq.rear=x;return 1;/出隊(duì)void DeQueue(SqQueue &sq)int x;if(sq.front=sq.rear)return;while(sq.front!=sq.rear)sq.front=(sq.front+1)%QueueSize;x=sq.datasq.front;cout<<x<<" "cout<<"出隊(duì)成功!"<&l
9、t;endl;/創(chuàng)建隊(duì)void CreatQueue(SqQueue &sq)InitQueue(sq);int num,i=1;cout<<"以000表示輸入結(jié)束!"<<endl;while(1)cout<<"請(qǐng)輸入第"<<i<<"個(gè)元素:"cin>>num;if(num=000)break;EnQueue(sq,num);i+;cout<<"進(jìn)隊(duì)成功!"<<endl;void main()SqQueue sq
10、;CreatQueue(sq);DeQueue(sq);3.#include<iostream.h>#include<stdlib.h>#include<stdio.h>#define MAX 2#define price 0.05typedef struct nodeint hour;int min;Time;/時(shí)間結(jié)點(diǎn)typedef struct Nodechar num10;/車牌號(hào)Time reach;/時(shí)間Time leave;CarNode;/車輛信息結(jié)點(diǎn)typedef struct NODECarNode *stackMAX;int top;C
11、arStack;/順序棧模擬車站typedef struct QNode/隊(duì)列CarNode *data;QNode *next;QueueNode;/鏈隊(duì)結(jié)點(diǎn)類型typedef struct pqrtQueueNode *front,*rear;/設(shè)置頭指針尾指針LinkQueueCar;/模擬通道/初始化棧void InitStack(CarStack *cs);/初始化隊(duì)列(便道)int InitQueue(LinkQueueCar *qc);/車輛到達(dá)int Arrival(CarStack *Enter,LinkQueueCar *qc);/車輛離開void Leave(CarSta
12、ck *Enter,CarStack *Temp,LinkQueueCar *qc);/顯示車庫(kù)信息void List(CarStack s,LinkQueueCar w);void main()CarStack Enter,Temp;LinkQueueCar Wait;int ch;InitStack(&Enter);InitStack(&Temp);InitQueue(&Wait);while(1)cout<<"歡迎光臨"<<endl;cout<<"-"<<endl;cout&l
13、t;<"1.車輛到達(dá)"<<endl;cout<<"2.車輛離開"<<endl;cout<<"3.車場(chǎng)顯示"<<endl;cout<<"4.退出程序"<<endl;cout<<"-"<<endl;cout<<"請(qǐng)選擇所需的服務(wù)!"<<endl;while(1)cin>>ch;if(ch>=1&&ch<=
14、4)break;switch(ch)case 1:Arrival(&Enter,&Wait);break;case 2:Leave(&Enter,&Temp,&Wait);break;case 3:List(Enter,Wait);break;case 4:exit(0);break;default:break;void InitStack(CarStack *cs)cs->top=-1;/初始化棧for(int i=0;i<MAX;i+)cs->stackcs->top=NULL;int InitQueue(LinkQueueC
15、ar *qc)/初始化隊(duì)列/qc=(LinkQueueCar *)malloc(sizeof(LinkQueueCar);這句話不能要?qc->front=(QueueNode *)malloc(sizeof(QueueNode);if(qc->front!=NULL)qc->front->next=NULL;/帶頭結(jié)點(diǎn)的qc->rear=qc->front;/一定要注意賦值順序不能反了!return 1;elsereturn -1;/打印車站車離開的信息void Print(CarNode *p,int room)int A1,A2,B1,B2;/車輛收費(fèi)
16、cout<<"請(qǐng)輸入離開時(shí)間:/*:*/"<<endl;cout<<"請(qǐng)輸入離開時(shí)間的時(shí)(0-23):"cin>>p->leave.hour;while(p->leave.hour<p->reach.hour|p->leave.hour>23)cout<<"error!"<<endl;cin>>p->leave.hour;B1=p->leave.hour;cout<<"請(qǐng)輸入離開時(shí)間
17、的分鐘(0-59):"cin>>p->leave.min;while(p->leave.min<0|p->leave.min>59)cout<<"error!"<<endl;cin>>p->leave.min;B2=p->leave.min;cout<<endl<<"離開汽車的車牌號(hào)為:"<<endl;puts(p->num);cout<<"其到達(dá)時(shí)間為:"<<p->
18、;reach.hour<<":"<<p->reach.min<<endl;cout<<"其離開時(shí)間為:"<<p->leave.hour<<":"<<p->leave.min<<endl;A1=p->reach.hour;A2=p->reach.min;cout<<"應(yīng)交費(fèi)用為:"<<(B1-A1)*60+(B2-A2)*price<<"元&quo
19、t;<<endl;free(p);int Arrival(CarStack *Enter,LinkQueueCar *qc)CarNode *p;QueueNode *t;p=(CarNode *)malloc(sizeof(CarNode);cout<<"請(qǐng)輸入車牌號(hào)(例A8888):"<<endl;gets(p->num);if(Enter->top+1)<MAX)Enter->top+;cout<<"車輛在車場(chǎng)第"<<Enter->top<<&qu
20、ot;位置"<<endl;cout<<"請(qǐng)輸入到達(dá)時(shí)間:/*:*/"<<endl;cout<<"請(qǐng)輸入到達(dá)時(shí)間的時(shí)(0-23):"cin>>p->reach.hour;while(p->reach.hour<0|p->reach.hour>23)cout<<"error!"<<endl;cin>>p->reach.hour;cout<<"請(qǐng)輸入到達(dá)時(shí)間的分(0-59):&q
21、uot;cin>>p->reach.min;Enter->stackEnter->top=p;/注意數(shù)組下標(biāo)是從0開始,在顯示時(shí)下標(biāo)也要與之對(duì)應(yīng)cout<<"車近停車場(chǎng)成功!"<<endl;return 1;elsecout<<"該車需在便道上等待!"<<endl;t=(QueueNode *)malloc(sizeof(QueueNode);/進(jìn)隊(duì)列t->data=p;t->next=NULL;qc->rear->next=t;qc->rear=
22、t;cout<<"車進(jìn)便道成功!"<<endl;return 1;void Leave(CarStack *Enter,CarStack *Temp,LinkQueueCar *qc)CarNode *p,*t;QueueNode *q;int room;if(Enter->top>-1)/判斷車場(chǎng)是否為空while(1)cout<<"請(qǐng)輸入車在車場(chǎng)中的位置:"cin>>room;if(room>=0&&room<=Enter->top)break;/要離開的車
23、后面還有車,則后面的車需進(jìn)入臨時(shí)棧給前面的車讓路while(Enter->top>room)/用Enter->top和room相比看你的車在第幾個(gè)位置,前面的幾輛車需全部讓路Temp->top+;Temp->stackTemp->top=Enter->stackEnter->top;Enter->stackEnter->top=NULL;Enter->top-;/讓路完以后車再離開p=Enter->stackEnter->top;Enter->stackEnter->top=NULL;Enter->
24、top-;/車離開后,如果臨時(shí)棧里有車,重新進(jìn)車站while(Temp->top>=0)Enter->top+;Enter->stackEnter->top=Temp->stackTemp->top;Temp->stackTemp->top=NULL;Temp->top-;cout<<"臨時(shí)車場(chǎng)里的車重新進(jìn)站成功!"<<endl;Print(p,room);/調(diào)用計(jì)費(fèi)函數(shù)/車離開后如果便道上有車,也進(jìn)車站if(qc->front!=qc->rear&&Enter-
25、>top<MAX)/判斷便道上是否有車以及車站是否已滿q=qc->front->next;t=q->data;Enter->top+;cout<<"便道上的"<<t->num<<"號(hào)車進(jìn)入車場(chǎng)第"<<Enter->top<<"位置"<<endl;cout<<"請(qǐng)輸入現(xiàn)在的時(shí)間:/*:*/"<<endl;cout<<"請(qǐng)輸入到達(dá)時(shí)間的時(shí)(0-23):&q
26、uot;cin>>t->reach.hour;while(t->reach.hour<0|t->reach.hour>23)cout<<"error!"<<endl;cin>>t->reach.hour;cout<<"請(qǐng)輸入到達(dá)時(shí)間的分(0-59):"cin>>t->reach.min;qc->front->next=q->next;/出便道if(q=qc->rear) qc->front=qc->rear
27、;Enter->stackEnter->top=t;/進(jìn)車站free(q);cout<<"便道的車進(jìn)入停車場(chǎng)成功!"<<endl;elsecout<<"便道里沒有車!"<<endl;elsecout<<"車場(chǎng)里沒有車!"<<endl;void List1(CarStack *s)/顯示車場(chǎng)信息int i;if(s->top>-1)cout<<"車場(chǎng)"<<endl;cout<<"
28、;位置 時(shí)間 車牌號(hào)"<<endl;for(i=0;i<(s->top+1);i+)cout<<" "<<i<<" "<<s->stacki->reach.hour<<":"<<s->stacki->reach.min<<" "<<s->stacki->num<<endl;elsecout<<"車場(chǎng)里沒有車!"
29、;<<endl;void List2(LinkQueueCar *w)/顯示便道信息QueueNode *p;p=w->front->next;/p先指向第一輛車,if(w->front!=w->rear)/判斷便道是否為空cout<<"等待車輛的號(hào)碼為:"<<endl;while(p)/用指針p遍歷輸出數(shù)據(jù)puts(p->data->num);p=p->next;elsecout<<"便道里沒有車!"<<endl;void List(CarStack
30、s,LinkQueueCar w)/顯示整個(gè)停車場(chǎng)的信息int flag,tag;flag=1;while(flag)cout<<"請(qǐng)選擇1|2|3:"<<endl;cout<<"1.車場(chǎng)"<<" "<<"2.便道"<<" "<<"3.返回"<<endl;while(1)cin>>tag;if(tag>=1|tag<=3)break;elsecout<<"請(qǐng)選擇1|2|3:"<<endl;swit
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙教版數(shù)學(xué)七年級(jí)下冊(cè)《3.5 整式的化簡(jiǎn)》聽評(píng)課記錄1
- 湘教版地理八年級(jí)下冊(cè)《第一節(jié) 北京市的城市特征與建設(shè)成就》1課時(shí)聽課評(píng)課記錄
- 八年級(jí)道德與法治下冊(cè)第二單元理解權(quán)利義務(wù)第四課公民義務(wù)第1框公民基本義務(wù)聽課評(píng)課記錄(新人教版)
- 湘教版數(shù)學(xué)九年級(jí)上冊(cè)第一章《反比例函數(shù)》復(fù)習(xí)聽評(píng)課記錄
- 人教部編版九年級(jí)歷史上冊(cè):第15課 探尋新航路 聽課評(píng)課記錄
- 蘇科版七年級(jí)數(shù)學(xué)上冊(cè)《3.4.2合并同類項(xiàng)》聽評(píng)課記錄
- 通??谛W(xué)一年級(jí)口算測(cè)試卷
- 蘇教版四年級(jí)數(shù)學(xué)下冊(cè)期末復(fù)習(xí)口算練習(xí)題一
- 月業(yè)務(wù)經(jīng)理聘用協(xié)議書范本
- 二手房房屋買賣協(xié)議書范本
- 2024年全國(guó)統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅰ)含答案
- 安裝承包免責(zé)協(xié)議書模板
- 新教材人教版高中物理選擇性必修第三冊(cè)全冊(cè)各章節(jié)知識(shí)點(diǎn)考點(diǎn)
- CJT 354-2010 城市軌道交通車輛空調(diào)、采暖及通風(fēng)裝置技術(shù)條件
- 2024年成都市中考數(shù)學(xué)試卷(含詳細(xì)解析)
- 暑假作業(yè) 11 高二英語語法填空20篇(原卷版)-【暑假分層作業(yè)】2024年高二英語暑假培優(yōu)練(人教版2019)
- 2023-2024學(xué)年浙江省溫州市七年級(jí)(上)期末英語試卷
- GMP附錄《無菌藥品》試卷測(cè)試題庫(kù)含答案
- JBT 7387-2014 工業(yè)過程控制系統(tǒng)用電動(dòng)控制閥
- 小學(xué)數(shù)學(xué)教學(xué)評(píng)一體化教學(xué)探究
- 2024年江西省南昌市南昌縣中考一模數(shù)學(xué)試題(含解析)
評(píng)論
0/150
提交評(píng)論