版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、計算機工程學院課程設計報告課程名稱:數(shù)據(jù)結構課程設計設計主題:停車場管理系統(tǒng)目錄 TOC o 1-3 h z u HYPERLINK l _Toc312756983 一、需求分析 PAGEREF _Toc312756983 h 1 HYPERLINK l _Toc312756984 課程設計 PAGEREF _Toc312756984 h 課題1 HYPERLINK l _Toc312756986 1.2基本要求 PAGEREF _Toc312756986 h 1 HYPERLINK l _Toc312756987 1.4課程設計理念 PAGEREF _Toc312756987 h 1 HYP
2、ERLINK l _Toc312756988 1.5軟件運維工具 PAGEREF _Toc312756988 h 1 HYPERLINK l _Toc312756989 2.外形設計 PAGEREF _Toc312756989 h 1 HYPERLINK l _Toc312756990 2.1方案總體說明 PAGEREF _Toc312756990 h 1 HYPERLINK l _Toc312756991 2.2結構說明 PAGEREF _Toc312756991 h 1 HYPERLINK l _Toc312756992 2.3算法設計思路及流程圖 PAGEREF _Toc31275699
3、2 h 2 HYPERLINK l _Toc312756993 3.詳細設計 PAGEREF _Toc312756993 h 6 HYPERLINK l _Toc312756994 3.1車輛到港登記 PAGEREF _Toc312756994 h 6 HYPERLINK l _Toc312756995 3.2車輛發(fā)車記錄 PAGEREF _Toc312756995 h 6 HYPERLINK l _Toc312756996 3.3車輛信息顯示 PAGEREF _Toc312756996 h 8 HYPERLINK l _Toc312756997 四、調(diào)試及操作說明 PAGEREF _Toc3
4、12756997 h 10 HYPERLINK l _Toc312756998 總結 PAGEREF _Toc312756998 h 12 HYPERLINK l _Toc312756999 到 PAGEREF _Toc312756999 h 12 HYPERLINK l _Toc312757000 參考文獻 PAGEREF _Toc312757000 h 121、需求分析課程設計主題設計一個停車場管理系統(tǒng)來模擬停車場的運行。1.2 基本要求利用數(shù)據(jù)結構的知識,需要用棧來模擬停車場,用隊列來模擬停車場外的人行道。需要處理的數(shù)據(jù)元包括三個數(shù)據(jù)項:車輛“到站”或“離站”信息、車牌和到站或離站時間;
5、1.3 課程設計的任務系統(tǒng)主要實現(xiàn)以下功能:1、車輛到站信息登記:包括車牌號、到站時間、停車場內(nèi)停車位置等;2、車輛出發(fā)記錄:包括出發(fā)時間、在停車場停留時間、停車費等;3、信息顯示:顯示到車時的停車場、到站緊急位置等基本信息;1.4 課程設計理念完成車輛進出停車場的程序應用棧是一個數(shù)據(jù)進出棧的過程。如果停車場(堆)滿了,則將車輛放在人行道(隊列)上;使用費在車輛離開時計算,人行道上的第一輛車停在該車輛位置。1.5 軟件運行開發(fā)工具1 、 Windows 2000或以上操作系統(tǒng)2.Visual C+6.0開發(fā)環(huán)境2. 外形設計2.1 方案總體說明程序使用了一個類,五個結構(車輛信息,時間信息,棧
6、,鏈表和隊列),兩個棧(其中一個是臨時棧),以及八個函數(shù)(棧和隊列初始化,車輛到達)。主要功能。和出發(fā)登記,收費系統(tǒng),車輛和人行道列表,總顯示列表)。2.2 結構說明2.2.1 車輛信息的表示車輛可以看成一個節(jié)點,設計成一個結構,車輛信息包括:車牌、進站時間和離開停車場的時間。定義如下:結構 CarNode字符數(shù)10; /車牌時間到達; / 到達時間時間休假; / 離開時間;2.2.2 時間、棧和隊列的定義時間用小時和分鐘表示,有兩部分數(shù)據(jù),所以設計了兩個變量分別存儲小時和分鐘。定義如下:結構時間小時;最小;停車場表示為堆棧:結構 SeqStack節(jié)點CarNode*元素 n +1; / 順序
7、棧詮釋頂部;人行道上的車輛由隊列表示:struct QueueNode carCarNode *數(shù)據(jù); / 臨時存儲人行道上汽車的鏈表結構QueueNodecar *next;結構鏈接隊列節(jié)點隊列節(jié)點 *前面; /設置頭指針,尾指針隊列節(jié)點*后;;2.3算法設計思路及流程圖2.3.1 主要功能功能說明1. void CarStack(SeqStackNode *s) /車輛節(jié)點入棧當堆棧未滿時,將到達的車輛推入堆棧。2. void CarQueue(LinkQueueNode *q) /車輛節(jié)點入隊當堆滿時,車輛進入人行道上的隊列。3. void Arrival(SeqStackNode *E
8、nterCar,LinkQueueNode *QueueCar) /車輛到達登記當車輛到達時,首先登記車輛牌照。然后判斷停車場是否已滿,未滿入棧,滿時停在人行道上,入隊。4. voidLeave(SeqStackNode*LeaveCar,SeqStackNodeTempStack,LinkQueueNode *QueueCar) /車輛出站處理通過輸入車輛離開車輛的位置,然后調(diào)用Charge (CarNode *p)函數(shù)進行充電處理。然后判斷人行道上是否有車,如果有,將人行道上的車放入停車場。5. void List(SeqStackNode s, LinkQueueNode q) /顯示停
9、車場和人行道上車輛的情況使用 switch() 函數(shù)選擇在停車場或人行道上顯示車輛狀態(tài)。包括對以下兩個子函數(shù)的調(diào)用: void List1(SeqStackNode *s)和void List2(LinkQueueNode *q) /分別顯示停車場和人行道上的車輛情況6. void Charge (CarNode *p ) / 車輛離場費該函數(shù)由車輛離開的函數(shù)調(diào)用,費用以分鐘為單位計算,但只能計算當天的費用,如果是第二天,賬單就會為負數(shù)或減少。即只能當天停車,當天開車離開。2.3.2 主要模塊算法描述及流程圖1、車輛到達:先定義一個stack和queue的結構體指針為:*p和*t,然后申請一個
10、車輛信息的存儲空間,賦值給棧指針。車輛到達時,輸入車牌號,使用if(Enter Car - top +1 top = 0)保證棧不為空,然后使用while(1 )確保輸入車輛離開地點的合法性。如果不合法,則會顯示輸入錯誤,需要重新輸入。通過if(loc=1&loctop+1)判斷離開車輛的位置,如果是中間位置,則使用臨時開在棧前的車。待要開的車開出來后,再看臨時堆里的車進停車場,調(diào)用Charge (p)函數(shù)計算停車時間顯示費。然后使用if(QueueCar - front != QueueCar - rear) & LeaveCar - top n)語句判斷人行道上是否有車。如果有車,應顯示進
11、入停車場的汽車的車牌號,并登記進入時間。并執(zhí)行相應的出列和推送操作。N車輛進停車場是否有車進入停車場記錄信息回主菜單進入便道記錄信息YN車輛進停車場是否有車進入停車場記錄信息回主菜單進入便道記錄信息Y圖 2.1 車輛進入流程車輛離開車輛離開停車場有車返回主菜單離開計算費用釋放車位便道有車第一輛進入停車場記錄信息有沒有有沒有圖 2.2 車輛出發(fā)流程2.3.3 整體模塊流程圖開始開始初始化兩個棧Enter和Temp與一個隊列Wait。進入主菜單車輛到達車輛離開退出loc前車輛進臨時棧對loc計費便道車信息車場內(nèi)信息判便道是否有車車場是否為空列表顯示棧EnterCar元素出棧隊列中元素進棧對列Wai
12、tCar中元素出隊元素進棧EnterCar便道車進車場元素進隊列WaitCar判斷棧是否為滿結束退出列表顯示是否否是否是3. 詳細設計根據(jù)功能模塊的描述,主要實現(xiàn)三個功能3.1 車輛到港登記void Arrival(SeqStackNode *EnterCar,LinkQueueNode *QueueCar) /車輛進入車節(jié)點 *s; /定義一個指向傳入車輛的指針隊列節(jié)點車 *q; /定義一個指針,指向進入人行道的汽車s = 新汽車節(jié)點; /最后一個連接到隊列頭節(jié)點停車場的汽車節(jié)點cout s - 數(shù)字;if(EnterCar - top+1 頂部+; /初始指針為-1,加1coutn 車輛在
13、 top+1 位置。endl;couts - 到達.小時;cins - 到達.min;EnterCar - 元素EnterCar - top = s; /給棧元素加1返回 1;別的coutn車輛必須在人行道上等候,當有車位時進入停車場! 數(shù)據(jù) = s; /鏈表指針加1q - 下一個 = NULL;QueueCar - 后方 - 下一個 = q; /隊列進入一個元素QueueCar - 后方 = q;返回0;3.2 車輛發(fā)車記錄void Leave(SeqStackNode *LeaveCar,SeqStackNode *TempStack,LinkQueueNode *QueueCar) /車
14、輛離開國際定位;汽車節(jié)點 *p,*t; /定義兩個車輛信息指針,一個用于存放下車信息; one用于存放人行道上第一輛車的臨時節(jié)點,存放在棧中隊列節(jié)點車 *q;if(LeaveCar - top 0) /判斷停車場是否為空而(1)coutn請輸入汽車在停車場的位置/1- toploc;if(loc = 1 & loc top)休息;別的cout輸入錯誤,請重試! top loc) /驅(qū)動要刪除的車輛后面的車進入臨時棧臨時堆棧-頂部+;TempStack - stackTempStack - top = LeaveCar - stackLeaveCar - top;LeaveCar - 堆棧Lea
15、veCar - top = NULL;離開汽車-頂部-;p = LeaveCar - 堆棧LeaveCar - top; /將要刪除的車輛節(jié)點分配給pLeaveCar - 堆棧LeaveCar - top = NULL;離開汽車-頂部-;while(TempStack - top = 1) /將臨時棧中的車輛放入停車場離開汽車-頂部+;LeaveCar - stackLeaveCar - top = TempStack - stackTempStack - top;TempStack - 堆棧TempStack - 頂部 = NULL;臨時堆棧-頂部-;收費(p); /調(diào)用計費系統(tǒng)if(Que
16、ueCar - front != QueueCar - rear) & LeaveCar - top 前 - 下一個;t = q - 數(shù)據(jù);離開汽車-頂部+;coutn 人行道的“ 號”車在“ top”位置進入停車場。endl;coutn number 車號進入停車場的時間為: leave.hour: leave.分鐘 前 - 下一個 = q - 下一個;如果(q = QueueCar - 后部)QueueCar - 后部 = QueueCar - 前部;LeaveCar - 堆棧LeaveCar - top = t;刪除q;別的coutn人行道上沒有汽車。nendl;別的coutn停車場沒有
17、車。頂部 0)coutn 倉庫列表:endl;coutn位置到達時間車牌號nendl;for(int i = 1; i top; i+)cout i;coutt stacki -reach.hour:堆棧i - 到達.min;coutt stacki - numberendl;別的coutn停車場沒有車。 前面 - 下一個;如果(q - 前!= q - 后)coutn 等待車輛的車牌為:endl;而(p!= NULL)cout 數(shù)據(jù) - 數(shù)字 下一個;別的coutn人行道上沒有車。endl;void List(SeqStackNode s,LinkQueueNode q) /顯示選擇列表整數(shù)選
18、擇;詮釋條件 = 1;而(條件)cout *endl;coutn 1. 停車場列表n 2. 進入道路列表n 3. 返回主菜單nendl;cout *endl;cout選擇;如果(選擇 = 1 & 選擇 = 3)休息;別的coutn 請輸入:1-3:;switch(choice) /列表函數(shù)調(diào)用情況1:List1(&s);休息;案例2:列表2(&q);休息;案例3:條件 = 0;休息;默認:休息;四、調(diào)試及操作說明執(zhí)行程序后,進入歡迎界面:按1進入車輛到站登記界面,輸入車牌號和時間:圖 4.1 車輛到站登記流程停車場已滿,汽車進入人行道:圖 4.2 進出人行道的車輛流向按2下車,輸入車輛在停車場
19、的位置和發(fā)車時間,顯示停車時間并結算費用,人行道上的第一輛車進入停車場,并顯示進入時間:圖 4.3 車輛出發(fā)收費流程按3進入列表顯示界面,再按1顯示停車場列表:圖 4.4 停車場車輛列表顯示流程再按2進入顯示人行道列表顯示:圖 4.5 人行道等候車輛列表顯示流程摘要我在這門課程的設計中學到了很多知識。將自己在數(shù)據(jù)結構課程中所學的東西系統(tǒng)地應用起來,將所學的東西綜合運用起來,加深了對C+一些知識的應用。在課程設計和分析的過程中,遇到了很多問題,寫代碼的時候問題就更加明顯了。雖然我可以表達我的想法,但我在編程中總是有很多錯誤和錯誤。地方。由此可以看出,這門課程的學習過程中存在很多不足,需要掌握的也很多。雖然最終完成了整個程序的分析和設計,但是我還有很多問題需要改進,比如結構體的定義,棧和隊列的初始化和使用,也可以通過類的定義來解決.在不斷的深入研究中得到了很大的改進和完善。在這門課程的整體設計中,我收獲頗豐,包括堆棧和隊列的應用,鏈
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中小企業(yè)板塊證券上市協(xié)議模板
- 中國深圳對外貿(mào)易貨物出口合同
- 2025年家具買賣合同
- 小學英語期末不同主題范文20篇(含中文注釋)
- 2025年資料員年終工作總結(4篇)
- 梭車安全技術操作規(guī)程(3篇)
- 井下供電負荷審批制度模版(3篇)
- 2025年中學工作計劃樣本(三篇)
- 安全生產(chǎn)績效考核工作方案(2篇)
- 信用村實施方案例文(二篇)
- 肺脹中醫(yī)護理方案.ppt
- 壓力管道安裝作業(yè)指導書課件
- 采礦學課程設計_圖文
- 裝飾辦公室工作總結
- 《管理學原理與方法》周三多第六版
- 物業(yè)接管驗收必須具備的條件
- 六年級上冊英語教案unit 5 What does he do人教
- 井蓋及踏步97S147(97S501-1、2)
- 口內(nèi)病例分析
- 壓力管道內(nèi)審記錄(共5頁)
- 堵蓋與膠貼在車身堵孔方面的應用
評論
0/150
提交評論