




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、停車場模擬管理程序的設計與實現停車場模擬管理程序的設計與實現、簡介設計目的理解線性表的邏輯結構和存儲結構,進一步提高使用理論知識指導解決實際問題的能力。問題描述設停車場只有一個可停放幾輛汽車的狹長通道,只有一個大門可供汽車進出。汽車在停 車場內按車輛到達的先后順序依次排列,若車場內已停滿幾輛汽車,則后來的汽車只能在門 外的便道上等候,一旦停車場內有車輛開走,則排在便道上的第一輛汽車即可進入;當停車 場內某輛汽車要開走時,由于停車場是狹長的通道,在它之后開入的車輛必須先推出車場為 他讓路,待車輛開出大門,為他讓路的車輛再按原次序進入車場。試設計這樣一個停車場模 擬管理程序。二、數據結構的設計(1
2、)為了便于區(qū)分每輛汽車并了解每輛車當前所處的位置,需要記錄汽車的牌照號碼和汽 車當前的狀態(tài)。(2)為了便于停車場的管理,要為每個車位分配一個固定的編號。(3)當停車場的停車位上都已停滿了汽車,又有新的汽車到來時要把它調度到便道上, 便道上的車輛要按照進入便道的先后順序順次序放在便道上,為便道上的每個位置分配一個 固定的編號。當有車從停車位上離開后,便道上的第一輛汽車就立即進入停車位上的某個車 位。(4)當某輛車離開停車場的時候,比他后進停車位的車要為他讓路,而且當他開走之 后讓路的車還要按照原來的停放次序再次進入停車位的某個車位上,為完成這項功能,定義 一個結構體。三、功能(函數)設計:本程序
3、從總體上分為四個功能模塊,分別為:(1)程序功能介紹和操作提示模塊(2)汽車進入停車位的管理模塊(3)汽車離開停車位的管理模塊(4)查看停車場狀態(tài)的查詢模塊、界面設計:五、程序設計:主函數:顯示主操作界面和調用其他函數車輛進入函數:負責處理車輛的進入瀏覽函數:查看此時停車場和等候區(qū)的車輛的相關信息查詢函數:查詢停車場某位置的車輛信息車輛開出函數:負責處理某位置車輛開出時,其后車輛的移動狀況以及等候區(qū)的車輛進入停 車場結束函數:置空此停車場以及等候區(qū)編寫代碼的過程中遇到的問題對于停車場和的等候區(qū)是否要分兩個線性表來處理若要分兩個線性表進行處理則處理車輛開出和進入時較為麻煩,現用一個線性表進行處理
4、 (只需在結構體中加入一個變量來指明車輛的所處位置即可)六、運行與測試:1、測試的數據及其結果:連續(xù)有7輛汽車到來,牌照號分別為CF001、CF002、CF003、CF004、CF005、CF006、CF007,前5輛車應該進入停車位15車位,第6、7輛車應停入便道的1、2位置上。上面(1)中的情況發(fā)生后,讓牌照CF003的汽車從停車場開走,應顯示CF005、 CF004的讓路動作和CF006從便道到停車位的動作。隨時檢查停車位和便道的狀態(tài),不應該出現有空位而便道上還有車的情況。其它正常操作的一般情況。4.1重復進行7次添加函數依次輸入七輛車的位置號碼和車牌號碼,然后進行一次瀏覽函數 結果如下
5、號07060504030201S位區(qū)場場場場 車供堤原停4.2承接上述操作(不進行退出函數) 運行一次刪除函數輸入所刪除的位置號碼3 運行結果如下4.3運行一次瀏覽函數查看剩余車的狀態(tài)信息保證程序的正確性 運行結果如下4.4任意開出停車位上的多部車輛保證所有車都在停車位,等候區(qū)無車輛停放4.5多次運行指令函數保證正確性(如表空狀態(tài),查詢不存在,刪除位置不存在的提示錯誤)2、運行與測試期間遇到的問題及其解決辦法。系統進入死循環(huán)狀態(tài)重復輸出操作界面錯誤原因:車牌號的類型錯誤解決辦法:在車輛結構體中定義一個字符串指針指向車牌號無法對等候區(qū)的編碼進行從1開始計數解決辦法:對對應位置編號(停車場內)進行
6、對(停車場最大停車輛+1)進行取余運算, 對對應位置編號(等候區(qū))進行對(停車場最大停車輛+1)進行取余運算后+1。七、設計后的思考:經過一個星期的課程設計,過程曲折可謂一語難盡。整天都是對著電腦,不然就是翻閱資料。 在此期間我失落過,也曾一度熱情高漲。點點滴滴令我回味無長。這次課程設計使我體會到 只有做到細心耐心,恒心才能做好事情。這次的課程設計,加強了我們動手、思考和解決 問題的能力。鞏固和加深了對數據結構的理解,提高綜合運用本課程所學知識的能力。培養(yǎng) 了我選用參考書,查閱手冊及文獻資料的能力。培養(yǎng)獨立思考,深入研究,分析問題、解決 問題的能力。通過實際編譯系統的分析設計、編程調試,掌握應
7、用軟件的分析方法和工程設 計方法。通過課程設計,培養(yǎng)了我嚴肅認真的工作作風,逐步建立正確的生產觀念、經濟觀 念和全局觀念。而且做課程設計同時也是對課本知識的鞏固和加強,平時看課本時,有些問 題就不是很能理解,做完課程設計,那些問題就迎刃而解了。而且還可以記住很多東西。認 識來源于實踐,實踐是認識的動力和最終目的,實踐是檢驗真理的唯一標準。所以這個期末 測試之后的課程設計對我們的作用是非常大的程序源碼:#include#include#include#define length sizeof(struct lianbiao)struct carint number;/車停靠在停車場的位置編號ch
8、ar *state;/區(qū)分是在停車場還是等候區(qū)char chepai5;/車的車牌號碼,默認5字符;struct lianbiaostruct car data;/車的信息資料struct lianbiao *next;int num1;/被查詢的位置編號int num2;/開出的車輛的位置編號int m;/主界面的功能選擇int count=0;/停車場內的車輛數量 bool z=true;/主界面的判斷條件 void main()struct lianbiao *head;head=(struct lianbiao*)malloc(length);/申 請結點head-next=NULL;
9、/置 空struct lianbiao *add(struct lianbiao *head);/聲明添加方法void scan(struct lianbiao *head);/聲明瀏覽方法void cha(struct lianbiao *head,int num1);/聲明查詢方法struct lianbiao *del(struct lianbiao *head,int num2);/聲明刪除方法while(z)/ 主界面printf(-輸入功能選項n);printf(添加。1n);printf(查詢。2n);printf(瀏覽。3n);printf(刪除。4n);printf(結束。5
10、n);scanf(%d,&m);switch(m)case 1:head=add(head);break;/調用添加方法case 2:printf(輸入查詢位置編號);scanf(%d,&num1);cha(head,num1); break;/調用查詢方法case 3: scan(head);break;/調用掃描方法case 4:printf(-輸入刪除位置編號);scanf(%d,&num2);head=del(head,num2);break;/調用刪除方法case 5: z=false;head-next=NULL;break;/跳 出小程序 struct lianbiao *add
11、(struct lianbiao *head)車輛進入時調用的方法 struct lianbiao *p2;p2=(struct lianbiao*)malloc(length);/ 申請結點if(head-next=NULL)/此 時停車場為空printf(-輸入車輛信息位置編號車牌n);scanf(%d%s,&p2-data.number,&p2-data.chepai);/獲 取車的信息 count+;p2-data.state=停車場;p2-next=NULL;head-next=p2;return head;else 停車場不空printf(-輸入車輛信息位置編號車牌n);scanf
12、(%d%s,&p2-data.number,&p2-data.chepai);/獲 取車的信息 count+;if(countdata.state=停車場;else p2-data.state=等候區(qū);p2-next=head-next;head-next=p2;return head; void scan(struct lianbiao *head)瀏覽停車場的方法struct lianbiao *p1;p1=head-next;if(!p1)printf(空的停車場);/停車場為空的情況elseprintf(%sn,位置編號車牌號停車位置);while(p1)if(p1-data.numb
13、er5)/車輛在等候區(qū)printf(%dtt%st%sn,(p1-data.number)%6+1,p1-data.chepai,p1-data.state);else if(p1-data.numberdata.number)%6,p1-data.chepai,p1-data.state);p1=p1-next; void cha(struct lianbiao *head,int num1)/查詢停車區(qū)某位置的車輛信息 struct lianbiao *p1=head-next;while(p1)/停 車場不空if(p1-data.number=num1&p1-data.number5)車
14、輛位于等候區(qū)printf(%sn,位置編號車牌號停車位置);printf(%dtt%st%sn,(p1-data.number)%6+1,p1-data.chepai,p1-data.state);break;else if (p1-data.number=num1&p1-data.numberdata.number)%6,p1-data.chepai,p1-data.state);break;else p1=p1-next;if(p1=NULL)printf(查詢沒有結果);/空停車場或查找不存在 struct lianbiao *del(struct lianbiao *head,int num2)車輛開出時調用的方法struct lianbiao *p,*p1;p=head-next;if(p=NULL)/ 空停車場printf(-空的停車場);elsewhile(p-data.number!=num2&p-next!=NULL)p1=p;if(p-data.number=6)/判斷是否等候區(qū)有車進入p-data.state=停車場;printf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- arcgis軟件的認識與使用實驗報告
- 橋梁設計施工方案
- 高軌星載北斗GNSS接收機規(guī)范 編制說明
- 2025年哈爾濱電力職業(yè)技術學院單招職業(yè)傾向性測試題庫參考答案
- 2025年信陽藝術職業(yè)學院單招職業(yè)技能測試題庫新版
- 2025年廣安職業(yè)技術學院單招職業(yè)傾向性測試題庫附答案
- 2025年畢節(jié)職業(yè)技術學院單招職業(yè)傾向性測試題庫新版
- 2023一年級數學上冊 2 位置教學實錄 新人教版
- 提高辦公效率的智能化管理策略
- 9生活離不開他們(教學設計)-2023-2024學年道德與法治四年級下冊統編版
- 初一語文詞性練習(連答案)(最新整理)
- 小學五年級語文上冊有趣的漢字課件
- 消防(控制室)值班記錄
- 房屋租賃(出租)家私清單
- 計算機技術碩士專業(yè)學位授權點申報研究演示課件(PPT 39頁)
- 建筑裝飾材料與構造-ppt課件
- 水泥廠熟料庫屋面鋼網架施工方案(46頁)
- AWS D1.8 D1.8M-2021 結構焊接規(guī)范
- 檢驗批分部分項工程質量驗收匯總表
- 高中三年成績單模板(新留學)
- 食堂環(huán)境因素識別與評價
評論
0/150
提交評論