含隨機(jī)數(shù)與概率的停車管理系統(tǒng)【原】_第1頁
含隨機(jī)數(shù)與概率的停車管理系統(tǒng)【原】_第2頁
含隨機(jī)數(shù)與概率的停車管理系統(tǒng)【原】_第3頁
含隨機(jī)數(shù)與概率的停車管理系統(tǒng)【原】_第4頁
含隨機(jī)數(shù)與概率的停車管理系統(tǒng)【原】_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告姓名學(xué)號(hào)提交日期2011.08.19成績(jī)指導(dǎo)教師實(shí)驗(yàn)題目:停車場(chǎng)管理系統(tǒng)問題解析(對(duì)問題的分析、理解和解題方法):確定研究對(duì)象,確定所用到的數(shù)據(jù)結(jié)構(gòu)。模擬停車管理。車道中的車離開概率隨時(shí)間改變,用隨機(jī)函數(shù)使其隨機(jī)離開。隨機(jī)確定到來車數(shù)量,并處理。數(shù)據(jù)結(jié)構(gòu)選擇、算法設(shè)計(jì):時(shí)間類TIME,車輛類CAR,收入統(tǒng)計(jì)BOSS.CAR類中建立鏈表。任務(wù)分工及進(jìn)度計(jì)劃: 單人完成,其中查閱了相關(guān)關(guān)于隨機(jī)數(shù)資料。首先完成大體架構(gòu),載逐漸豐富程序內(nèi)容,逐個(gè)增加函數(shù)。用戶手冊(cè)因?yàn)槭悄M,所以時(shí)間日固定了,小時(shí)數(shù)程序中可以改變。操作程序中都有相關(guān)提示測(cè)試結(jié)果程序清單:#include<io

2、stream>#include<stdlib.h>/需要用到隨機(jī)數(shù)生成函數(shù)rand()#include<ctime>/隨機(jī)數(shù)種子用到(時(shí)間作為隨機(jī)數(shù)種子)using namespace std;/時(shí) 間 類 的 定 義class TIMEfriend class DOPARK;/友元類的聲明,后面用到friend class BOSS;private:int day;/天,其實(shí)可以不要,繁瑣了int hour;public:TIME() day=0; hour=0;void settime(int x,int y)day=x;hour=y;/設(shè)定時(shí)間void pr

3、inttime()cout<<"時(shí)間是: "<<day<<"日"<<hour<<"時(shí)"<<endl;/打印時(shí)間void addtime()hour+;/每過一小時(shí)小時(shí)加1;/*-*/car 類 的 定 義struct CARint name;/車名int number;/車位號(hào)int mark;/標(biāo)記,表示停留時(shí)間(0,1,2,3,4)TIME reach;/到來離去時(shí)間TIME leave;CAR *next;/*-*/收 入 統(tǒng) 計(jì) 類class BOSSfr

4、iend class DOPARK;/友元類聲明private:int car_income;TIME clock;public:BOSS();void showclock();/顯示當(dāng)前時(shí)間void addclock();/時(shí)間每小時(shí)+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、;"車場(chǎng)總收入: "<<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;/鏈表長(zhǎng)度固定下來public:DOPARK();void showout(CAR *q);/展示離開車輛時(shí)為了縮減規(guī)模的函數(shù),防止重復(fù)代碼void

6、 creat(int len);/創(chuàng)建30長(zhǎng)度的車道void print_park();/打印車道void car_add();void car_leave(BOSS *B);/檢車并打印走掉的車void check_park();void showcoming();/展示有多少輛車來到void car_plus();/每過一小時(shí)時(shí)對(duì)車道中的車的已停小時(shí)的+1void car_test();/為測(cè)試而給車道初始化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<<"車位號(hào)"<<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<<"其到達(dá)"p->reach.printtime();cout<<"其離開"p->leave.printtime();cout<<"停車費(fèi)是"<<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)/檢車并打印走掉的車,因?yàn)橛玫筋?,所以麻煩的用到了?duì)象的指針。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()/每過一小時(shí)時(shí)對(duì)車道中的車的已停小時(shí)的+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()/為了測(cè)試,于是給車道初始化了。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<<"進(jìn)入"<<p->

15、;number<<"車道"<<endl;car_in-;p=p->next;elsep=p->next;else if(free<car_in)/空位少于來車數(shù)cout<<"只有"<<free<<"輛車能進(jìn)入車道"<<endl;while(p!=NULL)if(p->name=-1)p->name=(rand()%(2000-1000)+1000);p->mark=0;cout<<"汽車"<

16、<p->name<<"進(jìn)入"<<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<<"|*停車場(chǎng)管理系

17、統(tǒng)*|"<<endl;cout<<" 當(dāng)前時(shí)間:"b.showclock();cout<<" "<<endl;cout<<"1.查詢當(dāng)前車道情況"<<endl;cout<<"2.查詢當(dāng)前便道情況"<<endl;cout<<"3.查詢當(dāng)前總車場(chǎng)統(tǒng)計(jì)"<<endl;cout<<"4.我想看下一小時(shí)"<<endl;cout<<"5.退出系統(tǒng)"<<endl;cout<<"|*|"<<endl;cout<<"請(qǐng)選擇:"cin>>choice;switch(choice)case 1:x.print_park();break;case 2:y.print

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論