




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、泊車場管理課程設計報告匯總泊車場管理課程設計報告匯總13/13泊車場管理課程設計報告匯總泊車場管理一、課程設計題目內容(1)問題描繪:設泊車場是一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車出入。汽車在泊車場內按車輛抵達時間的先后序次,挨次由北向南擺列(大門在最南端,最初抵達的第一輛車停放在車場的最北端),若車場內已停滿n輛汽車,則今后的汽車只幸好門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當泊車場內某輛車要走開時,在它今后進入的車輛必然先退出車場為它讓路,待該輛車開出大門外,其余車輛再按原序次進入車場,每輛停放在車場的車在它走開泊車場時必然按它逗留的時間長短繳納開銷
2、。試為泊車場編制按上述要求進行管理的模擬程序?;疽螅阂詶DM泊車場,以行列模擬車場外的便道,依據從終端讀入的輸入數據序列進行模擬管理。每一組輸入數據包含三個數據項:汽車?抵達?或?走開?信息、汽車牌照號碼以及抵達或走開的時辰。對每一組輸入數據進行操作后的輸出信息為:假如車輛抵達,則輸出汽車在泊車場內或便道上的泊車地點;假如車輛走開,則輸出汽車在泊車場內逗留的時間和應繳納的開銷(在便道上逗留的時間不收費)。棧以序次結構實現,行列以鏈表結構實現。測試數據:設n=2,輸入數據為:(A,1,5),(A,2,10),(D,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,3
3、5),(D,4,40),(E,0,0)。此中:A表示抵達Arrival);D表示(Departure);E表示輸入結束(End)。實現提示:需另設一個棧,暫時停放為給要走開的汽車讓路而從泊車場退出來的汽車,也用序次儲蓄結構實現。輸入數據按抵達或走開的時辰有序。棧中每個元素表示一輛汽車,包含兩個數據項:汽車的牌照號碼和進入泊車場的時辰。二、自己達成的工作1)定義車輛信息結構體,包含汽車的車牌號碼、抵達泊車場時間、走開泊車場時間;2)定義序次貨倉的結構體,用于模擬泊車場;3)定義鏈式行列的結構體,用于模擬車場外的泊車場;4)定義貨倉和行列的初始化函數;5)設計汽車進入泊車場、走開泊車場、走開收費信
4、息和汽車??繝顩r查問等主要函數;6)主函數:設計泊車場管理菜單,經過菜單項選擇項,調用有關的函數來實現泊車場汽車抵達登記、汽車走開泊車場、汽車停靠查問和退出程序的操作,達成模擬汽車泊車場的整個過程。三、所采納的數據結構數據結構的定義:typedefstructcar/定義車輛信息的結構體longCarNo;/車牌號intAtime;/車抵達時間intDtime;/車走開時間CarNode;typedefstructnode/定義模擬泊車場的序次貨倉CarNodestackMaxsize+1;/棧底不寄存元素,即泊車場共有Masize個地點inttop;/棧頂指針StackCar;typedef
5、structqnode/用行列結點定義,結構泊車場外的單個等候車輛CarNodedata;/數據域structqnode*next;/指針域QNode;typedefstructNode/用行列定義,結構泊車場外的等候便道QNode*front;/隊頭指針QNode*rear;/隊尾指針LinkQueue;四、所設計的函數1)voidStackInitiate(StackCar*s)/貨倉初始化s-top=0;/棧頂置0初始方法:初始化序次棧,只要令棧頂的下標值置為0即可。程序框圖:貨倉的初始化(s)s-top=0初始化成功!2)LinkQueue*Init_LinkQueue(void)/鏈
6、行列的初始化LinkQueue*Q;QNode*p;p=(QNode*)malloc(sizeof(QNode);/*p-next=NULL;Q=(LinkQueue*)malloc(sizeof(LinkQueue);/*Q-front=Q-rear=p;return(Q);開拓頭結點*/開拓鏈隊的指針結點*/初始方法:開拓一個行列的頭結點p,其next指針為空,再開拓鏈隊的指針結點Q,用p來初始化鏈隊結點的隊頭指針和隊尾指針。初始化成功后,返回Q程序框圖:行列的初始化LinkQueue*Q;QNode*pp=(QNode*)malloc(sizeof(QNode)p-next=NULLQ=
7、(LinkQueue*)malloc(sizeof(LinkQueue)Q-front=Q-rear=preturn(Q)初始化成功3)voidArrival(StackCar*car1,LinkQueue*car2)/車輛進入泊車場操作CarNodep;QNode*q;printf(n+請輸入車牌號printf(n車輛抵達登記表(整型,比方:+);1234):);scanf(%d,&p.CarNo);/輸入車牌號if(car1-toptop+;/棧頂指針+1printf(n【汽車順利停放在車場的第%d地點】n,car1-top);while(1)printf(n車輛幾點鐘抵達(%d23點):
8、,n);scanf(%d,&p.Atime);if(p.Atime23|p.Atimestackcar1-top=p;/將車停入泊車場,停放在top地點else/泊車場已停滿車,即棧已滿,則停靠在便道printf(n泊車場已滿,請先在便道等候!有車位時進入車場!n);q=(QNode*)malloc(sizeof(QNode);q-data=p;q-next=NULL;/形成新的結點,保留車輛信息car2-rear-next=q;car2-rear=q;/新結點入隊尾,即車輛進入便道等候printf(+n);算法思想:當車進入車場時,登記車的車牌號,假如泊車場有空位,將車停放在相應的空位,輸出
9、此時車停放的地點,記錄抵達時間;假如泊車場沒有空位,便將車開到便道等候。其過程相當于,當序次棧未滿時,進棧;當序次棧已滿時,沒法入棧,便進入行列。程序框圖:Arrival(StackCar*car1,LinkQueue*car2)CarNodep;QNode*q;提示:輸入車牌號輸入:p.CarNo提示:泊車場已car1-toptop+q-data=p打印車停放的地點q-next=NULcar2-rear-next=q輸入:p.Atimecar2-rear=qcar1-stackcar1-top=p車在便道等候車進入泊車場4)voidoutput(CarNodep)/輸出車走開泊車場走開時間、
10、收費等信息inta,b;while(1)printf(n車輛走開的時間(%d點24點之間的時間):,n);scanf(%d,&(p.Dtime);/輸入車輛走開的小時、分鐘if(p.Dtime24|p.Dtime24|p.Dtimetop0)/泊車場內有車輛停放while(j)printf(n請輸入走開泊車場車輛的車牌號:);scanf(%d,&NO);for(i=1;itop;i+)/查找泊車場內能否存在該車牌號if(car1-stacki.CarNo=NO)k=1;/存在,k=1if(k)while(car1-stackcar1-top.CarNo!=NO)/當泊車場top地點停放的車牌號
11、不為NO時,將該地點的車開入暫時泊車場Temp-top+;Temp-stackTemp-top=car1-stackcar1-top;入棧。暫時車場棧頂指針+1,把車停放在暫時車場car1-top-;出棧。原車場的棧頂置空,棧頂指針-1p=car1-stackcar1-top;/將要走開泊車場的車輛信息賦給pcar1-top-;j=0;/棧頂-1結束whileelseprintf(無此車牌號碼,請從頭輸入!);output(p);/while(Temp-top=1)調用汽車走開泊車場的信息函數/將暫時車場里的車?;氐讲窜噲鯿ar1-top+;car1-stackcar1-top=Temp-st
12、ackTemp-top;Temp-top-;if(n=24)printf(n*已過24點,泊車場管理系統封閉!*n);m=0;elseif(car2-front!=car2-rear)&car1-topfront-next;/t=q-data;/car1-top+;printf(n便道的取隊首結點q拷貝隊首結點的車輛信息%d號車進入車場第%d位置!,t.CarNo,car1-top);while(1)printf(n請輸入%d號車進入車場的時間(%d23點):,t.CarNo,n);scanf(%d,&(t.Atime);/輸入車抵達泊車場的時間if(t.Atime23|t.Atimefron
13、t-next=q-next;/改正隊首指針if(q=car2-rear)car2-rear=car2-front;/*當行列只有一個結點時應防備丟落后尾指針*/car1-stackcar1-top=t;/free(q);車進入泊車場elseprintf(n便道里沒有車n);/便道沒有車,endifelseprintf(n車場里沒有車n);/泊車場內沒有車,endif算法思想:當序次棧不為空時,進行汽車要走開泊車場操作,輸入要走開的車牌號,般配序次棧的數組中能否存在該車牌號的元素(假如未找到,則提示車牌號輸入錯誤,從頭輸入),假如其余的汽車需要為從泊車場走開的車讓路的話,則把這些車暫時寄存在另一
14、個序次棧,待該車走開后,再按原序次返回泊車場。假如便道里有車在等候,則將該車開入泊車場停放。當泊車場內沒車停放時,則提示泊車場沒有車,不可以進行走開泊車場操作。程序框圖:汽車走開泊車場泊車場有車?NY輸入走開泊車場的車牌號需讓路的車進入暫時泊車場,無需讓路直接進行下一步操判斷車場能否Y調用車輛走開停存在此車牌號車場信息函數N暫時泊車場的車無此車牌號,返回泊車場從頭輸入便道能否有N車在等候?Y便道的第一輛提示:便道車進入泊車場里沒有車結束5)voidList1(StackCar*car1)/打印泊車場的車輛inti;if(car1-top0)printf(n車場:);printf(n車牌號t抵達
15、時間n);for(i=1;itop;i+)提示:車場里沒有車!printf(%d,car1-stacki.CarNo);printf(t%d點n,car1-stacki.Atime);elseprintf(n車場里沒有車!n);算法思想:打印棧中的元素,經過一個單循環,打印棧1-top中的元素(車牌號)。程序框圖:StackCar*car1inticar1-topN0?Y打?。很噲隼餂]有車!i=1itopY打印車牌號和抵達時間6)voidList2(LinkQueue*car2)/打印便道中等候的車輛QNode*p;p=car2-front-next;if(car2-front!=car2-r
16、ear)printf(n便道:n車牌號);while(p!=NULL)printf(%dt,p-data.CarNo);p=p-next;elseprintf(n便道里沒有車!n);算法思想:經過行列的隊首指針,一一打印行列中的元素。程序框圖:List2(LinkQueue*car2)QNode*pp=car2-front-nextcar2-front!=Ncar2-rear?Yp!=NULLNY打印車牌號7)/*主函數*/voidmain()提示:便道里沒有車結束StackCarcar1,temp;/定義兩個貨倉,泊車場car1,暫時泊車場car2LinkQueue*car2;/定義一個行列
17、,用于便道停放等候泊車的車輛charchoose;/選項StackInitiate(&car1);StackInitiate(&temp);car2=Init_LinkQueue();printf(=歡迎蒞臨Wings泊車場=n);printf(*入場須知:本泊車場內設%d個泊車位,泊車收費為每小時%d元,*n,Maxsize,price);printf(*泊車超出半小時按一小時計算,不超出不收費.*n);printf(*營業時間:24小時*n);printf(*n);printf(*泊車系統提示*n);printf(=n);投訴監察電話:123-456789:只供模擬一天的汽車停放狀況歡迎蒞
18、臨Wings泊車場while(m)printf(n泊車場管理程序n);printf(=n);printf(*A汽車抵達泊車場*n);printf(*n);printf(*D汽車走開泊車場*n);printf(*n);printf(*F汽車停靠信息*n);printf(*n);printf(*E退出程序*n);printf(=n);printf(請選擇(A,D,F,E):);scanf(%c,&choose);switch(choose)caseA:casea:Arrival(&car1,car2);/車進入泊車場break;caseD:cased:Departure(&car1,&temp,car2);break;/車走開泊車場caseF:casef:printf(n汽車??啃畔⒁挥[表);List1(&car1);List2(car2);printf(n);break;caseE:casee:m=0;break;default:printf(無此選項,請從頭輸入!n);break;while(choose!=n)scanf(%c,&choose);算法思想:設
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集裝箱道路運輸與物流市場分析考核試卷
- 棉花供應鏈管理與優化考核試卷
- 油氣倉儲安全評價與監控考核試卷
- 陶瓷制作中的熱工設備與節能技術考核試卷
- 臨床常見急救救護流程規范
- 多重感染肺炎
- 胎兒窒息臨床急救護理
- 子癇患者的麻醉管理
- AIDS合并口腔念珠菌感染診療體系
- 外科護理局部麻醉
- 中國近代史綱要-期末考試復習重點
- 生命科學導論(中國農業大學)智慧樹知到期末考試答案2024年
- 企業法務概論智慧樹知到期末考試答案2024年
- 植物的花粉與傳粉
- (高清版)DZT 0331-2020 地熱資源評價方法及估算規程
- T-CEA 7027-2024 軌道交通用電梯數據采集智能分析預警系統及智慧運維大數據管理平臺功能要求
- 得寶松封閉治療
- 低壓配電系統維護保養及操作規程
- 肝癌科普講座課件
- 石膏固定術課件
- 閑魚開店運營計劃書模板
評論
0/150
提交評論