![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)停車(chē)場(chǎng)管理_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/b5c30450-9c14-4359-95a9-5898a1b353d0/b5c30450-9c14-4359-95a9-5898a1b353d01.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)停車(chē)場(chǎng)管理_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/b5c30450-9c14-4359-95a9-5898a1b353d0/b5c30450-9c14-4359-95a9-5898a1b353d02.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)停車(chē)場(chǎng)管理_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/b5c30450-9c14-4359-95a9-5898a1b353d0/b5c30450-9c14-4359-95a9-5898a1b353d03.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)停車(chē)場(chǎng)管理_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/b5c30450-9c14-4359-95a9-5898a1b353d0/b5c30450-9c14-4359-95a9-5898a1b353d04.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)停車(chē)場(chǎng)管理_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/8/b5c30450-9c14-4359-95a9-5898a1b353d0/b5c30450-9c14-4359-95a9-5898a1b353d05.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 報(bào) 告課程名稱 數(shù)據(jù) 結(jié)構(gòu) 題 目 停車(chē)場(chǎng)管理 學(xué)生姓名 班級(jí)/學(xué)號(hào) 191103 一、 需求分析設(shè)停車(chē)場(chǎng)是一個(gè)可停放n輛汽車(chē)的狹長(zhǎng)通道,且只有一個(gè)大門(mén)可供汽車(chē)進(jìn)出。汽車(chē)在停車(chē)場(chǎng)內(nèi)按車(chē)輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門(mén)在最南端),若停車(chē)場(chǎng)內(nèi)已停滿n輛汽車(chē),則后來(lái)的汽車(chē)只能在門(mén)外的便道上等候,一旦有車(chē)開(kāi)走,則排在便道上的第一輛車(chē)即可開(kāi)入;當(dāng)停車(chē)場(chǎng)內(nèi)某輛車(chē)要離開(kāi)時(shí),在它之后進(jìn)入的車(chē)輛必須先退出車(chē)場(chǎng)為它讓路,待該輛車(chē)開(kāi)出大門(mén)外,其他車(chē)輛再按原次序進(jìn)入車(chē)場(chǎng),每輛停放在車(chē)場(chǎng)的車(chē)在它離開(kāi)停車(chē)場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。試為停車(chē)場(chǎng)編制按上述要求進(jìn)行管理的模擬程序?!緶y(cè)試數(shù)據(jù)
2、】 設(shè)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表示到達(dá);d表示離去;e表示輸入結(jié)束。概要設(shè)計(jì)以棧模擬停車(chē)場(chǎng),以隊(duì)列模擬車(chē)場(chǎng)外的便道。棧以順序結(jié)構(gòu)實(shí)現(xiàn)。隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)。每一組輸入數(shù)據(jù)包括:汽車(chē)“到達(dá)”或“離去”信息、汽車(chē)牌照號(hào)碼以及到達(dá)或離去的時(shí)刻。 輸出信息:若是車(chē)輛到達(dá),則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)或便道上的停車(chē)位置;若是車(chē)輛離去,則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。 二、 詳細(xì)設(shè)計(jì)三、 程序設(shè)計(jì)1.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)/
3、*棧,模擬停車(chē)場(chǎng)*/typedef struct car1 /車(chē) int number;/汽車(chē)車(chē)號(hào) int ar_time;/汽車(chē)到達(dá)時(shí)間carnode;typedef struct /停車(chē)場(chǎng) carnode *base;/停車(chē)場(chǎng)的堆棧底 carnode *top;/停車(chē)場(chǎng)的堆棧頂 int stacksize;park;/*隊(duì)列,模擬便道*/typedef struct car2 /車(chē) int number;/汽車(chē)車(chē)號(hào) int ar_time;/汽車(chē)到達(dá)時(shí)間 struct car2 *next;*carptr;typedef struct /便道 carptr front;/便道的隊(duì)列的對(duì)頭
4、carptr rear;/便道的隊(duì)列的隊(duì)尾 int length;shortcut;2.程序設(shè)計(jì) 主函數(shù)中包括3個(gè)子函數(shù),a(arrive),d(depart),e(end) (1)輸入車(chē)輛數(shù)據(jù):a為到達(dá),d為離去,e為結(jié)束程序。(2)接著輸入車(chē)輛的牌照信息(3)若為到達(dá)的車(chē)輛,輸入進(jìn)場(chǎng)信息,若為離去的車(chē)輛,輸入離場(chǎng)信息。(4)若車(chē)輛到達(dá),可得到車(chē)輛的停放位置信息,若車(chē)輛離去,可得到車(chē)輛的停放時(shí)間(在便道上的停放時(shí)間除外),以及應(yīng)該交納的費(fèi)用。(5)本程序不斷循環(huán)要求輸入車(chē)輛信息,直到輸入的車(chē)輛數(shù)據(jù)為e時(shí),程序結(jié)束。四、 調(diào)試分析a、 一開(kāi)始在調(diào)試程序時(shí)遇到了內(nèi)存錯(cuò)誤,經(jīng)過(guò)debug,找到了引
5、起內(nèi)存錯(cuò)誤的原因:即在建立隊(duì)頭指針與隊(duì)尾指針時(shí)沒(méi)有對(duì)指針進(jìn)行初始化(沒(méi)有為指針動(dòng)態(tài)分配空間)。問(wèn)題得到解決。b、 本程序中:車(chē)輛到達(dá),離去時(shí)的時(shí)間復(fù)雜度均為:o(n)。本程序空間復(fù)雜度為:o(n)五、 使用說(shuō)明和測(cè)試結(jié)果1.使用說(shuō)明:用戶按照屏幕所顯示的提示來(lái)選擇需要進(jìn)行操作2、測(cè)試結(jié)果:測(cè)試結(jié)果滿足題目要求,程序無(wú)錯(cuò)誤。 六、 心得體會(huì)通過(guò)此實(shí)驗(yàn),加深了我對(duì)數(shù)據(jù)結(jié)構(gòu)這門(mén)課的理解,真正運(yùn)用了知識(shí)。將理論與現(xiàn)實(shí)完美的聯(lián)系在了一起。增強(qiáng)了動(dòng)手能力,對(duì)今后的工作學(xué)習(xí)都有很大的幫助。單調(diào)的看書(shū)本沒(méi)有太大的作用,只有去編程才能理解究竟學(xué)習(xí)的作用。同時(shí),編程過(guò)程中遇到過(guò)各種各樣的問(wèn)題,與同學(xué)討論,與老師交
6、流。鍛煉了我的協(xié)做能力與克服困難的能力。編程也極大的提高了我的學(xué)習(xí)積極性。七、 附錄#include#include#include#define size 2/停車(chē)場(chǎng)位置數(shù),共5個(gè)車(chē)位typedef int status;/*棧,模擬停車(chē)場(chǎng)*/typedef struct car1 /車(chē) int number;/汽車(chē)車(chē)號(hào) int ar_time;/汽車(chē)到達(dá)時(shí)間carnode;typedef struct /停車(chē)場(chǎng) carnode *base;/停車(chē)場(chǎng)的堆棧底 carnode *top;/停車(chē)場(chǎng)的堆棧頂 int stacksize;park;/*隊(duì)列,模擬便道*/typedef struct
7、car2 /車(chē) int number;/汽車(chē)車(chē)號(hào) int ar_time;/汽車(chē)到達(dá)時(shí)間 struct car2 *next;*carptr;typedef struct /便道 carptr front;/便道的隊(duì)列的對(duì)頭 carptr rear;/便道的隊(duì)列的隊(duì)尾 int length;shortcut;/*初始化停車(chē)場(chǎng)*/status initstack(park &p) p.base=(carnode*)malloc(size*sizeof(car1); if(!p.base) exit(-2); p.top=p.base; p.stacksize=0; return 1;status
8、 push(park &p,carnode e)/車(chē)進(jìn)入停車(chē)場(chǎng) *p.top+=e; +p.stacksize; return 1;status pop(park &p,carnode &e)/車(chē)離開(kāi)停車(chē)場(chǎng) if(p.top=p.base) printf(停車(chē)場(chǎng)為空); else e=*-p.top; -p.stacksize; return 1;/*初始化便道*/status initqueue(shortcut &s) s.front=s.rear=(carptr)malloc(sizeof(car2); if(!s.front|!s.rear) exit(-2); s.front-nex
9、t=null; s.length=0; return 1;status enqueue(shortcut &s,int number,int ar_time)/車(chē)進(jìn)入便道 carptr p; p=(carptr)malloc(sizeof(car2); if(!p) exit(-2); p-number=number; p-ar_time=ar_time; p-next=null; s.rear-next=p; s.rear=p; +s.length; return 1;status dequeue(shortcut &s,carptr &w)/車(chē)離開(kāi)便道 if(s.length = 0) p
10、rintf(通道為空); else w = s.front-next; s.front-next=s.front-next-next; -s.length; return 1;status arrival(park &p,shortcut &s)/對(duì)進(jìn)站車(chē)輛的處理 int number,ar_time; printf(請(qǐng)輸入車(chē)牌號(hào):); scanf(%d,&number); printf(進(jìn)場(chǎng)的時(shí)刻:); scanf(%d,&ar_time); if(p.stacksizenumber; push(p,m); free(w); printf(車(chē)牌號(hào)為%d的車(chē)已由便道進(jìn)入停車(chē)場(chǎng)n,m.numbe
11、r); printf(停車(chē)費(fèi)為%d, 占用車(chē)位數(shù)為%dn,money,p.stacksize); else printf(停車(chē)場(chǎng)不存在牌號(hào)為%d的車(chē)n, number); return 1;/*主函數(shù)*/int main() int m=1; char flag;/選項(xiàng) park p,q; shortcut s; initstack(p); initstack(q); initqueue(s); while(m) printf(n 停車(chē)場(chǎng)管理程序 n); printf(a 汽車(chē)進(jìn)車(chē)場(chǎng) d 汽車(chē)出車(chē)場(chǎng) e 退出程序n); printf(請(qǐng)選擇(a,d,e): ); scanf(%c,&flag); switch(flag) case a: case a:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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è)行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究分析報(bào)告
- 沖壓模具開(kāi)發(fā)合同范本
- 人工挖方合同范本
- 關(guān)于安裝監(jiān)控合同范本
- 代銷合同范例5篇
- 養(yǎng)殖基地養(yǎng)雞合同范本
- 無(wú)合同勞動(dòng)仲裁申請(qǐng)書(shū)范本
- 企業(yè)房產(chǎn)贈(zèng)與合同范本
- 借錢(qián)協(xié)議合同范本
- 公司電費(fèi)簡(jiǎn)易合同范本
- 2025年電力鐵塔市場(chǎng)分析現(xiàn)狀
- 臨床提高膿毒性休克患者1h集束化措施落實(shí)率PDCA品管圈
- DB53∕T 1269-2024 改性磷石膏用于礦山廢棄地生態(tài)修復(fù)回填技術(shù)規(guī)范
- JBT 14727-2023 滾動(dòng)軸承 零件黑色氧化處理 技術(shù)規(guī)范 (正式版)
- GB/T 3478.1-1995圓柱直齒漸開(kāi)線花鍵模數(shù)基本齒廓公差
- GB/T 1346-2001水泥標(biāo)準(zhǔn)稠度用水量、凝結(jié)時(shí)間、安定性檢驗(yàn)方法
- FZ/T 25001-2012工業(yè)用毛氈
- 中國(guó)工運(yùn)史知識(shí)競(jìng)答附答案
- 瑞幸咖啡SWOT分析
- DL∕T 1867-2018 電力需求響應(yīng)信息交換規(guī)范
- 小學(xué)生品德發(fā)展水平指標(biāo)評(píng)價(jià)體系(小學(xué))
評(píng)論
0/150
提交評(píng)論