




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、泊車場管理系統課程設計報告2匯總泊車場管理系統課程設計報告2匯總22/22泊車場管理系統課程設計報告2匯總德州學院2012級信息管理學院計算機科學與技術數據構造課程設計泊車場管理系統實習目的經過本次課程設計,認識并初步掌握設計、實現系統的圓滿過程,包含系統分析、編碼設計、以及調試分析,嫻熟掌握數據構造的選擇、設計、實現以及操作方法,為進一步的應用開發(fā)打好基礎。問題描繪泊車場是一條可以停放n輛車的狹小通道,且只有一個大門汽車停放安抵達時間的先后挨次由北向南擺列(大門在最南端,最初抵達的第一輛車停在最北端)若泊車場已經停滿n輛車,此后的汽車在便道上等候,一旦有車開走,排在便道上的第一輛車可以開入;
2、當泊車場的某輛車要走開時,停在他后邊的車要先退后為他讓路,等它開出后其余車在依據原序次開入車場,每兩停在車場的車要安時間長短繳費。基本要求(1)以棧模擬泊車場,以行列車場外的便道,依據從終端輸入的數據序列進行模擬管理。每一組數據包含三個數據項:汽車“抵達”或“走開”信息、汽車牌照號碼、以及抵達或走開的時辰。對每一組數據進行操作后的信息為:假如車輛抵達,則輸出汽車在泊車場的內或便道上的地點:假如車輛走開則輸出汽車在泊車場內的逗留時間和應繳納的開銷(在便道上的逗留時間不收費)。棧以序次構造實現,行列以鏈表構造實現。2)友善性:界面要友善,輸入有提示,盡量展現人性化。3)可讀性:源程序代碼清楚、有層
3、次,必需時給出說明。4)強健性:用戶輸入非法數據時,系統要實時給出警示信息。5)測試數據:要求使用1、所有合法數據;2、整體非法數據;3、局部非法數據。進行程序測試,以保證程序的堅固。測試數據及測試結果請在上交的資猜中寫明。需求分析泊車場是一條可以停放n輛車的狹小通道,且只有一個大門。汽車停放按抵達時間的先后擺列。若泊車場已經停滿n輛車,此后的汽車在便道上等候。一旦有車開走,排在便道上的第一輛車可以開入;當泊車場的某輛車要走開時,停在他后邊的車要先退后為他讓路。等它開出后,其余車再依據原序次開入車場,每輛停在車場的車要準時間長短繳費。3.1設計基本要求以棧模擬泊車場,以行列模擬車場外的便道,依
4、據從終端輸入的數據序列進行1德州學院2012級信息管理學院計算機科學與技術數據構造課程設計模擬管理。每一組數據包含三個數據項:汽車“抵達”或“走開”信息、汽車牌照號碼、以及抵達或走開的時辰。對每一組數據進行操作后的信息為:假如車輛抵達,則輸出汽車在泊車場的內或便道上的地點:假如車輛走開則輸出汽車在泊車場內的逗留時間和應繳納的開銷(在便道上的逗留時間不收費)。棧以序次構造實現,行列以鏈表構造實現。友善性:界面要友善,輸入有提示,盡量展現人性化??勺x性:源程序代碼清楚、有層次,必需時給出說明。強健性:用戶輸入非法數據時,系統要實時給出警示信息。測試數據:要求使用所有合法數據、整體非法數據、局部非法
5、數據進行程序測試,以保證程序的堅固。測試數據及測試結果請在上交的資猜中寫明。3.2泊車場管理系統的主要功能依據車輛抵達泊車場到車輛走開泊車場時所逗留的時間進行計時收費。該程序設計可以經過車牌號查到該車輛在泊車場或便道中的地點。當有車輛從泊車場走開時,等候的車輛挨序次進入泊車場停放。實現泊車場的調動功能。該程序設計可以圓滿的模擬泊車場的管理過程。詳盡設計4.1數據構造的設計程序中使用了一個類,五個構造體,兩個棧(模擬泊車場,此中一個為暫時棧),一個行列(模擬便道)。(1)車輛信息的表示車輛可看作是一個節(jié)點,設計成一個構造體,車輛信息包含:車牌號碼,車輛的進站時間和走開泊車場的時間,定義以下:ty
6、pedefstructnodecharnum10;/車牌號碼Timereach;/到站時間Timeleave;/走開時間CarNode;(2)時間、棧和行列的定義時間是由小時和分鐘表示的,有兩部分數據,設計兩個變量分別儲蓄小時和分鐘,定義以下:typedefstructtime2德州學院2012級信息管理學院計算機科學與技術數據構造課程設計inthour;intmin;Time;泊車場內用棧表示:typedefstructNODECarNode*stackMAX+1;/棧用序次表示inttop;SeqStackCar;SeqStackCarEnter,Temp;InitStack(&Temp)
7、在車輛走開時,應用temp暫時棧把將要走開的車輛后續(xù)車輛壓入,等車輛走開后壓回原棧stack。便道上的車輛表示:typedefstructcarCarNode*data;/便道上的車用鏈表表示structcar*next;QueueNode;typedefstructNodeQueueNode*head;/設置頭指針、尾指針QueueNode*rear;LinkQueueCar;4.2算法的設計思想及流程圖4.2.1主要函數的功能說明(1)voidInitStack(SeqStackCar*);/車輛節(jié)點進棧。即當棧未滿時,就把抵達的車輛進棧。(2)intInitQueue(LinkQueue
8、Car*);/車輛節(jié)點進行列。即當棧已滿時,車輛就進入便道上的行列中(3)intArrival(SeqStackCar*,LinkQueueCar*);/車輛抵達登記。即車輛抵達時,先登記車輛車牌號碼。此后再判斷泊車場有沒有停滿,沒停滿就進棧,停滿了就停在便道上,即進行列。(4)voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);/車輛走開處理。即經過輸入走開車輛的地點辦理,此后調用PRINT(CarNode*p,introom);函數進行收費。此后再判斷便道上有沒有車,假如有,就把便道上的車進泊車場內。3德州學院2012級信息管理學院計算機科
9、學與技術數據構造課程設計(5)voidList(SeqStackCar,LinkQueueCar);/顯示車場內和便道上的車輛狀況。利用switch();函數選擇顯示車場內或是便道上的車輛狀況,包含對下邊兩個子函數的調用:voidList1(SeqStackCar*S);voidList2(LinkQueueCar*W);/分別用來顯示車場和便道上的車輛狀況(6)voidPRINT(CarNode*p,introom);/車輛走開時的收費。即這個函數由車輛走開的函數調用,以分鐘計時算費,但只好計算當日以內的開銷,假如次日的話會致使計費為負或減少。即只好當日停,當日開走。4.2.2泊車場管理系統
10、流程圖經過對車輛的出入分析以及對該系統的詳盡設計,繪制泊車場管理系統流程圖如圖1.4德州學院2012級信息管理學院計算機科學與技術數據構造課程設計圖1泊車場管理系統流程圖5德州學院2012級信息管理學院計算機科學與技術數據構造課程設計4.2.3主要模塊算法描繪本程序最主要的算法就是車輛抵達登記的和車輛走開時的登記。(1)車輛抵達:intArrival(SeqStackCar*Enter,LinkQueueCar*W)/第必然義一個棧和行列的構造體指針為:*p,*t。此后申請一個車輛信息的內存空間,并把它賦給棧指針。車輛抵達時就輸入車牌號,并經過if(Enter-toptop0)保證棧不空,此后
11、用個while(1)保證輸入的車輛走開位置的合法性。假如不合法,顯示輸入有誤,要從頭輸入。經過while(Enter-toproom)判斷走開車輛的地點,假如是中間地點,就要再用一個暫時棧擱置前面對時開出來的車,等要開出的車開出后,再把暫時棧內的車開進泊車場內,并調用PRINT(p,room);這個函數計算顯示開銷。此后還要用if(W-head!=W-rear)&Enter-topMAX)語句判斷便道上有沒有車,假如有車就要顯示進泊車場的車的車牌號,并登記進入時間。并要進行相應的出行列和進棧操作。測試分析5.1測試用例說明:測試用例要合理而且足夠,既要有正確用例,也要有錯誤用例,同時查驗程序的
12、正確性和強健性。5.1.1第一組測試用例(1)測試輸入:泊車場的車輛走開,如表1所示:6德州學院2012級信息管理學院計算機科學與技術數據構造課程設計表1:車輛走開測試服務選擇車牌號/車位抵達/走開時間1京A121212:121津S121212:131魯D121212:142114:122125:65(錯誤)測試目的:測試走開方法時間格式控制以及開銷計算能否正確。正確輸出:第一次走開的是京A1212,應交費2.4元。第二次時,當在輸入65時,應當提示輸入錯誤,重輸。實質輸出:圖2測試走開方式時間格式及開銷計算圖圖3測試車輛走開錯誤圖錯誤原由:第一個正確,第二個錯誤,原由是沒有對時間格式控制。目
13、前狀態(tài):已更正7德州學院2012級信息管理學院計算機科學與技術數據構造課程設計5.1.2第二組測試用例測試輸入:連續(xù)5輛車抵達,如表2所示:表2:連續(xù)5輛車抵達測試服務選擇車牌號/車位抵達時間1京A121212:121津S121212:131魯D121212:141豫F121212:151滬G121212:162114:12測試目的:測試抵達方法與列表顯示方法能否正確達成。正確輸出:先抵達的三輛車先進入泊車場,最后抵達的兩輛在便道等候。實質輸出:表4車輛抵達方式測試8德州學院2012級信息管理學院計算機科學與技術數據構造課程設計圖5車輛進入提示圖錯誤原由:沒有錯誤。目前狀態(tài):經過。5.1.3第
14、三組測試用例測試輸入:接上一步輸入走開信息,如表3所示:表3:接上一步走開信息測試服務選擇走開車位走開時間便道車進入時間2114:1214:13測試目的:測試走開方法功能能否成功以及便道進入車場能否正確。正確輸出:輸出1號車位的車輛走開信息清單,便道1號車進入泊車場。實質輸出:9德州學院2012級信息管理學院計算機科學與技術數據構造課程設計圖6測試走開方法功能能否成功圖錯誤原由:沒有錯誤。目前狀態(tài):經過5.2測試結果分析經過我們小組一天的調試,我們終于把各模塊整合起來了。在這過程中,我們碰到了好多問題,像數據不般配、括號不配對、賦值重復等。由于C語言的語法限制不太嚴格,對變量的種類拘束不嚴格,
15、對數組下標越界不做檢查等原由,因此,我們的更正工作難度加大。但經過我們這小組共同的努力。此泊車管理系統可以基本實現一個小的停車場的管理,其“抵達”與“走開”方法都對比較較圓滿,開銷結算清單直觀。在輸入數據時,要依據嚴格的格式輸入,不然有可能出現逝世或崩潰。若本系統能加上保留功能就更好了,由于一個系統在使用過程中總會關機等,而此系統的弊端倒是沒有保留功能,封閉此后數據拋棄?,F受限于各樣條件,又由于要求中并未說起,因此本程序暫時沒有加入保留功能。10德州學院2012級信息管理學院計算機科學與技術數據構造課程設計使用說明1)運轉程序,第一出現主界面。主界面包含四個選項:選項1:車輛抵達登記,選擇該項
16、可進行車輛抵達泊車場狀況登記;選項2:車輛走開登記,選擇該項可進行車輛走開泊車場狀況登記;選項3:車輛列表顯示,選擇該項可查察車輛列表顯示的所有信息,包含泊車場列表和便道列表的所有信息;選項4:退出系統,選擇該項將退出程序。圖7程序初始界面圖2)車輛列表顯示界面包含3個選項:選項1:泊車場列表,選擇該項可以查察停車場列表的所有車輛的所有信息;選項2:便道列表,選擇該項可以查察便道列表顯示的所有信息;選項3:返回主菜單,可返回主界面。11德州學院2012級信息管理學院計算機科學與技術數據構造課程設計圖8車輛列表顯示界面圖總結整體來說,此次的課程設計比昨年的c語言的課程設計稍難。我此次的課程設計題
17、目:泊車場問題。比較其余課題來說,這個題目仍是比較簡單的,主假如運用了數據結構中棧和行列的知識和操作。程序可以實現基本的車輛抵達、走開、收費、遍歷顯示等主要功能。但我感覺這個程序還有好多小的地方是可以圓滿的,比方:在計算收費時假如走開時間是到了次日,這樣就會致使收費是負的或減少好多。也就是說,該程序限制于只能規(guī)定當日停,當日開走。至于加算天數的功能我改了幾次改不好,又基于程序要求中也沒有說起而且時間緊張,因此也就沒再去研究實現。只需能實現主要的功能就好了。自然,此次的課程設計、編程實踐仍是受益匪淺的。經過實習我的收獲以下:我知道了如何去簡化程序,減少他的時間復雜度和空間復雜度。還知道了如何去圓
18、滿程序,使其更具強健性。堅固和加深了對數據構造有關知識的理解,提升綜合運用本課程所學知識的能力。12德州學院2012級信息管理學院計算機科學與技術數據構造課程設計培育了我采用參照書,查閱手冊及文件資料的能力。培育獨立思慮、深入研究、分析問題、解決問題的能力。經過實質編譯系統的分析設計、編程調試,掌握應用軟件的分析方法。經過課程設計,培育了我嚴肅仔細的工作作風,逐漸成立正確的生產見解、經濟見解和全局見解。依據我在實習中碰到的問題,我將在此后的學習過程中注意以下幾點:仔細上好專業(yè)實驗課,多在實踐中鍛煉自己。更讓我懂得實踐是查驗和掌握真諦的最好方法。寫程序的過程中要考慮周祥、嚴實。需求分析需要頻頻思
19、慮修正。在做課程設計的時候要有信心、有耐心,切勿煩躁。仔細學習課本知識,掌握課本中的知識點,并在此基礎上學會靈巧運用。在課余時間里多寫程序,嫻熟掌握在調試程序的過程中所碰到的常有錯誤,以便能節(jié)儉調試程序的時間??傊?本次課程設計不只加深了我們對棧和行列等數據構造的理解和掌握,同時必然程度上提升了我們程序設計和閱讀程序的能力。本次課程設計提升了我們的專業(yè)知識,使自己所學的內容運用到實質中來,也加強了實質操作能力,為此后的工作學習供給了一個優(yōu)秀的鋪墊。參照文件嚴蔚敏,吳偉民.數據構造M.北京:清華大學第一版社,2004.李春葆.數據構造分析M.北京:清華大學第一版社,2001.譚浩強.C語言程序設
20、計M.北京:清華大學第一版社,2005.4朱戰(zhàn)立,張選平.數據構造學習指導與典型題解M.西安:西安交通大學第一版社,2002.5張玲,席德春,劉曉杰.C語言上機實踐指導教程M.北京:機械工業(yè)第一版社,2004.6羅文劼,王苗,石強.數據構造習題解答與實驗指導M.北京:中國鐵道第一版社,2004.7殷人昆,陶永雷,謝若陽等.數據構造M.北京:清華大學第一版社,2005.13德州學院2012級信息管理學院計算機科學與技術數據構造課程設計附錄系統說明:本系統適應于小型泊車場,且泊車時間在一天以內的短期停放泊車場。在此系統中,車庫容量設置為3,便于測試。在實質使用中可以對容量大小按實質狀況設置。#in
21、clude#include#include#defineMAX3/泊車場最大容量為3輛,便于察看#defineprice0.02定義時間構造體typedefstructtimeinthour;intmin;Time;定義車輛信息構造體typedefstructnodecharnum10;Timereach;Timeleave;CarNode;typedefstructNODECarNode*stackMAX+1;inttop;SeqStackCar;/模擬泊車場typedefstructcarCarNode*data;structcar*next;QueueNode;typedefstruct
22、NodeQueueNode*head;QueueNode*rear;LinkQueueCar;/模擬便道方法申明voidInitStack(SeqStackCar*);/初始化棧14德州學院2012級信息管理學院計算機科學與技術數據構造課程設計intInitQueue(LinkQueueCar*);/初始化便道intArrival(SeqStackCar*,LinkQueueCar*);/車輛抵達voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);/車輛走開voidPRINT(CarNode*p,introom);/車輛收費voidList1(
23、SeqStackCar*S);/顯示車場里的車輛狀況voidList2(LinkQueueCar*W);/顯示便道上的車輛狀況voidList(SeqStackCar,LinkQueueCar);/顯示信息/voidsavecar(CarNode*);/保留車輛信息自定義函數/*voidsavecar(CarNode*p1)/保留車輛信息FILE*fp1;if(fp1=fopen(car1.txt,w)=NULL)printf(nt不可以保留車輛信息n);return;while(p1)fwrite(p1,sizeof(structnode),1,fp1);p1=p1-next;*/棧的初始化
24、voidInitStack(SeqStackCar*s)inti;s-top=0;for(i=0;istacks-top=NULL;行列的初始化intInitQueue(LinkQueueCar*Q)Q-head=(QueueNode*)malloc(sizeof(QueueNode);if(Q-head!=NULL)Q-head-next=NULL;Q-rear=Q-head;return(1);elsereturn(-1);15德州學院2012級信息管理學院計算機科學與技術數據構造課程設計車輛收費voidPRINT(CarNode*p,introom)intA1,A2,B1,B2;prin
25、tf(n請輸入車輛走開的時間:(小時:分鐘);scanf(%d:%d,&(p-leave.hour),&(p-leave.min);while(p-leave.hourleave.hour23)printf(您的輸入有誤!);printf(請從頭輸入走開時間的時(0-23):);scanf(%d,&(p-leave.hour);if(p-leave.minleave.min59)printf(您的輸入有誤!);printf(請從頭輸入走開時間的分(0-59):);scanf(%d,&(p-leave.min);printf(n走開車輛的車牌號為:);puts(p-num);printf(n該車
26、抵達時間為:%d:%d,p-reach.hour,p-reach.min);printf(n該車走開時間為:%d:%d,p-leave.hour,p-leave.min);A1=p-reach.hour;A2=p-reach.min;B1=p-leave.hour;B2=p-leave.min;printf(n應交開銷為:%2.1f元!,(B1-A1)*60+(B2-A2)*price);free(p);車輛的抵達登記intArrival(SeqStackCar*Enter,LinkQueueCar*W)/charnum10;/inta;CarNode*p;QueueNode*t;p=(Car
27、Node*)malloc(sizeof(CarNode);flushall();/清空緩存輸入的作用printf(n請輸入車牌號(例:豫B1234):);gets(p-num);/*a=Enter-top;loop:scanf(%s,&num);if(a=0)16德州學院2012級信息管理學院計算機科學與技術數據構造課程設計strcpy(p-num,num);a+;while(a)if(strcmp(num,Enter-stacka-num)=0)printf(您輸入的車牌號重復,請從頭輸入!);gotoloop;*/if(Enter-toptop+;printf(n車輛在車場第%d地點.,E
28、nter-top);printf(n車輛抵達時間:);scanf(%d:%d,&(p-reach.hour),&(p-reach.min);while(p-reach.hourreach.hour23)/控制時間格式正確printf(您的輸入有誤!);printf(請從頭輸入抵達時間的時(0-23):);scanf(%d,&(p-reach.hour);while(p-reach.minreach.min59)/控制分鐘輸入正確printf(您的輸入有誤!);printf(請從頭輸入抵達時間的分(0-59):);scanf(%d,&(p-reach.min);Enter-stackEnter-
29、top=p;printf(n恭賀您登記成功!);/savecar(?);printf(n);return(1);else/車場已滿,車進便道printf(n您好,泊車場車位已滿,請該車在便道上等候!有空余車位時才能進入泊車場!/n);t=(QueueNode*)malloc(sizeof(QueueNode);t-data=p;t-next=NULL;W-rear-next=t;W-rear=t;17德州學院2012級信息管理學院計算機科學與技術數據構造課程設計return(1);車輛的走開voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQue
30、ueCar*W)introom;CarNode*p,*t;QueueNode*q;if(Enter-top0)/判斷泊車場能否為空while(1)/輸入走開車輛的信息printf(n請輸入車在車場的地點/1-%d/:,Enter-top);scanf(%d,&room);if(room=1&roomtop)break;elseprintf(n您的輸入有誤,請從頭輸入:);while(Enter-toproom)/把要走開車輛前面的車開出來,進暫時棧。Temp-top+;/暫時通道的棧頂指針Temp-stackTemp-top=Enter-stackEnter-top;Enter-stackEn
31、ter-top=NULL;Enter-top-;p=Enter-stackEnter-top;/把要刪除的車輛節(jié)點賦給p。Enter-stackEnter-top=NULL;Enter-top-;while(Temp-top=1)/判斷暫時通道上能否有車。Enter-top+;Enter-stackEnter-top=Temp-stackTemp-top;Temp-stackTemp-top=NULL;Temp-top-;PRINT(p,room);/調用計費函數計費。if(W-head!=W-rear)&Enter-tophead-next;t=q-data;Enter-top+;print
32、f(n便道上的%s號車進入泊車場內第%d地點.,t-num,Enter-top);printf(n請輸入%s號車進入泊車場的時間:,t-num);18德州學院2012級信息管理學院計算機科學與技術數據構造課程設計scanf(%d:%d,&(t-reach.hour),&(t-reach.min);while(t-reach.hourreach.hour23)/控制時間格式正確printf(您的輸入有誤!);printf(請從頭輸入抵達時間的時(0-23):);scanf(%d,&(t-reach.hour);while(t-reach.minreach.min59)/控制分鐘輸入正確printf(您的輸入有誤!);printf(請從頭輸入抵達時間的分(0-59):);scanf(%d,&(t-reach.min);W-head-next=q-next;if(q=W-rear)W-rear=W-head;Enter-stackEnter-top=t;printf(n恭賀您登記成功!);free(q);elseprintf(n您好,便道上沒有車!n);printf(n);elseprintf(n您好,泊車場內沒有車!);printf(n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國壓配式大負荷實芯輪胎市場調查研究報告
- 2025年中國出租屋申報系統市場調查研究報告
- 2025年中國全自動立式包裝機市場調查研究報告
- 2025年中國丙二醇醚催化劑市場調查研究報告
- 2025年中國PBT專用色母料市場調查研究報告
- 2025年中國2-巰基苯丙噻唑市場調查研究報告
- 2025年原乙酸三甲酯項目建議書
- 2025監(jiān)理工程師建設工程合同管理摸底卷
- 車載軟件在新能源汽車中的應用試題及答案
- 《骨肉瘤危險》課件
- 初中體育課堂安全教育
- 碼頭安全生產知識
- 《年產100公斤阿司匹林生產工藝設計》8700字(論文)
- 全屋整裝培訓
- 《風電安全生產培訓》課件
- 常見病用藥指導技術知到智慧樹章節(jié)測試課后答案2024年秋天津生物工程職業(yè)技術學院
- 2025年日歷(日程安排-可直接打印)
- 保密法律法規(guī)
- 鑄牢中華民族共同體意識-形考任務1-國開(NMG)-參考資料
- 踝關節(jié)骨折的分型與治療
- 2024-2025學年廣東省深圳市高三下學期質量調研(二模)生物試題試卷含解析
評論
0/150
提交評論