




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告姓名學(xué)號提交日期2011.08.19成績指導(dǎo)教師實驗題目:停車場管理系統(tǒng)問題解析(對問題的分析、理解和解題方法):確定研究對象,確定所用到的數(shù)據(jù)結(jié)構(gòu)。模擬停車管理。車道中的車離開概率隨時間改變,用隨機函數(shù)使其隨機離開。隨機確定到來車數(shù)量,并處理。數(shù)據(jù)結(jié)構(gòu)選擇、算法設(shè)計:時間類TIME,車輛類CAR,收入統(tǒng)計BOSS.CAR類中建立鏈表。任務(wù)分工及進度計劃: 單人完成,其中查閱了相關(guān)關(guān)于隨機數(shù)資料。首先完成大體架構(gòu),載逐漸豐富程序內(nèi)容,逐個增加函數(shù)。用戶手冊因為是模擬,所以時間日固定了,小時數(shù)程序中可以改變。操作程序中都有相關(guān)提示測試結(jié)果程序清單:#include<io
2、stream>#include<stdlib.h>/需要用到隨機數(shù)生成函數(shù)rand()#include<ctime>/隨機數(shù)種子用到(時間作為隨機數(shù)種子)using namespace std;/時 間 類 的 定 義class TIMEfriend class DOPARK;/友元類的聲明,后面用到friend class BOSS;private:int day;/天,其實可以不要,繁瑣了int hour;public:TIME() day=0; hour=0;void settime(int x,int y)day=x;hour=y;/設(shè)定時間void pr
3、inttime()cout<<"時間是: "<<day<<"日"<<hour<<"時"<<endl;/打印時間void addtime()hour+;/每過一小時小時加1;/*-*/car 類 的 定 義struct CARint name;/車名int number;/車位號int mark;/標(biāo)記,表示停留時間(0,1,2,3,4)TIME reach;/到來離去時間TIME leave;CAR *next;/*-*/收 入 統(tǒng) 計 類class BOSSfr
4、iend class DOPARK;/友元類聲明private:int car_income;TIME clock;public:BOSS();void showclock();/顯示當(dāng)前時間void addclock();/時間每小時+void printboss();/打印收入void bosstest();/為了模擬而做的初始化void setincome(int x)car_income=car_income+x;BOSS:BOSS()/構(gòu)造函數(shù)car_income=0;clock.settime(5,1);void BOSS:printboss()/打印停車總量cout<<
5、;"車場總收入: "<<car_income<<endl;void BOSS:showclock()clock.printtime();void BOSS:addclock()clock.addtime();void BOSS:bosstest()car_income=0;/*-*/車 道 鏈 表 類class DOPARKprivate:CAR * head;int car_in;int length;/鏈表長度固定下來public:DOPARK();void showout(CAR *q);/展示離開車輛時為了縮減規(guī)模的函數(shù),防止重復(fù)代碼void
6、 creat(int len);/創(chuàng)建30長度的車道void print_park();/打印車道void car_add();void car_leave(BOSS *B);/檢車并打印走掉的車void check_park();void showcoming();/展示有多少輛車來到void car_plus();/每過一小時時對車道中的車的已停小時的+1void car_test();/為測試而給車道初始化void clear(CAR *);DOPARK:DOPARK()/構(gòu)造函數(shù)head=NULL;car_in=0;length=30;void DOPARK:creat(int len
7、)/初始化鏈表CAR * p1,*p2;int i=0;head=new CAR;head->name=-1;head->mark=1;head->number=1;p1=head;p2=head;while(i<len)i+;p1=new CAR;p2->next=p1;head->name=-1;p1->mark=1;p1->number=i+1;p2=p1;p2->next=NULL;void DOPARK:print_park()/打印車道CAR *p;p=head;while(p!=NULL)if(p->name=-1)p=
8、p->next;elsecout<<"車位號"<<p->number<<"車名"<<p->name<<endl;p=p->next;void DOPARK:showout(CAR *q)/另外設(shè)定函數(shù)縮減代碼規(guī)模BOSS b;CAR *p;b.addclock();p=q;cout<<"汽車"<<p->number<<"車名"<<p->name<<"離
9、開"cout<<"其到達"p->reach.printtime();cout<<"其離開"p->leave.printtime();cout<<"停車費是"<<30*p->mark<<endl;void DOPARK:clear(CAR *q)/車離開后初始化車位,歸零。CAR *p;p=q;p->name=-1;p->mark=0;p->reach;p->leave;void DOPARK:car_leave(BOSS *
10、X)/檢車并打印走掉的車,因為用到類,所以麻煩的用到了對象的指針。srand(unsigned)time(NULL);CAR *p;BOSS *BO;BO=X;int i,j;p=head;while(p!=NULL)i=p->mark;switch(i)case 1:j=rand()%4;if(j=0)showout(p);(*BO).setincome(30);clear(p);break;case 2:j=rand()%2;if(j=0)showout(p);(*BO).setincome(60);clear(p);break;case 3:j=rand()%4;if(j=0|j=
11、1|j=2)showout(p);(*BO).setincome(90);clear(p);break;case 4:showout(p);(*BO).setincome(120);clear(p);break;default:break;p=p->next;void DOPARK:showcoming()/展示來到的車int coming;srand(unsigned)time(NULL);coming=rand()%21;car_in=coming;cout<<"-另外現(xiàn)在有"<<car_in<<"車要來-"
12、<<endl;cout<<endl;cout<<endl;void DOPARK:car_plus()/每過一小時時對車道中的車的已停小時的+1CAR *p;p=head;while(p!=NULL)if(p->name=-1)p=p->next;elsep->mark+;p->leave.addtime();p=p->next;return ;void DOPARK:car_test()/為了測試,于是給車道初始化了。srand(unsigned)time(NULL);CAR *p;p=head;while(p!=NULL)p
13、->name=(rand()%(2000-1000)+1000);p->mark=0;p->reach.settime(5,1);p->leave.settime(5,1);p=p->next;void DOPARK:car_add()/車到來,加入車道srand(unsigned)time(NULL);int free=0;int temp;CAR *p;p=head;while(p!=NULL)/判斷空位if(p->name=-1)free+;p=p->next;cout<<free<<endl;p=head;if(free
14、=0)/若沒有空位cout<<"車道已滿!"<<endl;else if(free>=car_in)/空位富足cout<<"車道充足"<<endl;while(p!=NULL&&car_in!=0)if(p->name=-1)p->name=(rand()%(2000-1000)+1000);p->mark=0;cout<<"汽車"<<p->name<<"進入"<<p->
15、;number<<"車道"<<endl;car_in-;p=p->next;elsep=p->next;else if(free<car_in)/空位少于來車數(shù)cout<<"只有"<<free<<"輛車能進入車道"<<endl;while(p!=NULL)if(p->name=-1)p->name=(rand()%(2000-1000)+1000);p->mark=0;cout<<"汽車"<
16、<p->name<<"進入"<<p->number<<"車道"<<endl;free-;p=p->next;elsep=p->next;/*-*/主函數(shù)*int main()class DOPARK x,y;class BOSS b;BOSS *B;B=&b;b.bosstest();x.creat(29);x.car_test();y.creat(4);y.car_test();int choice;while(1)cout<<"|*停車場管理系
17、統(tǒng)*|"<<endl;cout<<" 當(dāng)前時間:"b.showclock();cout<<" "<<endl;cout<<"1.查詢當(dāng)前車道情況"<<endl;cout<<"2.查詢當(dāng)前便道情況"<<endl;cout<<"3.查詢當(dāng)前總車場統(tǒng)計"<<endl;cout<<"4.我想看下一小時"<<endl;cout<<"5.退出系統(tǒng)"<<endl;cout<<"|*|"<<endl;cout<<"請選擇:"cin>>choice;switch(choice)case 1:x.print_park();break;case 2:y.print
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電視設(shè)備智能生物診斷技術(shù)考核試卷
- 園林綠化工程綠化施工項目風(fēng)險管理考核試卷
- 典當(dāng)行不良資產(chǎn)處置與風(fēng)險化解考核試卷
- 無損檢測非金屬專用設(shè)備考核試卷
- 廚房電器行業(yè)人才培養(yǎng)與技能培訓(xùn)考核試卷
- 紡織行業(yè)經(jīng)濟效益與投資回報分析考核試卷
- 服務(wù)綠色發(fā)展考核試卷
- 屠宰場食品安全管理考核試卷
- 漁業(yè)資源的保護與可持續(xù)發(fā)展考核試卷
- 糖果與巧克力銷售區(qū)域差異化策略考核試卷
- 2024-2025人教PEP版(三起)(2024)小學(xué)英語三年級上冊(全冊)教學(xué)設(shè)計及反思(完整版P84)
- 2025-2030中國鍛造(鍛件)行業(yè)投資策略及規(guī)劃建議研究研究報告
- 2025年上半年四川廣元旺蒼縣引進高層次人才23人重點基礎(chǔ)提升(共500題)附帶答案詳解
- 骨科快速康復(fù)護理理念
- 新藥臨床試驗合作協(xié)議
- GB 5009.268-2025食品安全國家標(biāo)準(zhǔn)食品中多元素的測定
- 設(shè)備部門級安全培訓(xùn)
- 智研咨詢發(fā)布:2025年中國家庭智能機器人行業(yè)市場現(xiàn)狀及投資前景分析報告
- 華為經(jīng)營管理叢書華為的研發(fā)管理
- 2025年安徽國際商務(wù)職業(yè)學(xué)院單招職業(yè)技能考試題庫及答案1套
- 2025年心理b證筆試試題及答案
評論
0/150
提交評論