![停車場管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第1頁](http://file4.renrendoc.com/view/eb037f59b93d1ee83a2145074e2d2083/eb037f59b93d1ee83a2145074e2d20831.gif)
![停車場管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第2頁](http://file4.renrendoc.com/view/eb037f59b93d1ee83a2145074e2d2083/eb037f59b93d1ee83a2145074e2d20832.gif)
![停車場管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第3頁](http://file4.renrendoc.com/view/eb037f59b93d1ee83a2145074e2d2083/eb037f59b93d1ee83a2145074e2d20833.gif)
![停車場管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第4頁](http://file4.renrendoc.com/view/eb037f59b93d1ee83a2145074e2d2083/eb037f59b93d1ee83a2145074e2d20834.gif)
![停車場管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第5頁](http://file4.renrendoc.com/view/eb037f59b93d1ee83a2145074e2d2083/eb037f59b93d1ee83a2145074e2d20835.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告課題名稱
停車場管系統(tǒng)word檔可自由復(fù)制編輯一、問描述及分析1、問題描述:設(shè)停車場是一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出汽車在停車場內(nèi)按車輛到達時間的先后順序依次由北向南排(大門在最南端,最先到達的第一輛車停放在車場的最北端車場內(nèi)已停滿輛汽車,則后來的汽車只能在門外的便道上等待一旦有車開走則排在便道上的第一輛車即可開入當(dāng)停車場內(nèi)某輛車要離開時在它之后進入的車輛必須先退出車場為它讓路待該輛車開出大門外其他車輛再按原次序進入車場每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用為停車場編制按上述要求進行管理的模擬程序。2、基本要求:以棧模擬停車場以隊列模擬車場外的便道按照從終端讀入的輸入數(shù)據(jù)序列進行模擬管理每一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項汽車“到達”或“離去”信息汽車牌照號碼以及到達或離去的時刻對每一組輸入數(shù)據(jù)進行操作后的輸出信息為若是車輛到達則輸出汽車在停車場內(nèi)或便道上的停車位置若是車輛離去則輸出汽車在停車場內(nèi)停留的時間和應(yīng)交納的費(在便道上停留的時間不收費棧以順序結(jié)構(gòu)實現(xiàn),隊列以鏈表結(jié)構(gòu)實現(xiàn)。3、問題分析此停車場管理系統(tǒng)是在一個狹長的通道上的,而且只有一個大門可以供車輛進出并且要實現(xiàn)停車場內(nèi)某輛車要離開時在它之后進入停車場的車都必須先退出停車場為它讓路其開出停車場后輛再依原來的次序進場的功能,就可以設(shè)計兩個堆棧其中一個堆棧用來模擬停車場另一個堆棧用來模擬臨時停車場臨時停車場用來存當(dāng)有車輛離開時來停車場內(nèi)為其讓路的車輛。至于當(dāng)停車場已滿時需要停放車輛的通道可以用一個鏈隊列來實現(xiàn)當(dāng)停車場內(nèi)開走一輛車時通道上便有一輛車進入停車場此時只需要改變通道上車輛結(jié)點的連接方式就可以了使通道上第一輛車進入停車場這個堆棧并且使通道上原來的第二輛車成為通道上的第一輛車時只需將模擬通道的鏈隊列的頭結(jié)點連到原來的第二輛車上就可以了。4、實現(xiàn)方法對于此停車場管理系統(tǒng)的實現(xiàn),就是用兩個堆棧來分別模擬停車場以及停車場內(nèi)車輛為其它車輛讓路時退出停車的臨時停放地點于通道上車輛的停放則用一個鏈隊列來實現(xiàn)此時通道上車輛的離開或者進入停車場只需改變此鏈隊列上的結(jié)點而已于要對停車場內(nèi)的車輛根據(jù)其停放時間收取相應(yīng)的停車費word檔可自由復(fù)制編輯用可以記錄下車輛進入以及離開停車場的時間再用時間差乘以相應(yīng)的單價并且打印出最后的費用就可以實現(xiàn)了。5、算法描(1)結(jié)構(gòu)體:本程序共有兩個結(jié)構(gòu)體。存儲車輛信息,儲停車場信息,二者定義如下。//輛信息{int//車車號intar_time;//汽車到達時間}zanInode;struct{zanInode停車場的堆棧底zanInode*top;//停車場的堆棧頂intstacksize_curren;}stackhead;//棧的基本操作;(2)函數(shù)設(shè)計:&L)構(gòu)造一個空棧&L,zanInodee)把元素e入s棧pop(stackhead&L,zanInode&e)//把元素彈出s棧initqueue(linkqueue&q)構(gòu)造一個空隊列ar_time)//把元素的插入隊列(屬性為number,ar_time)popqueue(linkqueue&q,queueptr&w)//把元素的插入隊列(屬性為ar_time)&q)//進入停車場的汽車的處理;likai(stackhead&q)對離開的汽車的處理;主函數(shù):#include<iostream.h>main(){intm=100;word檔可自由復(fù)制編輯//進入或離開的標(biāo)識;sting,slinshi;//車場和臨時倒車場堆棧的定義;//列的定義;//構(gòu)造停車場堆棧sting//構(gòu)造倒車場堆棧initqueue(line);//構(gòu)造便道隊列l(wèi)inewhile(m){
費
用:cout<<"***************************
車牌號:進車場時刻|出車場時刻停留時小時應(yīng)元cout<<"===================================================="<<endl;"<<arrivaltime<<"|"<<time_d<<"|cout<<"-----------------------------------------------------"<<endl<<endl;}選擇:(A,D,E):";cin>>flag;switch(flag){//汽車進車場'D':likai(sting,slinshi,line);break;//汽車出車場}m--;}}6、算法說(1)功能模塊說明:停車場管理系統(tǒng)含有三個模塊,即:車輛到達、離開、列表顯示word檔可自由復(fù)制編輯1到達(2)以模塊為單位分析算法
場系統(tǒng)32離開圖1
顯示1模塊到達時有兩種情況即車場是否滿未滿則直接進入停車場;滿時,到便道等待。如圖2進入停車場
圖“離開”模塊:離開時,當(dāng)車庫為空時,提示沒有車,結(jié)束;否則車輛離開。如圖3word檔可自由復(fù)制編輯車輛離開停車場是否空否車輛離開
是提示沒有車是車進入車場
便道是否有車否結(jié)束圖3.“顯示”模塊:顯示模塊有兩個顯示選項,即:車場與便道。如圖。列表顯示判斷輸入值車場顯示車場列
便道顯示便道列結(jié)束圖4二、主要算法流程描述:<stdlib.h>#include<iostream.h>#include<string.h>word檔可自由復(fù)制編輯#include<math.h>1//停車場位置數(shù)//擬停車場的堆棧的性質(zhì);int//車車號intar_time;//汽到達時間}zanInode;struct{zanInode停車場的堆棧底zanInode*top;//停車場的堆棧頂intstacksize_curren;}stackhead;//棧的基本操作;&L)//構(gòu)造一個空棧{L.base=(zanInode*)malloc(size*sizeof(zanlind));if(!L.base)exit(0);L.top=L.base;L.stacksize_curren=0;}&L,zanInodee)//把素壓入棧{*L.top++=e;L.stacksize_curren++;}pop(stackhead&L,zanInode&e)//把元素彈出棧{{cout<<"停車場為空!!";}e=*--L.top;L.stacksize_curren--;word檔可自由復(fù)制編輯}//擬便道的隊列的性質(zhì);int//車車號intar_time;//汽到達時間*next;struct{queueptr//道的隊列的對頭queueptrrear;便道的隊列的隊尾intlength;}linkqueue;//列的基本操作;initqueue(linkqueue&q)//構(gòu)造一個空隊列{q.front=q.rear=(queueptr)malloc(sizeof(duilie));exit(0);q.front->next=NULL;q.length=0;}ar_time)把元素的插入隊列(屬性為number,ar_time){queueptrif(!p)exit(0);p->number=number;p->next=NULL;q.rear->next=p;q.rear=p;q.length++;}word檔可自由復(fù)制編輯popqueue(linkqueue&q,queueptr&w)//把元素的入隊列(屬性為number,ar_time){queueptrif(q.front==q.rear){cout<<"停車場的通道為空!!"<<endl;}p=q.front->next;q.front->next=p->next;q.length--;q.front=q.rear;}&q)對進入停車場的汽車的處理;{intcout<<"車牌為:";cout<<"進場的時刻:";{zanInodee;e.number=number;"該車已進入車在:號車道"<<endl<<endl;}{word檔可自由復(fù)制編輯enqueue(q,number,time_a);cout<<"停車場已滿車先停在便道的第"個位置上"}}likai(stackhead&q)對離開的汽車的處理;{堆棧為停車,堆棧為倒車場int//q為便道隊列cout<<"車牌為:";cout<<"出場的時刻:";zanInodequeueptrw;while(flag)找到要開出的車,并彈出停車場棧{push(sl,e);if(e.number==number){flag=0;money=(time_d-e.ar_time)*2;arrivaltime=e.ar_time;}}pop(sl,e);//把臨時堆棧的第一輛車(要離開的)去掉;把倒車場的車倒回停車場{pop(sl,e);}if(st.stacksize_curren<2&&q.length!=0)//停車場有空位,便道上的車開進入停車場word檔可自由復(fù)制編輯{q_to_s.ar_time=time_d;push(st,q_to_s);車牌"<<q_to_s.number<<"的車已從通道進入停車場在的停車位為:}
費
用:cout<<"***************************
車牌號:進車場時刻|出車場時刻停留時小時應(yīng)元cout<<"===================================================="<<endl;"<<arrivaltime<<"|"<<time_d<<"|cout<<"-----------------------------------------------------"<<endl<<endl;}}main(){intm=100;//進入或離開的標(biāo)識;sting,slinshi;//車場和臨時倒車場堆棧的定義;//列的定義;//構(gòu)造停車場堆棧sting//構(gòu)造倒車場堆棧initqueue(line);//構(gòu)造便道隊列l(wèi)inewhile(m){**停車場管理程序cout<<"==================================================word檔可自由復(fù)制編輯cout<<"**cout<<"**A---汽車車場D---車出車場cout<<"**cout<<"**---出程序
cout<<"==================================================選擇:(A,D,E):";cin>>flag;switch(flag){//汽車進車場'D':likai(sting,slinshi,line);break;//汽車出車場}m--;}}四、使說明:測試數(shù)據(jù)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表示到達(Arrival’表示(‘E’表示輸入結(jié)束(End原始界面word檔可自由復(fù)制編輯車輛1第一天5:00進,車輛2第一天:進入。車輛1于第一天15離開,輸出其停車位置,及停車費用。word檔可自由復(fù)制編輯車輛3于第一天20進入,車輛4于第二天:00進入,車輛5于第二天6:00。word檔可自由復(fù)制編輯3.車輛2于第二天1100離開停車場,車4于第二天:00開停車場,輸出其停車位置,及停車費用。word檔可自由復(fù)制編輯5.退出程序word檔可自由復(fù)制編輯五、調(diào)分析說明:在運行過程中有時確實會出現(xiàn)一些小插曲大都是少加一個括號,加一個標(biāo)點,術(shù)語拼錯了啊等等的小問,經(jīng)過半天的努力全部修改完畢了,還有一個很重要的問題于停車場內(nèi)可以停放的最多車輛數(shù)了測試數(shù)據(jù)的方便,我在程序中,定為了2,在實際使用中,可以改變程度開頭的宏定義以增加停車場的容量棧和隊列可以方便地用線性表的基本結(jié)構(gòu)實現(xiàn)此不少教科書把棧和隊列看作是特殊的操作受限的線性表從抽象數(shù)據(jù)類型的角度看和隊列是與線性表完全不同的數(shù)據(jù)結(jié)構(gòu),因為它們具有不同的操作集合棧和隊列都提供了元素存入、訪問和刪除操作,以及幾個輔助操作,如創(chuàng)建、判斷空等。將棧和隊列運用在這個停車場管理系統(tǒng)中正是發(fā)揮它的最大限,他可以讓這個系統(tǒng)做到很完美,將能表達的全都表達出來。六、課總結(jié):通過這次的課程設(shè)計加深了我《數(shù)據(jù)結(jié)構(gòu)這門課程所學(xué)內(nèi)容的進一步的理解與掌握,使我更能熟練地掌握語言、及數(shù)據(jù)結(jié)構(gòu)等知識的綜合運用同時通過對停車場管理系統(tǒng)的開發(fā)使得我將計算機課程所學(xué)知識與實際問題很好地相聯(lián)接在了一起在這次課程設(shè)計中培養(yǎng)了我開發(fā)一個中小型程序的能力這次對停車場管理統(tǒng)的開發(fā)過程中程序功能成功實現(xiàn)時的欣喜,也有遇到問題、解決問
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙教版數(shù)學(xué)七年級下冊2.1《二元一次方程》(第2課時)聽評課記錄
- 五年級分?jǐn)?shù)乘法口算練習(xí)
- 湘教版數(shù)學(xué)七年級下冊2.1.2《冪的乘方與積的乘方》聽評課記錄1
- 蘇教版小學(xué)四年級上冊數(shù)學(xué)口算題
- 人教版數(shù)學(xué)九年級下冊27.3《位似》聽評課記錄(一)
- 營業(yè)場所租賃合同范本
- 核心員工高層管理人員各崗位保密協(xié)議書范本
- 辦公樓加固改造工程施工合同范本
- 合作開店合同范本
- 三人合伙合作協(xié)議書范本
- 期末 (試題) -2024-2025學(xué)年教科版(廣州)英語四年級上冊
- 解讀國有企業(yè)管理人員處分條例課件
- 湖南省長沙市一中2024-2025學(xué)年高一生物上學(xué)期期末考試試題含解析
- 碳纖維增強復(fù)合材料在海洋工程中的應(yīng)用情況
- 小孩使用手機協(xié)議書范本
- 公司市場分析管理制度
- 焊接材料制造工-國家職業(yè)標(biāo)準(zhǔn)(2024版)
- 江西省2024年中考數(shù)學(xué)試卷(含答案)
- 榆神礦區(qū)郭家灘煤礦(700 萬噸-年)項目環(huán)評
- 2024年200MW-400MWh電化學(xué)儲能電站設(shè)計方案
- 余土外運施工方案
評論
0/150
提交評論