版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上 實訓報告專 業(yè):班 級:學 號:姓 名:課設題目: 停車場模擬管理系統(tǒng) 指導教師:專心-專注-專業(yè)目錄一、 需求分析1二、 總體設計12.1系統(tǒng)功能概述1三、 到達停車場準備進入停車場23.1進入停車場函數(shù)2四、 離開停車場3五、 詳細設計55.1函數(shù)的調用關系55.2主要算法的流程圖6六、 軟件說明:76.1使用環(huán)境:Visual C+ 6.0.7操作要求:程序運行后,用戶根據(jù)所要進行的操作選擇是進入停車場還是離開停車場并輸入車牌號和時間76.2測試圖:7七、 總結9附錄:程序代碼91、 需求分析 停車場模擬管理系統(tǒng)現(xiàn)在很多的大型超市等都有智能的停車場當你進入停車
2、場門口就會自動的顯示里面還有多少的空位并且指引你走到空的車位停下避免了把車輛開進去并且找不到空的車位和因為車子在停車場內亂走而導致想出來的車沒有足夠的時間出來。導致空間和時間各種不必要的麻煩所以急需我們做一個停車場管理系統(tǒng) 。我們的停車場模擬管理系統(tǒng)有以下方面功能:1記錄進入停車場的車輛的車牌號從而進入后可以知道其所停的停車位。2車子離開停車場根據(jù)離開時間和進入時間從而計算出所需要交的費用。3如果隊列已經滿了可以讓要進入停車場的車子停在旁邊的等候隊列。2、 總體設計2.1系統(tǒng)功能概述(1)如果選擇進入停車場就要判斷停車場是否已經滿了,如果未滿直接進入,如果滿了的話就直接排在旁邊的便道上等待有車
3、子離開停車場從而進入停車場。(2) 同時改程序還設立多了一個位置以便與有車進入同時有車離開可以停留在這里等候車子離開再進入。(以防止車子停車場內的車未能離開進入的車又正在進入從而導致停車場堵塞的情況)(3) 離開的時候根據(jù)離開的車牌號從而把它從停車場中的位置移開并且通過離開時間和進入停車場的時間來計算出該車子所需要交納的費用。等候隊列離開停車場退出 進入停車場系統(tǒng)操作界面 有車離開 如果等候隊列不為空的話進入停 2.11 總體設計圖3、 到達停車場準備進入停車場void parkingmanagement:arrival(carstack &cs,carqueue &cq,in
4、t cnum,double ctime)int pos;if(!(cs.full() 到達停車場的車子首先輸入其判int fl(0),i; 斷停車場是否已經滿了如果則直for(i=0;i<=cs.top;i+) 接進入等候車道否則就進入停場if(cs.si.number=cnum)fl=1;break;if(fl=1)cout<<"輸入錯誤!請重新輸入!如果到達的車的車牌號!=棧內已有車輛的車牌號"<<endl;elsepos=pushstack(cs,cnum,ctime);/入棧,返回車位信息cout<<"該停車場還有
5、空位,請到"<<pos<<"號車位進行泊車"<<endl;cout<<endl;elsepos=pushqueue(cq,cnum,ctime);cout<<"該停車場已滿,請將車停到便道"<<pos<<"號車位上"<<endl;cout<<endl;3.1進入停車場函數(shù) int parkingmanagement:pushstack(carstack &cs,int cnum,double ctime)if(
6、cs.top=Max-1)cout<<"停車場已滿!"<<endl;return Max;else cs.top+;(cs.scs.top).number=cnum;(cs.scs.top).time=ctime;return (cs.top+1); 4、 離開停車場void parkingmanagement:leave(carstack &cs,carqueue &cq,int cnum,double ctime)int i,flag(0),pstack,count(1),outcarnum;double hour;car *p;
7、for(i=0;i<=cs.top;i+)if(cs.si).number=cnum)flag=1;break;if(flag)popstack(cs,cnum);hour=ctime-popstacktime;outcarnum=popqueue(cq);/pstack=pushstack(cs,outcarnum,ctime);cout<<"該車在本停車場內停留時間為"<<hour<<"分鐘,應付金額"<<hour*(price/60)<<"元!"<<e
8、ndl; cs.top-;elsep=cq.front;while(p!=NULL) /如果所輸入的車牌號的車子并不是 在停車內而是在等候車道內就可直接開走無需收費count+;p=p->next;if(p->number=cnum)deletequeue(cq,count);if(count>Max)cout<<"您的車在便道上的位置為"<<count<<"號車位,請自行駛離,無需付費!"<<endl;break;if(p=NULL) cout<<"您的車不在本停車
9、場內,或輸入有誤,請重新輸入!"<<endl; 5、 詳細設計5.1函數(shù)的調用關系 如下圖:主函數(shù) 數(shù)據(jù)輸入 進入停車場Pushtack函數(shù) 判斷是進入還是離開Arrival或者leave函數(shù) 等候便道pos=pushqueue(cq,cnum,ctime); 有車離開則進入 判斷停車場是否滿 full() 滿則進入等候隊列 圖5.11 函數(shù)調用5.2主要算法的流程圖圖5.22主要算法圖6、 軟件說明:6.1使用環(huán)境:Visual C+ 6.0.操作要求:程序運行后,用戶根據(jù)所要進行的操作選擇是進入停車場還是離開停車場并輸入車牌號和時間6.2測試圖:程序開始運行: 圖 6
10、.1 程序主界面進入停車場輸入選項和車牌號和時間:圖6.2 進入停車場離開停車場輸入D 車牌號 時間:(根據(jù)車牌號找到相應的車)圖6.3離開停車場顯示結果 7、 總結在這一次的實訓中才知道什么叫做真真正正的體會到什么叫做你看得懂程序聽得懂課拿著中上的成績你就口可以說你懂數(shù)據(jù)結構懂C+懂C了,無數(shù)次在修改代碼無數(shù)次在詢問老師問題同學問題,每一次編譯錯誤減少一小個心里樂得跟開了花似的。非常的感謝同學和老師在QQ上不厭其煩的一次又一次的回答我的問題哪怕是一個馬虎的分號的錯誤。正所謂勤能補拙往后的我要更加的努力去學習了。附錄:程序代碼#include<iostream>using name
11、space std; const int Max=10;const double price=30;class carpublic:double time;int number;car *next;class carstack friend class parkingmanagement;public:carstack();int empty();int full();car *s;int top;carstack:carstack()top=-1;s=new carMax;if(s=NULL)cout<<"??臻g分配不成功!"<<endl;exit
12、(1);int carstack:full()return top=Max-1;class carqueuefriend class parkingmanagement;public:carqueue();int full();car *front,*rear;carqueue:carqueue()rear=front=NULL;class parkingmanagement public:int pushstack(carstack &cs,int cnum,double ctime);void popstack(carstack &cs,int cnum);int push
13、queue(carqueue &cq,int cnum,double ctime);int popqueue(carqueue &cq);void arrival(carstack &cs,carqueue &cq,int cnum,double ctime);void leave(carstack &cs,carqueue &cq,int cnum,double ctime);void deletequeue(carqueue &cq,int i);int popstacknumber;double popstacktime;int p
14、arkingmanagement:pushstack(carstack &cs,int cnum,double ctime)if(cs.top=Max-1)/Max從1開始,top從0開始cout<<"停車場已滿!"<<endl;return Max;else cs.top+;(cs.scs.top).number=cnum;(cs.scs.top).time=ctime;return (cs.top+1);void parkingmanagement:popstack(carstack &cs,int cnum)int i;car
15、p;carstack stemp;for(i=0; i<=cs.top; i+)if(cs.si).number=cnum) break;p=cs.si;while(cs.top>i) stemp.s+(stemp.top)=cs.s(cs.top)-;popstacknumber=p.number;int popstacknumber()popstacktime=p.time;double popstacktime()cs.top-;while(stemp.top>=0)cs.s+(cs.top)=stemp.s(stemp.top)-;int parkingmanagem
16、ent:pushqueue(carqueue &cq,int cnum,double ctime)car *p,*countp;int count(1);p=new car;p->number=cnum;p->time=ctime;p->next=NULL;if (cq.front=NULL)cq.front=cq.rear=p;elsep->next=(cq.rear)->next;(cq.rear)->next=p;cq.rear=(cq.rear)->next;countp=(cq.front)->next;while(countp
17、!=NULL)count+;countp=countp->next;return count;int parkingmanagement:popqueue(carqueue &cq)car p;if(cq.front!=NULL)p.number=(cq.front)->next)->number;p.time=(cq.front)->next)->time;p.next=(cq.front)->next)->next;return p.number;void parkingmanagement:arrival(carstack &cs
18、,carqueue &cq,int cnum,double ctime)int pos;if(!(cs.full()int fl(0),i;for(i=0;i<=cs.top;i+)if(cs.si.number=cnum)fl=1;break;if(fl=1)cout<<"輸入錯誤!請重新輸入!如果到達的車的車牌號!=棧內已有車輛的車牌號"<<endl;Elsepos=pushstack(cs,cnum,ctime);/入棧,返回車位信息cout<<"該停車場還有空位,請到"<<pos<
19、;<"號車位進行泊車"<<endl;cout<<endl;Elsepos=pushqueue(cq,cnum,ctime);cout<<"該停車場已滿,請將車停到便道"<<pos<<"號車位上"<<endl;cout<<endl;void parkingmanagement:leave(carstack &cs,carqueue &cq,int cnum,double ctime)int i,flag(0),pstack,coun
20、t(1),outcarnum;double hour;car *p;for(i=0;i<=cs.top;i+)if(cs.si).number=cnum)flag=1;break;if(flag)popstack(cs,cnum);hour=ctime-popstacktime;outcarnum=popqueue(cq);pstack=pushstack(cs,outcarnum,ctime);cout<<"該車在本停車場內停留時間為"<<hour<<"分鐘,應付金額"<<hour*(price/6
21、0)<<"元!"<<endl;cs.top-;elsep=cq.front;while(p!=NULL)count+;/如果在過道中找到該車,則該車的位置為過道中的第count位置(count從1開始)p=p->next;if(p->number=cnum)deletequeue(cq,count);if(count>Max)cout<<"您的車在便道上的位置為"<<count<<"號車位,請自行駛離,無需付費!"<<endl;break;if(
22、p=NULL) cout<<"您的車不在本停車場內,或輸入有誤,請重新輸入!"<<endl;void parkingmanagement:deletequeue(carqueue &cq,int i) car *p,*q;int j(0);p=cq.front;while(p && j<i-1)p=p->next;j+;if(!p | !p->next) cout<<"i不合法"elseq=p->next;p->next=q->next;delete q;void print()cout<<"= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ="<<endl;cout<<"= 歡迎光臨! ="<<en
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公大樓幕墻施工安裝合同
- 電子元器件瑕疵管理方案
- 物業(yè)管理集團福利費管理手冊
- 家具行業(yè)項目招投標信息表
- 高空農業(yè)噴灑合同
- 2025個人信用貸款借款合同
- 臨沂生態(tài)農場租賃合同
- 門店市場調研渠道分析
- 醫(yī)用高值耗材管理指南
- 智能家居大清包施工合同
- 新《安全生產法》解讀PPT課件
- E車E拍行車記錄儀說明書 - 圖文-
- 人才梯隊-繼任計劃-建設方案(珍貴)
- WLANAP日常操作維護規(guī)范
- 《健身氣功》(選修)教學大綱
- 王家?guī)r隧道工程地質勘察報告(總結)
- GE公司燃氣輪機組支持軸承結構及性能分析
- 《昆明的雨》優(yōu)質課一等獎(課堂PPT)
- 油氣田地面建設工程ppt課件
- 電動蝶閥安裝步驟說明
- 全自動電鍍流水線操作說明書(共12頁)
評論
0/150
提交評論