版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設計報告</b></p><p> 設計題目:車位管理 </p><p><b> 學生姓名:</b></p><p> 專業(yè):計算機科學與技術(shù)</p><p><b> 班級:</b></p><p><
2、b> 學號:</b></p><p><b> 指導老師:</b></p><p> 完成日期:2012.7.4</p><p> ?。ㄒ唬?需求和規(guī)格說明</p><p><b> 車位管理</b></p><p> 隨著家庭購買汽車的增加,停車
3、場車位緊張的問題越來越突出。請根據(jù)題目要求完成簡單的車位管理程序。 </p><p> 1.停車場有若干停車位(為說明問題,假定為3個),每個位置可以存放不同種類的汽車,包括卡車Truck,客車Carriage和小轎車Car,但同一時刻一個位置只能存放0或1輛汽車。 </p><p> 2.管理系統(tǒng)模擬實際車輛停車的情況:</p><p> ?、佟⊥\嚕盒聛碥囕v
4、時如果有空位,按順序為該車分配停車位,并自動記錄開始停車的時間(用系統(tǒng)的時間);</p><p> ② 計費:車輛開走時,輸入車位編號,自動記錄結(jié)束停車的時間(用系統(tǒng)的時間);計算出相應停車費;</p><p> ③ 顯示:顯示停車場中各類車輛的信息。 </p><p><b> ?、堋”4?lt;/b></p><p>
5、<b> ⑤ 退出</b></p><p> 3.定義描述停車場的類Park,其中有3個位置用于存放各類車輛。 </p><p> 4.定義基類Automobile,至少包括純虛函數(shù)Pay用于顯示車輛信息并交納相應停車費。 </p><p> 5.定義派生類Truck,Carriage和Car,這些車輛除了擁有車牌號、之外,</p
6、><p> Truck還擁有載重量(浮點數(shù),單位噸)屬性,Carriage還擁有乘坐人數(shù)(整數(shù),單位座)屬性,Car還擁有排氣量(浮點數(shù),單位L)屬性。具體實現(xiàn)上述純虛函數(shù)Pay,顯示每類車輛的相應信息,并給出計價提示,其中Truck收費2元/小時,Carriage收費1.5元/小時,Car收費1元/小時。</p><p><b> (二) 設計</b></p&
7、gt;<p> 根據(jù)上述需求,設計一個基類Automobile,然后派生出Truck(卡車),Carriage(客車),Car(小轎車)。定義描述停車場的類Park,其中有3個位置用于存放各類車輛。</p><p> 在基類中,除了定義公用變量time和number以外,還應統(tǒng)一定義對各類車都應有的操作,這樣可以規(guī)范各派生類的基本行為。但是各類人員的情況不同,不能在基類Automobile中統(tǒng)一
8、定義計算方法。各類人員信息的顯示內(nèi)容也不同,同樣不能在基類中統(tǒng)一定義顯示方法。因此,在Automobile類中用純虛函數(shù)的方式定義了計算收費函數(shù)pay()和取車函數(shù)pick(),然后在派生類中再根據(jù)各自的同名函數(shù)實現(xiàn)具體的功能。</p><p> 即先定義基類Automobile,在通過公有繼承得到Car, Carriage,Car.同時定義含有Automobile</p><p>
9、Park[3]的類Park。</p><p><b> (三) 用戶手冊</b></p><p> 按程序提示進行即可。</p><p><b> ?。ㄋ模?調(diào)試及測試</b></p><p><b> 進一步改進</b></p><p> 能靈
10、活選取停車位置,而不是順序依次選取。</p><p><b> 附錄源程序</b></p><p> #include<iostream.h></p><p> #include<time.h></p><p> class Automobile</p><p>&
11、lt;b> {</b></p><p><b> public:</b></p><p> virtual void pay()=0; </p><p> virtual void pick()=0;</p><p> ~Automobile(){};</p><
12、;p> protected:</p><p> char *Number; </p><p><b> int time;</b></p><p> clock_t start,finish; </p><p><b> };</b><
13、;/p><p> class Truck:public virtual Automobile</p><p><b> {</b></p><p><b> public:</b></p><p><b> Truck();</b></p><p>
14、 void pay();</p><p> void pick(); </p><p> static int number(); </p><p> ~Truck(){};</p><p> protected:</p><p> float zzl;
15、</p><p> static int trucksum; </p><p><b> };</b></p><p> class Carriage:public Automobile</p><p><b> {</b></p><p><b> p
16、ublic:</b></p><p> Carriage();</p><p> void pay();</p><p> void pick();</p><p> static int number(); </p><p> ~Carriage(){};</p><p
17、> protected:</p><p> int chairs; </p><p> static int carriagesum; </p><p><b> };</b></p><p> class Car:public Automobile</p>
18、<p><b> {</b></p><p><b> public:</b></p><p><b> Car();</b></p><p> void pay();</p><p> void pick();</p><p>
19、 static int number();</p><p><b> ~Car(){};</b></p><p> protected:</p><p> float air; </p><p> static int carsum; </p><p&
20、gt;<b> };</b></p><p> class Park</p><p><b> {</b></p><p><b> public:</b></p><p><b> Park();</b></p><p>
21、; void pick(int n); </p><p> void statistics();</p><p> friend int Judge(Park p);</p><p> Automobile *park[3];</p><p><b> };</b></p><p&g
22、t; int Truck::trucksum=0;</p><p> Truck::Truck()</p><p><b> {</b></p><p> Number=new char[20];</p><p> trucksum++;</p><p> cout<<&q
23、uot;該卡車車牌號為:";</p><p> cin>>Number;</p><p> cout<<"該卡車的載重量為(噸):";</p><p><b> cin>>zzl;</b></p><p> start=clock();</p
24、><p><b> }</b></p><p> void Truck::pay()</p><p><b> {</b></p><p> finish=clock();</p><p> time=int(finish-start)/36000000+1;</
25、p><p> cout<<"*********************************"<<endl;</p><p> cout<<"車輛類型:卡車"<<endl;</p><p> cout<<"車牌號:"<<Number
26、<<endl;</p><p> cout<<"卡車的載重量為:"<<zzl<<"噸"<<endl;</p><p> cout<<"卡車的收費標準為每小時2元." <<endl;</p><p> cout<&
27、lt;"停車的時間為:"<<time<<"小時"<<endl;</p><p> cout<<"所需費用為:"<<2*time<<"元"<<endl;</p><p> cout<<"*********
28、************************"<<endl;</p><p><b> }</b></p><p> void Truck::pick()</p><p><b> {</b></p><p> trucksum--;</p><
29、p><b> }</b></p><p> int Truck::number()</p><p><b> {</b></p><p> return trucksum;</p><p><b> }</b></p><p> int
30、 Carriage::carriagesum=0;</p><p> Carriage::Carriage()</p><p><b> {</b></p><p> Number=new char[20];</p><p> carriagesum++;</p><p> cout&l
31、t;<"該客車牌號為:";</p><p> cin>>Number;</p><p> cout<<"該客車的乘坐人數(shù)(座):";</p><p> cin>>chairs;</p><p> start=clock();</p><
32、;p><b> }</b></p><p> void Carriage::pay()</p><p><b> {</b></p><p> finish=clock();</p><p> time=int(finish-start)/36000000+1;</p>
33、<p> cout<<"*********************************"<<endl;</p><p> cout<<"車輛類型:客車"<<endl;</p><p> cout<<"車牌號:"<<Number<&l
34、t;endl;</p><p> cout<<"客車可以乘坐的人數(shù):"<<chairs<<"噸"<<endl;</p><p> cout<<"客車的收費標準為每小時1.5元." <<endl;</p><p> cout<
35、<"停車的時間為:"<<time<<"小時"<<endl;</p><p> cout<<"所需費用為:"<<1.5*time<<"元"<<endl;</p><p> cout<<"******
36、***************************"<<endl;</p><p><b> }</b></p><p> void Carriage::pick()</p><p><b> {</b></p><p> carriagesum--;</p&
37、gt;<p><b> }</b></p><p> int Carriage::number()</p><p><b> {</b></p><p> return carriagesum;</p><p><b> }</b></p>
38、<p> int Car::carsum=0;</p><p> Car::Car()</p><p><b> {</b></p><p> Number=new char[20];</p><p><b> carsum++;</b></p><p>
39、; cout<<"該小轎車車牌號為:";</p><p> cin>>Number;</p><p> cout<<"該小轎車的排氣量(L):";</p><p><b> cin>>air;</b></p><p> st
40、art=clock();</p><p><b> }</b></p><p> void Car::pay()</p><p><b> {</b></p><p> finish=clock();</p><p> time=int(finish-start)/
41、36000000+1;</p><p> cout<<"*********************************"<<endl;</p><p> cout<<"車輛類型:小轎車"<<endl;</p><p> cout<<"車牌號:&qu
42、ot;<<Number<<endl;</p><p> cout<<"小轎車的排氣量:"<<air<<"L"<<endl;</p><p> cout<<"小轎車的收費標準為每小時1元." <<endl;</p>&l
43、t;p> cout<<"停車的時間為:"<<time<<"小時"<<endl;</p><p> cout<<"所需費用為:"<<1*time<<"元"<<endl;</p><p> cout<&
44、lt;"*********************************"<<endl;</p><p><b> }</b></p><p> void Car::pick()</p><p><b> {</b></p><p><b> ca
45、rsum--;</b></p><p><b> }</b></p><p> int Car::number()</p><p><b> {</b></p><p> return carsum;</p><p><b> }</b&
46、gt;</p><p> Park::Park()</p><p><b> {</b></p><p> for(int i=0;i<3;i++)</p><p> park[i]=NULL;</p><p><b> }</b></p>&l
47、t;p> void Park::pick(int n)</p><p><b> {</b></p><p> if(park[n]==NULL)</p><p> cout<<"第"<<n<<"個車位上沒有車!"<<endl;</p&g
48、t;<p><b> else</b></p><p><b> {</b></p><p> park[n]->pay();</p><p> park[n]->pick(); </p><p> delete park[n]; </p>
49、<p> park[n]=NULL;</p><p> cout<<"取車成功!"<<endl;</p><p><b> }</b></p><p><b> }</b></p><p> void Park::statistics(
50、) </p><p><b> {</b></p><p> cout<<"目前停車場有:"<<Truck::number()<<"輛卡車,"<<Carriage::number()<<"輛客車,"<<Car::number()
51、<<"輛小轎車!"<<endl;</p><p> for(int i=0;i<3;i++){</p><p> if(park[i]!=NULL){park[i]->pay();}</p><p><b> }</b></p><p><b>
52、}</b></p><p> int Judge(Park p)</p><p><b> {</b></p><p> for(int j=0;j<3;j++){</p><p> if(p.park[j]==NULL){ </p><p><b> re
53、turn j;</b></p><p><b> break;}</b></p><p> }return 0;</p><p><b> }</b></p><p> int main()</p><p><b> {</b>&l
54、t;/p><p> Park *park=new Park;</p><p> Truck *truck;</p><p> Carriage *carriage;</p><p><b> Car *car;</b></p><p> int n=0,k,m;</p><
55、;p><b> int i=0;</b></p><p> char kind;</p><p><b> while(1)</b></p><p><b> { </b></p><p> cout<<"***************
56、************************"<<endl;</p><p> cout<<"---------------------------------------"<<endl;</p><p> cout<<"*
57、 *"<<endl;</p><p> cout<<"* "<<"歡迎進入停車場交費管理系統(tǒng)"<<" *"<<endl;</p><p> cout<<"* *&
58、quot;<<endl;</p><p> cout<<"---------------------------------------"<<endl;</p><p> cout<<"***************************************"<<endl;<
59、/p><p> cout<<endl;</p><p> cout<<"請選擇(1--3):"<<endl;</p><p> cout<<" "<<"1:停 車"<<endl;</p><p
60、> cout<<" "<<"2:取車交費"<<endl;</p><p> cout<<" "<<"3:車輛狀態(tài)"<<endl;</p><p><b> cin>>i;&l
61、t;/b></p><p> while(i<1||i>3)</p><p><b> {</b></p><p> cout<<"錯誤輸入!"<<endl;</p><p> cout<<"請重新輸入(1-3)選擇相應的功能:
62、";</p><p><b> cin>>i;</b></p><p><b> }</b></p><p><b> switch(i)</b></p><p><b> {</b></p><p>
63、<b> case 1:</b></p><p> if(n>2) {cout<<"車庫已滿,無法再停車"<<endl; break;}</p><p> cout<<"a:卡車 b:客車 c:轎車"<<endl;</p><p> cou
64、t<<"請選擇你車輛的類型:";</p><p> cin>>kind;</p><p> while (kind!='a'&&kind!='b'&&kind!='c')</p><p><b> {</b><
65、/p><p> cout<<"你輸入的車輛種類不正確,請重新從a,b,c選擇車輛類型: ";</p><p> cin>>kind;</p><p><b> }</b></p><p> m=Judge(*park);</p><p> swit
66、ch(kind)</p><p><b> {</b></p><p><b> case 'a':</b></p><p> truck=new Truck;</p><p> park->park[m]=truck;</p><p><
67、b> n++;</b></p><p> cout<<"\n停車成功!"<<endl;</p><p> break; </p><p><b> case 'b':</b></p><p> carriage=new Carr
68、iage;</p><p> park->park[m]=carriage;</p><p><b> n++;</b></p><p> cout<<"\n停車成功!"<<endl;</p><p> break; </p>
69、<p><b> case 'c':</b></p><p> car=new Car;</p><p> park->park[m]=car;</p><p><b> n++;</b></p><p> cout<<"\n停車成功
70、!"<<endl;</p><p> break; </p><p><b> }</b></p><p><b> break; </b></p><p><b> case 2:</b></p><p> co
71、ut<<"請輸入車位號(0~2):";</p><p><b> cin>>n;</b></p><p> park->pick(n);</p><p><b> break;</b></p><p><b> case 3:<
72、;/b></p><p> park->statistics();</p><p><b> break;</b></p><p><b> }</b></p><p> cout<<"是否繼續(xù)?Yes(1)/No(0) ";</p>
73、<p><b> cin>>k;</b></p><p> if(k==0) return 0;</p><p> cout<<endl<<endl<<endl;</p><p><b> }</b></p><p><b&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論