




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
指導(dǎo)教師:數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐報(bào)告班級(jí):小組成員:
問題描述:
停車場(chǎng)停車管理系統(tǒng):設(shè)一個(gè)可以停放n輛汽車停車場(chǎng),只有一個(gè)大門可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序停放,若車場(chǎng)內(nèi)已停滿n輛車,那么后來的車只能在門外的便道上等候;一旦有車開走,則排在便道上的第一輛車即可開入。當(dāng)停車場(chǎng)內(nèi)某輛車要離開時(shí),在它之后進(jìn)入的車輛必須先依次退出車場(chǎng)為它讓路,待該輛車開出大門外,其它車輛再按原次序進(jìn)入車場(chǎng)。每輛停放在車場(chǎng)的車在它離開停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。
問題描述及分析需求分析:
(1)題目中要根據(jù)車輛停留時(shí)間收費(fèi),故在定義結(jié)構(gòu)體時(shí)還需要一個(gè)時(shí)間的結(jié)構(gòu)體用來保存車輛到達(dá)和離開的時(shí)間。(2)由于停車場(chǎng)的進(jìn)出符合棧的“后進(jìn)先出,先進(jìn)后出”的操作特點(diǎn),因此,需要設(shè)一個(gè)棧來模擬停車場(chǎng)。(3)根據(jù)便道停車的特點(diǎn),先排隊(duì)的車輛先離開便道進(jìn)入停車場(chǎng),符合隊(duì)列的“先進(jìn)先出,后進(jìn)后出”的操作特點(diǎn),因此,需要用一個(gè)隊(duì)列來模擬便道。(4)而中間車輛提出離開停車場(chǎng),后到達(dá)的車輛都須先離開停車場(chǎng)為它讓路,然后這些車輛再依原來次序進(jìn)入停車場(chǎng),而這個(gè)同樣符合“后進(jìn)先出,先進(jìn)后出”的特點(diǎn),因此還需一個(gè)棧來作為臨時(shí)保存車輛的地方。問題描述及分析一、功能模塊及數(shù)據(jù)結(jié)構(gòu)描述功能模塊圖:停車場(chǎng)停車管理系統(tǒng)車輛到達(dá)車輛離開信息查詢進(jìn)入停車場(chǎng)若滿進(jìn)便道停車場(chǎng)信息查詢便道信息查詢車輛出停車場(chǎng)打印賬單便道車進(jìn)停車場(chǎng)管理員密碼驗(yàn)證一、功能模塊及數(shù)據(jù)結(jié)構(gòu)描述數(shù)據(jù)結(jié)構(gòu)描述:
(1)車輛信息的表示車輛可以看成是一個(gè)節(jié)點(diǎn),設(shè)計(jì)成一個(gè)結(jié)構(gòu)體,車輛信息包括:車牌號(hào),車輛到達(dá)時(shí)間,車輛離開時(shí)間,定義如下: typedefstructnode { charnum[10];//車牌號(hào)
Timereach;//保存車輛到達(dá)的時(shí)間
Timeleave;//保存車輛離開的時(shí)間 }CarNode;一、功能模塊及數(shù)據(jù)結(jié)構(gòu)描述(2)時(shí)間、棧和隊(duì)列的定義 時(shí)間有小時(shí)、分鐘和秒表示,即設(shè)計(jì)三個(gè)變量分別表示如下: typedefstructtime { inthour; intmin; intsec; }Time; 停車場(chǎng)內(nèi)用棧表示: typedefstructNODE { CarNode*stack[Max+1];//棧用順序表示
inttop; }SqStackCar;一、功能模塊及數(shù)據(jù)結(jié)構(gòu)描述
便道上的車輛表示: typedefstructcar { CarNode*data;//便道上的車用鏈表表示
structcar*next; }QueueNode; typedefstructNode { QueueNode*head;//設(shè)置頭指針、尾指針
QueueNode*rear; }LinkQueueCar;二、主要算法流程描述及部分核心算法(1)主函數(shù)的算法流程描述:主函數(shù)流程圖二、主要算法流程描述及部分核心算法(2)核心算法流程描述:
☆車輛到達(dá):Arrival函數(shù)主要通過if(Enter->top<Max)來判斷到達(dá)車輛是進(jìn)車場(chǎng)還是進(jìn)便道,如果進(jìn)車場(chǎng),就把top加1,同時(shí)記錄進(jìn)車場(chǎng)的位置和時(shí)間,然后結(jié)點(diǎn)進(jìn)棧;如果進(jìn)便道,進(jìn)行隊(duì)列操作。
如下圖:二、主要算法流程描述及部分核心算法☆車輛到達(dá):Leave函數(shù)首先定義一個(gè)position變量來記錄要離開車輛的位置,用if(Enter->top>0)來保證棧不空,進(jìn)而執(zhí)行以下操作,然后用while(1)來確保輸入要離開車輛位置的合法性,在由while(Enter->top>position)來判斷離開車輛位置是否在最后,若在最后可直接離開,并打印賬單;若不是最后,則用臨時(shí)棧執(zhí)行操作。二、主要算法流程描述及部分核心算法離開函數(shù)的算法流程如下圖:三、使用說明程序名為停車場(chǎng)停車管理系統(tǒng).exe,運(yùn)行環(huán)境為VisualC++6.0?!餃y(cè)試數(shù)據(jù):
最大容量Max定義為2,收費(fèi)標(biāo)準(zhǔn)為0.01元/秒默認(rèn)密碼為:abc
依次選擇1并錄入的車牌號(hào)信息為:豫E8888,豫E6666,豫E9999。選擇2并輸入車輛離開位置為1?!锍绦驁?zhí)行后顯示:★程序執(zhí)行后顯示:三、使用說明輸入密碼正確后進(jìn)入如下界面:輸入收費(fèi)標(biāo)準(zhǔn)(任意數(shù)字)后,進(jìn)入主界面:★程序執(zhí)行后顯示:.三、使用說明SELECT:在select后輸入數(shù)字選擇執(zhí)行不同的功能。選擇1:之后輸入車牌號(hào),打印出車輛到達(dá)信息。然后返回主界面。..三、使用說明選擇2:之后輸入要離開車輛的位置,打印出車輛的離開信息及賬單,并 顯示便道車輛進(jìn)入停車場(chǎng)的信息。然后返回主界面。...三、使用說明選擇3:進(jìn)入信息查詢菜單,分為停車場(chǎng)信息、便道信息和返回主菜單選項(xiàng)
查詢便道信息界面
...四、問題及解決辦法1、怎樣來獲取車輛到達(dá)和離開的時(shí)間信息? 解決途徑:通過查詢相關(guān)書籍,調(diào)用time.h和conio.h的頭文件及相關(guān)函數(shù),可以獲取系統(tǒng)當(dāng)前的時(shí)間。2、在開始輸入車牌號(hào)的字符串時(shí)總是出錯(cuò),便不能再執(zhí)行。
解決途徑:通過上網(wǎng)查資料知道,輸入字符時(shí)習(xí)慣性的會(huì)加Enter鍵然后再輸下一個(gè),這樣相當(dāng)于Enter也作為一個(gè)字符讀入,在輸入前加上flushall()函數(shù),用于清除輸入的所有緩沖區(qū)即可。四、問題及解決辦法3、車輛離開時(shí)的輸出信息中位置和車牌號(hào)不相符,導(dǎo)致信息查詢中的信息也不正確。
解決途徑:經(jīng)分析知道,開始出棧入棧的具體過程還沒有分析透徹,中間車輛離開時(shí),在其后的車輛進(jìn)臨時(shí)棧后要再調(diào)用Pop函數(shù),其才能出棧成功,否則,相當(dāng)于沒有離開停車場(chǎng),打印信息便會(huì)出錯(cuò)。
但是這個(gè)程序目前還是有缺點(diǎn)尚未解決,如: 1、可以記錄車輛停留多天的記錄而不是當(dāng)天。 2、如果便道的車離開,可以實(shí)現(xiàn)其離開且不收費(fèi)。 3、若輸入車牌號(hào)信息重復(fù),則顯示輸入錯(cuò)誤??偨Y(jié)通過這次對(duì)于停車場(chǎng)停車管理系統(tǒng)的設(shè)計(jì),我們的收獲如下:1、我們更深一步地體會(huì)到算法的應(yīng)用,它的靈活性決定了它的廣泛用途。2、并且通過這個(gè)課程設(shè)計(jì),我們加強(qiáng)了對(duì)數(shù)據(jù)結(jié)構(gòu)知識(shí)的理解和掌握,尤其是棧和隊(duì)列的應(yīng)用。3、培養(yǎng)了我們嚴(yán)肅認(rèn)真的做事作風(fēng),如果想要完成一項(xiàng)完美的設(shè)計(jì),是需要正視的態(tài)度,絕對(duì)的耐心和縝密的思維的??偨Y(jié)4、這個(gè)設(shè)計(jì)培養(yǎng)了我們發(fā)現(xiàn)并解決問題的能力,學(xué)會(huì)查找相關(guān)資料來尋找解決方案,并擴(kuò)展了知識(shí)面。5、最重要的是,通過我們共同完成這個(gè)設(shè)計(jì),我們體會(huì)到團(tuán)隊(duì)之間協(xié)調(diào)與合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土地預(yù)定買賣契約書
- 第六單元 百分?jǐn)?shù)(一)( 講義)-2025-2026學(xué)年六年級(jí)上冊(cè)數(shù)學(xué)人教版
- 小學(xué)二年級(jí)數(shù)學(xué)上冊(cè)應(yīng)用題專項(xiàng)練習(xí)(每日一練共14份)
- 2025年光敏電阻試題及答案
- 浙江省溫州市甌海區(qū)2022-2023學(xué)年四年級(jí)上學(xué)期科學(xué)期末試卷
- 2025年《行政處罰法》知識(shí)試題庫及參考答案
- 客戶關(guān)系管理在家電企業(yè)售后服務(wù)中的應(yīng)用考核試卷
- 知識(shí)產(chǎn)權(quán)保護(hù)與管理考核試卷
- 閱讀還原30篇-牛津譯林版七年級(jí)英語下學(xué)期期末專練(帶參考答案詳解)
- 圓柱和圓錐的認(rèn)識(shí)和特征-2024-2025學(xué)年六年級(jí)數(shù)學(xué)下冊(cè)寒假自學(xué)課(蘇教版)
- 千年菩提路解說詞
- 護(hù)理人員檔案管理模板
- 機(jī)械設(shè)備日常點(diǎn)檢表
- 物流成本預(yù)算表
- 中醫(yī)病癥診斷療效標(biāo)準(zhǔn)
- 危大工程巡視檢查記錄
- 公司合作協(xié)議書合同模板
- Python基礎(chǔ)課件(共282張PPT)
- JJG 741-2022 標(biāo)準(zhǔn)鋼卷尺檢定規(guī)程-(高清最新版)
- 鋼板樁支護(hù)工程投標(biāo)文件(54頁)
- 棧橋鋼結(jié)構(gòu)工程施工組織設(shè)計(jì)(共68頁)
評(píng)論
0/150
提交評(píng)論