版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課 程 設(shè) 計(jì) 報(bào) 告課程名稱 數(shù)據(jù) 結(jié)構(gòu) 題 目 停車場(chǎng)管理 學(xué)生姓名 班級(jí)/學(xué)號(hào) 191103 一、 需求分析設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的狹長通道,且只有一個(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í)間長短交納費(fèi)用。試為停車場(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ǎng),以隊(duì)列模擬車場(chǎng)外的便道。棧以順序結(jié)構(gòu)實(shí)現(xiàn)。隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)。每一組輸入數(shù)據(jù)包括:汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼以及到達(dá)或離去的時(shí)刻。 輸出信息:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場(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ǎng)*/typedef struct car1 /車 int number;/汽車車號(hào) int ar_time;/汽車到達(dá)時(shí)間carnode;typedef struct /停車場(chǎng) carnode *base;/停車場(chǎng)的堆棧底 carnode *top;/停車場(chǎng)的堆棧頂 int stacksize;park;/*隊(duì)列,模擬便道*/typedef struct car2 /車 int number;/汽車車號(hào) int ar_time;/汽車到達(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)輸入車輛數(shù)據(jù):a為到達(dá),d為離去,e為結(jié)束程序。(2)接著輸入車輛的牌照信息(3)若為到達(dá)的車輛,輸入進(jìn)場(chǎng)信息,若為離去的車輛,輸入離場(chǎng)信息。(4)若車輛到達(dá),可得到車輛的停放位置信息,若車輛離去,可得到車輛的停放時(shí)間(在便道上的停放時(shí)間除外),以及應(yīng)該交納的費(fèi)用。(5)本程序不斷循環(huán)要求輸入車輛信息,直到輸入的車輛數(shù)據(jù)為e時(shí),程序結(jié)束。四、 調(diào)試分析a、 一開始在調(diào)試程序時(shí)遇到了內(nèi)存錯(cuò)誤,經(jīng)過debug,找到了引
5、起內(nèi)存錯(cuò)誤的原因:即在建立隊(duì)頭指針與隊(duì)尾指針時(shí)沒有對(duì)指針進(jìn)行初始化(沒有為指針動(dòng)態(tài)分配空間)。問題得到解決。b、 本程序中:車輛到達(dá),離去時(shí)的時(shí)間復(fù)雜度均為:o(n)。本程序空間復(fù)雜度為:o(n)五、 使用說明和測(cè)試結(jié)果1.使用說明:用戶按照屏幕所顯示的提示來選擇需要進(jìn)行操作2、測(cè)試結(jié)果:測(cè)試結(jié)果滿足題目要求,程序無錯(cuò)誤。 六、 心得體會(huì)通過此實(shí)驗(yàn),加深了我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課的理解,真正運(yùn)用了知識(shí)。將理論與現(xiàn)實(shí)完美的聯(lián)系在了一起。增強(qiáng)了動(dòng)手能力,對(duì)今后的工作學(xué)習(xí)都有很大的幫助。單調(diào)的看書本沒有太大的作用,只有去編程才能理解究竟學(xué)習(xí)的作用。同時(shí),編程過程中遇到過各種各樣的問題,與同學(xué)討論,與老師交
6、流。鍛煉了我的協(xié)做能力與克服困難的能力。編程也極大的提高了我的學(xué)習(xí)積極性。七、 附錄#include#include#include#define size 2/停車場(chǎng)位置數(shù),共5個(gè)車位typedef int status;/*棧,模擬停車場(chǎng)*/typedef struct car1 /車 int number;/汽車車號(hào) int ar_time;/汽車到達(dá)時(shí)間carnode;typedef struct /停車場(chǎng) carnode *base;/停車場(chǎng)的堆棧底 carnode *top;/停車場(chǎng)的堆棧頂 int stacksize;park;/*隊(duì)列,模擬便道*/typedef struct
7、car2 /車 int number;/汽車車號(hào) int ar_time;/汽車到達(dá)時(shí)間 struct car2 *next;*carptr;typedef struct /便道 carptr front;/便道的隊(duì)列的對(duì)頭 carptr rear;/便道的隊(duì)列的隊(duì)尾 int length;shortcut;/*初始化停車場(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)/車進(jìn)入停車場(chǎng) *p.top+=e; +p.stacksize; return 1;status pop(park &p,carnode &e)/車離開停車場(chǎng) if(p.top=p.base) printf(停車場(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)/車進(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)/車離開便道 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)站車輛的處理 int number,ar_time; printf(請(qǐng)輸入車牌號(hào):); scanf(%d,&number); printf(進(jìn)場(chǎng)的時(shí)刻:); scanf(%d,&ar_time); if(p.stacksizenumber; push(p,m); free(w); printf(車牌號(hào)為%d的車已由便道進(jìn)入停車場(chǎng)n,m.numbe
11、r); printf(停車費(fèi)為%d, 占用車位數(shù)為%dn,money,p.stacksize); else printf(停車場(chǎng)不存在牌號(hào)為%d的車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ǎng)管理程序 n); printf(a 汽車進(jìn)車場(chǎng) d 汽車出車場(chǎng) e 退出程序n); printf(請(qǐng)選擇(a,d,e): ); scanf(%c,&flag); switch(flag) case a: case a:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版?zhèn)€人信用卡債務(wù)代償協(xié)議書3篇
- 2024年版農(nóng)田堰塘建設(shè)協(xié)議模板版B版
- 二零二五年度鋼筋加工廠勞務(wù)分包合同范本6篇
- 武漢紡織大學(xué)外經(jīng)貿(mào)學(xué)院《分子模擬的原理和應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版公墓環(huán)境維護(hù)與生態(tài)保護(hù)合作協(xié)議3篇
- 2024版影視制作與版權(quán)轉(zhuǎn)讓合同
- 2024英倫游學(xué)夏令營青少年領(lǐng)袖培養(yǎng)與團(tuán)隊(duì)建設(shè)服務(wù)合同3篇
- 二零二五年度城市更新項(xiàng)目舊房收購合同細(xì)則3篇
- 太原幼兒師范高等專科學(xué)?!豆菜囆g(shù)項(xiàng)目實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘇州工藝美術(shù)職業(yè)技術(shù)學(xué)院《物聯(lián)網(wǎng)與云計(jì)算》2023-2024學(xué)年第一學(xué)期期末試卷
- 《項(xiàng)目施工組織設(shè)計(jì)開題報(bào)告(含提綱)3000字》
- ICU常見藥物課件
- CNAS實(shí)驗(yàn)室評(píng)審不符合項(xiàng)整改報(bào)告
- 農(nóng)民工考勤表(模板)
- 承臺(tái)混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 計(jì)量基礎(chǔ)知識(shí)培訓(xùn)教材201309
- 中考英語 短文填詞、選詞填空練習(xí)
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 初一至初三數(shù)學(xué)全部知識(shí)點(diǎn)
- 新課程理念下的班主任工作藝術(shù)
評(píng)論
0/150
提交評(píng)論