版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、word專業(yè)資料數(shù)據(jù)結(jié)構(gòu)課程設(shè)計停車場管理系統(tǒng)目錄TOC o 1-5 h z HYPERLINK l bookmark6 o Current Document 一、課設(shè)目的2 HYPERLINK l bookmark8 o Current Document 二、問題描述2 HYPERLINK l bookmark10 o Current Document 三、基本要求2 HYPERLINK l bookmark12 o Current Document 四、詳細設(shè)計2(1)原理分析2(2)功能模塊3(3)用戶手冊5(4)流程圖6(5)測試用例7(6)測試目的7(7)測試要求7 HYPERLIN
2、K l bookmark16 o Current Document 五、程序源碼7六、測試結(jié)果13 HYPERLINK l bookmark18 o Current Document 七、課設(shè)總結(jié)14 HYPERLINK l bookmark20 o Current Document 八、參考文獻15一、課設(shè)目的(1)了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力;(2)初步掌握軟件開發(fā)過程中的問題分析,系統(tǒng)設(shè)計,程序編碼,測試等基本方法和技能;(3)提高綜合應用所學的理論知識和方法獨立分析和解決問題的能力;(4)訓練用系統(tǒng)的觀點和軟件開發(fā)和一般規(guī)進行軟件開發(fā),培養(yǎng)軟件工作者
3、所應具有的科學的工作方法和作風。二、問題描述設(shè)停車場只有一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場按車輛到達時間的先后順序,依次由北向南排列(大門在最南端,最先到達的第一輛車停放在車場的最北端),若車場已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當停車場某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。試為停車場編制按上述要求進行管理的模擬程序。三、基本要求以棧模擬停車場,以隊列模擬車場外的便
4、道,按照從終端讀入的輸入數(shù)據(jù)序列進行模擬管理。每一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項:汽車“到達”或“離去”信息、汽車牌照及到達或離去的時刻,對每一組輸入數(shù)據(jù)進行操作后的輸出數(shù)據(jù)為:若是車輛到達,則輸出汽車在停車場或便道上的停車位置;若是車離去,則輸出汽車在停車場停留的時間和應交納的費用(在便道上停留的時間不收費)。棧以順序結(jié)構(gòu)實現(xiàn),隊列以鏈表實現(xiàn)。四、詳細設(shè)計(1)原理分析:棧是一種只能在一段進行輸入和輸出操作的線性表,表尾稱為棧頂,表頭稱為棧底。棧的主要特點是“后進先出”,即后進棧的元素先處理,停車場的容量即為棧的存儲空間。隊列是限定僅能在表的一段進行插入,在表的另一端進行刪除的線性表。隊列中可以插
5、入的一段稱為隊尾,可以刪除的一端稱為隊首。隊列的主要特點是“先進先出”。停車場管理系統(tǒng)是充分利用數(shù)據(jù)結(jié)構(gòu)中棧和隊列的思想實現(xiàn)的,用到兩個堆棧,一個用來模擬停車場另一個為臨時棧,存儲為離開停車場的車輛讓道的其他車輛;一個隊列結(jié)構(gòu),存儲便道的車輛信息。typedefstruet定義棧,表示停車場CarNode*base;停車場的堆棧底CarNode*top;停車場的堆棧頂intstacksize;/停車場的容量Park;typedefstruct定義隊列,表示便道CarPtrfront;便道的隊列的隊頭CarPtrrear;/便道的隊列的隊尾intlength;Shortcut;(2)功能模塊:車
6、輛到達:a、若棧不滿,車輛進棧,停到停車場;b、若棧滿,車輛入隊,停到便道;StatusArrival(Park&P,Shortcut&S)intnumber,ar_time;printf(請輸入車牌號:);scanf(%d,&number);printf(進場的時刻:);scanf(%d,&ar_time);if(P.stacksizenumber;Push(P,m);/便道中的車開入停車場free(w);printf(車牌號為d的車已由便道進入停車場n,m.number);printf(停車費%d,占用車位數(shù)為dn,money,P.stacksize);elseprintf(停車場不存在牌
7、號%d的車n,number);returnOK;(3丿用戶手冊:輸出菜單選項;請選擇(A,D,E):如果選擇A,即車輛到達:若棧不滿,車輛進棧,停到停車場;若棧滿,車輛入隊,停到便道;如果選擇D,即車輛離開:計算時間及費用;如果隊列不空且棧不滿,隊列上的車出隊入棧;如果選擇E,則退出程序。4)流程圖:圖一、函數(shù)關(guān)系調(diào)用圖圖二、操作流程圖測試用例:A1,5),A2,10),D1,15丿,A3,20),A4,25),A5,30),CD2,35),CD4,40),E0,0)。毎一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項:汽車“到達”或“離去”信息、汽車牌照及到達或離去的時刻,其中,A表示到達,D表示離去,E表示輸入
8、結(jié)束。測試目的:測試菜單顯示方法,到達方法和離開方法能否正確完成,時間和費用計算是否正確。測試要求:測試用例要合理并足夠,既要有正確用例,也要有錯誤用例,檢驗程序的正確性和健壯性。五、程序源碼#include#include#include#defineOK1函數(shù)返回狀態(tài)代碼,宏定義#defineERROR0#defineTRUE1#defineFALSE0#defineINFEASIBLE-1#defineOVERFLOW-2#defineSIZE2/停車場位置數(shù)#definePRICE2typedefintStatus;/棧,模擬停車場typedefstructCar1定義一個結(jié)構(gòu)體來表示
9、停車場中的車intnumber;/汽車車號intar_time;/汽車到達時間CarNode;typedefstruct定義棧,表示停車場CarNode*base;/停車場的堆棧底CarNode*top;停車場的堆棧頂intstacksize;/停車場的容量Park;typedefintStatus;/隊列,模擬便道typedefstructCar2用另一個結(jié)構(gòu)體來表示便道中停放的車intnumber;/汽車車號intar_time;/汽車到達時間structCar2*next;*CarPtr;typedefstruet定義隊列,表示便道CarPtrfront;便道的隊列的隊頭CarPtrre
10、ar;/便道的隊列的隊尾intlength;Shortcut;StatusInitStack(Park&P)/初始化停車場P.base=(CarNode*)malloc(SIZE*sizeof(Car1);if(!P.base)exit(OVERFLOW);P.top=P.base;P.stacksize=0;returnOK;StatusPush(Park&P,CarNodee)*P.top+=e;+P.stacksize;returnOK;StatusPop(Park&P,CarNode&e)車離開停車場,棧的輸出操作if(P.top=P.base)printf(停車場為空.);elsee
11、=*-P.top;-P.stacksize;returnOK;StatusInitQueue(Shortcut&S)S.front=S.rear=(CarPtr)maIIoc(sizeof(Car2);初始化便道if(!S.front|!S.rear)exit(OVERFLOW);S.front-next=NULL;S.Iength=0;returnOK;StatusEnQueue(Shortcut&S,intnumber,intar_time)CarPtrp;p=(CarPtr)maIIoc(sizeof(Car2);if(!p)exit(OVERFLOW);p-number=number;
12、p-ar_time=ar_time;p-next=NULL;S.rear-next=p;S.rear=p;+S.Iength;returnOK;StatusDeQueue(Shortcut&S,CarPtr&w)if(S.Iength=0)printf(通道為空.);eIsew=S.front-next;S.front-next=S.front-next-next;-S.length;returnOK;StatusArrival(Park&P,Shortcut&S)intnumber,ar_time;對進站車輛的處理:printf(請輸入車牌號:);/記錄車牌號,時間,并根據(jù)停車場scanf(
13、%d,&number);/是否滿來判斷入棧還是入隊列printf(進場的時刻:);scanf(%d,&ar_time);if(P.stacksizenumber;Push(P,m);/便道中的車開入停車場free(w);printf(車牌號為d的車已由便道進入停車場n,m.number);printf(停車費%d,占用車位數(shù)為dn,money,P.stacksize);elseprintf(停車場不存在牌號%d的車n,number);returnOK;intmain()intm=1;charflag;/選項ParkP,Q;ShortcutS;InitStack(P);InitStack(Q);
14、InitQueue(S);while(m)printf(n停車場管理程序n);printf(n);printf(請選擇(A,D,E):);scanf(%c,&flag);switch(flag)caseA:casea:Arrival(P,S);break;/車進入停車場caseD:cased:Leave(P,Q,S);break;/車離開停車caseE:casee:m=0;break;default:printf(Inputerror!n);break;caseE:while(flag!=n)scanf(%c,&flag);六、測試結(jié)果停車場管理程序請選擇(A,D,E):A請輸入李牌丁1進場的
15、時靈坨該車應停在第1號車道.停車場管理程序請選擇(札DJ):A請輸入車牌弓:2進場的時刻:10該車應停在第2號車道.停車場管理程序請選擇(A,D,E):D請輸入車牌弓:1出場的時刻停車費為26占用位數(shù)為1停車場管理程序請選擇(A,D,E):A請輸入車牌弓:3進場的時刻亡0該車應停在第2號車道.停車場管理程序請選擇(扎D,E):A請輸入軍牌號:4進場的時刻:藥停車場己滿,請暫時停在便道的第1個位置.停車場管理程序請選擇(扎幾E):A請輸入車牌號:5進場的時刻:30停車場己滿,諳暫時停在便道的第2個位置.停車場管理程序請選擇(A,D,E);D請輸入李牌號:2岀場的時刻:3車牌號為4的車亡由便道進入
16、停車場停車費為5厲占用車位數(shù)為2停車場管理程序請選擇(A,D*E);D請輸入車牌弓:4岀場的時K:40車牌弓為5的車己由便道進入停車場停車費為10,占用車位數(shù)為2停車場管理程序請選擇(A,D,E):EProcessexitedafter110secondswithreturnvalue0請按任意鍵繼續(xù)七、課設(shè)總結(jié)通過這次課程設(shè)計,我充分理解了用棧和隊列實現(xiàn)模擬停車場的基本原理,探究了棧的順序存儲結(jié)構(gòu)和隊列的鏈式存儲結(jié)構(gòu)的定義和算法描述,同時也學會了編寫停車場問題的程序。雖然此次的程序比較簡單,沒有加入一些更完善的功能,但總體上來說比較完整,實現(xiàn)了基礎(chǔ)功能。在實踐的過程中,我了解到了自己的一些不足,因為很多書寫錯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年手術(shù)室護理工作計劃例文
- 2025年小學一年級第二學期語文教學工作計劃
- 2025數(shù)學教師工作計劃 2025教師工作計劃
- 光纖傳輸?shù)牟ǚ謴陀迷O(shè)備行業(yè)相關(guān)投資計劃提議
- 電磁電工銷售工作總結(jié)
- 班主任工作總結(jié)細心呵護關(guān)愛校園
- 人力資源領(lǐng)域的智能招聘系統(tǒng)
- 保險行業(yè)的離職手續(xù)
- 血液科技師的血液疾病診斷工作總結(jié)
- 教師教研能力培養(yǎng)探討
- 農(nóng)作物植保員培訓課件
- 2024韓束品牌拆解-蟬媽媽
- 建筑企業(yè)合同管理培訓課件
- 非急救轉(zhuǎn)運公司計劃書
- 2023年中國軟件行業(yè)基準數(shù)據(jù)SSM-BK-202310
- 天津市部分區(qū)2023-2024學年高一上學期期末練習生物試題【含答案解析】
- 稀土鋁合金電纜項目招商引資方案
- 人教版六年級數(shù)學下冊全冊分層作業(yè)設(shè)計含答案
- 面點專業(yè)職業(yè)生涯規(guī)劃與管理
- 紀梵希服裝營銷方案
- 農(nóng)耕研學基地可行性方案
評論
0/150
提交評論