車(chē)位管理課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  設(shè)計(jì)題目:車(chē)位管理 </p><p><b>  學(xué)生姓名:</b></p><p>  專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p><b>  班級(jí):</b></p><p><

2、b>  學(xué)號(hào):</b></p><p><b>  指導(dǎo)老師:</b></p><p>  完成日期:2012.7.4</p><p>  (一) 需求和規(guī)格說(shuō)明</p><p><b>  車(chē)位管理</b></p><p>  隨著家庭購(gòu)買(mǎi)汽車(chē)的增加,停車(chē)

3、場(chǎng)車(chē)位緊張的問(wèn)題越來(lái)越突出。請(qǐng)根據(jù)題目要求完成簡(jiǎn)單的車(chē)位管理程序。 </p><p>  1.停車(chē)場(chǎng)有若干停車(chē)位(為說(shuō)明問(wèn)題,假定為3個(gè)),每個(gè)位置可以存放不同種類(lèi)的汽車(chē),包括卡車(chē)Truck,客車(chē)Carriage和小轎車(chē)Car,但同一時(shí)刻一個(gè)位置只能存放0或1輛汽車(chē)。 </p><p>  2.管理系統(tǒng)模擬實(shí)際車(chē)輛停車(chē)的情況:</p><p> ?、佟⊥\?chē):新來(lái)車(chē)輛

4、時(shí)如果有空位,按順序?yàn)樵撥?chē)分配停車(chē)位,并自動(dòng)記錄開(kāi)始停車(chē)的時(shí)間(用系統(tǒng)的時(shí)間);</p><p> ?、凇∮?jì)費(fèi):車(chē)輛開(kāi)走時(shí),輸入車(chē)位編號(hào),自動(dòng)記錄結(jié)束停車(chē)的時(shí)間(用系統(tǒng)的時(shí)間);計(jì)算出相應(yīng)停車(chē)費(fèi);</p><p> ?、邸★@示:顯示停車(chē)場(chǎng)中各類(lèi)車(chē)輛的信息。 </p><p><b> ?、堋”4?lt;/b></p><p>

5、<b> ?、荨⊥顺?lt;/b></p><p>  3.定義描述停車(chē)場(chǎng)的類(lèi)Park,其中有3個(gè)位置用于存放各類(lèi)車(chē)輛。 </p><p>  4.定義基類(lèi)Automobile,至少包括純虛函數(shù)Pay用于顯示車(chē)輛信息并交納相應(yīng)停車(chē)費(fèi)。 </p><p>  5.定義派生類(lèi)Truck,Carriage和Car,這些車(chē)輛除了擁有車(chē)牌號(hào)、之外,</p

6、><p>  Truck還擁有載重量(浮點(diǎn)數(shù),單位噸)屬性,Carriage還擁有乘坐人數(shù)(整數(shù),單位座)屬性,Car還擁有排氣量(浮點(diǎn)數(shù),單位L)屬性。具體實(shí)現(xiàn)上述純虛函數(shù)Pay,顯示每類(lèi)車(chē)輛的相應(yīng)信息,并給出計(jì)價(jià)提示,其中Truck收費(fèi)2元/小時(shí),Carriage收費(fèi)1.5元/小時(shí),Car收費(fèi)1元/小時(shí)。</p><p><b>  (二) 設(shè)計(jì)</b></p&

7、gt;<p>  根據(jù)上述需求,設(shè)計(jì)一個(gè)基類(lèi)Automobile,然后派生出Truck(卡車(chē)),Carriage(客車(chē)),Car(小轎車(chē))。定義描述停車(chē)場(chǎng)的類(lèi)Park,其中有3個(gè)位置用于存放各類(lèi)車(chē)輛。</p><p>  在基類(lèi)中,除了定義公用變量time和number以外,還應(yīng)統(tǒng)一定義對(duì)各類(lèi)車(chē)都應(yīng)有的操作,這樣可以規(guī)范各派生類(lèi)的基本行為。但是各類(lèi)人員的情況不同,不能在基類(lèi)Automobile中統(tǒng)一

8、定義計(jì)算方法。各類(lèi)人員信息的顯示內(nèi)容也不同,同樣不能在基類(lèi)中統(tǒng)一定義顯示方法。因此,在Automobile類(lèi)中用純虛函數(shù)的方式定義了計(jì)算收費(fèi)函數(shù)pay()和取車(chē)函數(shù)pick(),然后在派生類(lèi)中再根據(jù)各自的同名函數(shù)實(shí)現(xiàn)具體的功能。</p><p>  即先定義基類(lèi)Automobile,在通過(guò)公有繼承得到Car, Carriage,Car.同時(shí)定義含有Automobile</p><p>  

9、Park[3]的類(lèi)Park。</p><p><b> ?。ㄈ?用戶手冊(cè)</b></p><p>  按程序提示進(jìn)行即可。</p><p><b> ?。ㄋ模?調(diào)試及測(cè)試</b></p><p><b>  進(jìn)一步改進(jìn)</b></p><p>  能靈

10、活選取停車(chē)位置,而不是順序依次選取。</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;該卡車(chē)車(chē)牌號(hào)為:";</p><p>  cin>>Number;</p><p>  cout<<"該卡車(chē)的載重量為(噸):";</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<<"車(chē)輛類(lèi)型:卡車(chē)"<<endl;</p><p>  cout<<"車(chē)牌號(hào):"<<Number

26、<<endl;</p><p>  cout<<"卡車(chē)的載重量為:"<<zzl<<"噸"<<endl;</p><p>  cout<<"卡車(chē)的收費(fèi)標(biāo)準(zhǔn)為每小時(shí)2元." <<endl;</p><p>  cout<&

27、lt;"停車(chē)的時(shí)間為:"<<time<<"小時(shí)"<<endl;</p><p>  cout<<"所需費(fèi)用為:"<<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;<"該客車(chē)牌號(hào)為:";</p><p>  cin>>Number;</p><p>  cout<<"該客車(chē)的乘坐人數(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<<"車(chē)輛類(lèi)型:客車(chē)"<<endl;</p><p>  cout<<"車(chē)牌號(hào):"<<Number<&l

34、t;endl;</p><p>  cout<<"客車(chē)可以乘坐的人數(shù):"<<chairs<<"噸"<<endl;</p><p>  cout<<"客車(chē)的收費(fèi)標(biāo)準(zhǔn)為每小時(shí)1.5元." <<endl;</p><p>  cout<

35、<"停車(chē)的時(shí)間為:"<<time<<"小時(shí)"<<endl;</p><p>  cout<<"所需費(fèi)用為:"<<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<<"該小轎車(chē)車(chē)牌號(hào)為:";</p><p>  cin>>Number;</p><p>  cout<<"該小轎車(chē)的排氣量(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<<"車(chē)輛類(lèi)型:小轎車(chē)"<<endl;</p><p>  cout<<"車(chē)牌號(hào):&qu

42、ot;<<Number<<endl;</p><p>  cout<<"小轎車(chē)的排氣量:"<<air<<"L"<<endl;</p><p>  cout<<"小轎車(chē)的收費(fèi)標(biāo)準(zhǔn)為每小時(shí)1元." <<endl;</p>&l

43、t;p>  cout<<"停車(chē)的時(shí)間為:"<<time<<"小時(shí)"<<endl;</p><p>  cout<<"所需費(fèi)用為:"<<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<<"個(gè)車(chē)位上沒(méi)有車(chē)!"<<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<<"取車(chē)成功!"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void Park::statistics(

50、) </p><p><b>  {</b></p><p>  cout<<"目前停車(chē)場(chǎng)有:"<<Truck::number()<<"輛卡車(chē),"<<Carriage::number()<<"輛客車(chē),"<<Car::number()

51、<<"輛小轎車(chē)!"<<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<<"* "<<"歡迎進(jìn)入停車(chē)場(chǎng)交費(fèi)管理系統(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<<"請(qǐng)選擇(1--3):"<<endl;</p><p>  cout<<" "<<"1:停 車(chē)"<<endl;</p><p

60、>  cout<<" "<<"2:取車(chē)交費(fèi)"<<endl;</p><p>  cout<<" "<<"3:車(chē)輛狀態(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<<"錯(cuò)誤輸入!"<<endl;</p><p>  cout<<"請(qǐng)重新輸入(1-3)選擇相應(yīng)的功能:

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<<"車(chē)庫(kù)已滿,無(wú)法再停車(chē)"<<endl; break;}</p><p>  cout<<"a:卡車(chē) b:客車(chē) c:轎車(chē)"<<endl;</p><p>  cou

64、t<<"請(qǐng)選擇你車(chē)輛的類(lèi)型:";</p><p>  cin>>kind;</p><p>  while (kind!='a'&&kind!='b'&&kind!='c')</p><p><b>  {</b><

65、/p><p>  cout<<"你輸入的車(chē)輛種類(lèi)不正確,請(qǐng)重新從a,b,c選擇車(chē)輛類(lèi)型: ";</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停車(chē)成功!"<<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停車(chē)成功!"<<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停車(chē)成功

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<<"請(qǐng)輸入車(chē)位號(hào)(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論