版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 實(shí)訓(xùn)報(bào)告專 業(yè):班 級:學(xué) 號:姓 名:課設(shè)題目: 停車場模擬管理系統(tǒng) 指導(dǎo)教師:專心-專注-專業(yè)目錄一、 需求分析1二、 總體設(shè)計(jì)12.1系統(tǒng)功能概述1三、 到達(dá)停車場準(zhǔn)備進(jìn)入停車場23.1進(jìn)入停車場函數(shù)2四、 離開停車場3五、 詳細(xì)設(shè)計(jì)55.1函數(shù)的調(diào)用關(guān)系55.2主要算法的流程圖6六、 軟件說明:76.1使用環(huán)境:Visual C+ 6.0.7操作要求:程序運(yùn)行后,用戶根據(jù)所要進(jìn)行的操作選擇是進(jìn)入停車場還是離開停車場并輸入車牌號和時(shí)間76.2測試圖:7七、 總結(jié)9附錄:程序代碼91、 需求分析 停車場模擬管理系統(tǒng)現(xiàn)在很多的大型超市等都有智能的停車場當(dāng)你進(jìn)入停車
2、場門口就會自動(dòng)的顯示里面還有多少的空位并且指引你走到空的車位停下避免了把車輛開進(jìn)去并且找不到空的車位和因?yàn)檐囎釉谕\噲鰞?nèi)亂走而導(dǎo)致想出來的車沒有足夠的時(shí)間出來。導(dǎo)致空間和時(shí)間各種不必要的麻煩所以急需我們做一個(gè)停車場管理系統(tǒng) 。我們的停車場模擬管理系統(tǒng)有以下方面功能:1記錄進(jìn)入停車場的車輛的車牌號從而進(jìn)入后可以知道其所停的停車位。2車子離開停車場根據(jù)離開時(shí)間和進(jìn)入時(shí)間從而計(jì)算出所需要交的費(fèi)用。3如果隊(duì)列已經(jīng)滿了可以讓要進(jìn)入停車場的車子停在旁邊的等候隊(duì)列。2、 總體設(shè)計(jì)2.1系統(tǒng)功能概述(1)如果選擇進(jìn)入停車場就要判斷停車場是否已經(jīng)滿了,如果未滿直接進(jìn)入,如果滿了的話就直接排在旁邊的便道上等待有車
3、子離開停車場從而進(jìn)入停車場。(2) 同時(shí)改程序還設(shè)立多了一個(gè)位置以便與有車進(jìn)入同時(shí)有車離開可以停留在這里等候車子離開再進(jìn)入。(以防止車子停車場內(nèi)的車未能離開進(jìn)入的車又正在進(jìn)入從而導(dǎo)致停車場堵塞的情況)(3) 離開的時(shí)候根據(jù)離開的車牌號從而把它從停車場中的位置移開并且通過離開時(shí)間和進(jìn)入停車場的時(shí)間來計(jì)算出該車子所需要交納的費(fèi)用。等候隊(duì)列離開停車場退出 進(jìn)入停車場系統(tǒng)操作界面 有車離開 如果等候隊(duì)列不為空的話進(jìn)入停 2.11 總體設(shè)計(jì)圖3、 到達(dá)停車場準(zhǔn)備進(jìn)入停車場void parkingmanagement:arrival(carstack &cs,carqueue &cq,in
4、t cnum,double ctime)int pos;if(!(cs.full() 到達(dá)停車場的車子首先輸入其判int fl(0),i; 斷停車場是否已經(jīng)滿了如果則直for(i=0;i<=cs.top;i+) 接進(jìn)入等候車道否則就進(jìn)入停場if(cs.si.number=cnum)fl=1;break;if(fl=1)cout<<"輸入錯(cuò)誤!請重新輸入!如果到達(dá)的車的車牌號!=棧內(nèi)已有車輛的車牌號"<<endl;elsepos=pushstack(cs,cnum,ctime);/入棧,返回車位信息cout<<"該停車場還有
5、空位,請到"<<pos<<"號車位進(jìn)行泊車"<<endl;cout<<endl;elsepos=pushqueue(cq,cnum,ctime);cout<<"該停車場已滿,請將車停到便道"<<pos<<"號車位上"<<endl;cout<<endl;3.1進(jìn)入停車場函數(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<<"該車在本停車場內(nèi)停留時(shí)間為"<<hour<<"分鐘,應(yīng)付金額"<<hour*(price/60)<<"元!"<<e
8、ndl; cs.top-;elsep=cq.front;while(p!=NULL) /如果所輸入的車牌號的車子并不是 在停車內(nèi)而是在等候車道內(nèi)就可直接開走無需收費(fèi)count+;p=p->next;if(p->number=cnum)deletequeue(cq,count);if(count>Max)cout<<"您的車在便道上的位置為"<<count<<"號車位,請自行駛離,無需付費(fèi)!"<<endl;break;if(p=NULL) cout<<"您的車不在本停車
9、場內(nèi),或輸入有誤,請重新輸入!"<<endl; 5、 詳細(xì)設(shè)計(jì)5.1函數(shù)的調(diào)用關(guān)系 如下圖:主函數(shù) 數(shù)據(jù)輸入 進(jìn)入停車場Pushtack函數(shù) 判斷是進(jìn)入還是離開Arrival或者leave函數(shù) 等候便道pos=pushqueue(cq,cnum,ctime); 有車離開則進(jìn)入 判斷停車場是否滿 full() 滿則進(jìn)入等候隊(duì)列 圖5.11 函數(shù)調(diào)用5.2主要算法的流程圖圖5.22主要算法圖6、 軟件說明:6.1使用環(huán)境:Visual C+ 6.0.操作要求:程序運(yùn)行后,用戶根據(jù)所要進(jìn)行的操作選擇是進(jìn)入停車場還是離開停車場并輸入車牌號和時(shí)間6.2測試圖:程序開始運(yùn)行: 圖 6
10、.1 程序主界面進(jìn)入停車場輸入選項(xiàng)和車牌號和時(shí)間:圖6.2 進(jìn)入停車場離開停車場輸入D 車牌號 時(shí)間:(根據(jù)車牌號找到相應(yīng)的車)圖6.3離開停車場顯示結(jié)果 7、 總結(jié)在這一次的實(shí)訓(xùn)中才知道什么叫做真真正正的體會到什么叫做你看得懂程序聽得懂課拿著中上的成績你就口可以說你懂?dāng)?shù)據(jù)結(jié)構(gòu)懂C+懂C了,無數(shù)次在修改代碼無數(shù)次在詢問老師問題同學(xué)問題,每一次編譯錯(cuò)誤減少一小個(gè)心里樂得跟開了花似的。非常的感謝同學(xué)和老師在QQ上不厭其煩的一次又一次的回答我的問題哪怕是一個(gè)馬虎的分號的錯(cuò)誤。正所謂勤能補(bǔ)拙往后的我要更加的努力去學(xué)習(xí)了。附錄:程序代碼#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<<"輸入錯(cuò)誤!請重新輸入!如果到達(dá)的車的車牌號!=棧內(nèi)已有車輛的車牌號"<<endl;Elsepos=pushstack(cs,cnum,ctime);/入棧,返回車位信息cout<<"該停車場還有空位,請到"<<pos<
19、;<"號車位進(jìn)行泊車"<<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<<"該車在本停車場內(nèi)停留時(shí)間為"<<hour<<"分鐘,應(yīng)付金額"<<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<<"號車位,請自行駛離,無需付費(fèi)!"<<endl;break;if(
22、p=NULL) cout<<"您的車不在本停車場內(nèi),或輸入有誤,請重新輸入!"<<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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛東學(xué)院《專業(yè)英語B》2023-2024學(xué)年第一學(xué)期期末試卷
- 三年級科學(xué)上冊第四單元4玻璃和陶瓷教案蘇教版
- 《組織簽字儀式》課件
- 《珍惜校園生活》課件
- 《計(jì)算機(jī)操作員理論》課件
- 安全與小狗玩耍的課件
- 上半年銷售工作總結(jié)及下半年工作參考計(jì)劃范文
- 奶粉培訓(xùn)課件
- 《心理健康教育公開》課件
- 2021年全國統(tǒng)一高考化學(xué)試卷(全國乙卷)
- 大連市小升初手冊
- 《自然辯證法》課后習(xí)題答案自然辯證法課后題答案
- 造價(jià)咨詢結(jié)算審核服務(wù)方案
- 中國人民財(cái)產(chǎn)保險(xiǎn)股份有限公司機(jī)動(dòng)車綜合商業(yè)保險(xiǎn)條款
- 燃?xì)夤こ瘫O(jiān)理實(shí)施細(xì)則(通用版)
- E車E拍行車記錄儀說明書 - 圖文-
- 人才梯隊(duì)-繼任計(jì)劃-建設(shè)方案(珍貴)
- 《健身氣功》(選修)教學(xué)大綱
- 王家?guī)r隧道工程地質(zhì)勘察報(bào)告(總結(jié))
- 《昆明的雨》優(yōu)質(zhì)課一等獎(jiǎng)(課堂PPT)
- EHS的組織架構(gòu)和職責(zé)說明(共2頁)
評論
0/150
提交評論