數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--停車(chē)場(chǎng)管理系統(tǒng) (2)_第1頁(yè)
已閱讀1頁(yè),還剩25頁(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>  《數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì)》</p><p>  設(shè)計(jì)題目: 停車(chē)場(chǎng)管理系統(tǒng) </p><p>  學(xué) 院: 信息工程學(xué)院 </p><p>  專 業(yè): 醫(yī)學(xué)信息系統(tǒng) </p><p>  班 級(jí): 11級(jí)08班

2、 </p><p>  指導(dǎo)老師: </p><p>  成 績(jī): </p><p><b>  2013年9月7日</b></p><p><b>  目 錄</b>

3、;</p><p>  1項(xiàng)目研究背景與意義………………………………………………… 1</p><p>  2需求分析……………………………………………………………… 3</p><p>  3概要設(shè)計(jì)……………………………………………………………… 3</p><p>  4詳細(xì)設(shè)計(jì)(算法設(shè)計(jì)的思想)………………………………………… 4&l

4、t;/p><p>  5源代碼及調(diào)試………………………………………………………… 6</p><p>  6問(wèn)題及難點(diǎn)所在………………………………………………………15</p><p>  7使用說(shuō)明及測(cè)試結(jié)果…………………………………………………16</p><p>  8總結(jié)與體會(huì)……………………………………………………………19</p

5、><p>  9參考文獻(xiàn)………………………………………………………………20 </p><p>  1 項(xiàng)目研究背景與意義 </p><p><b>  1.1 課題簡(jiǎn)介</b></p><p><b>  課程設(shè)計(jì)題目名稱:</b></p><p><b>  停車(chē)場(chǎng)

6、管理系統(tǒng)</b></p><p><b>  課程設(shè)計(jì)目的:</b></p><p>  通過(guò)《數(shù)據(jù)結(jié)構(gòu)》課程的學(xué)習(xí),將數(shù)據(jù)結(jié)構(gòu)應(yīng)用在具體的編程方面,更加了解課程所學(xué)習(xí)的內(nèi)容及思維邏輯,提高程序開(kāi)發(fā)能力,能運(yùn)用合理的控制流程編寫(xiě)清晰高效的程序。開(kāi)發(fā)一個(gè)中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過(guò)程,培養(yǎng)分析問(wèn)題、解決實(shí)際問(wèn)題的能力。</p><p>

7、;<b>  課程設(shè)計(jì)意義:</b></p><p>  利用數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),了解學(xué)生對(duì)《數(shù)據(jù)結(jié)構(gòu)》的理解和加強(qiáng)學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)方面的應(yīng)用知識(shí)。幫助學(xué)生好好利用數(shù)據(jù)結(jié)構(gòu)的知識(shí)和思想,解決各方面的編程難題。</p><p><b>  課程設(shè)計(jì)內(nèi)容:</b></p><p><b> ?。?)問(wèn)題描述:</b

8、></p><p>  設(shè)有一個(gè)可以停放n輛汽車(chē)的狹長(zhǎng)停車(chē)場(chǎng),它只有一個(gè)大門(mén)可以供車(chē)輛進(jìn)出。車(chē)輛按到達(dá)停車(chē)場(chǎng)時(shí)間的早晚依次從停車(chē)場(chǎng)最里面向大門(mén)口處停放(最先到達(dá)的第一輛車(chē)放在停車(chē)場(chǎng)的最里面)。如果停車(chē)場(chǎng)已放滿n輛車(chē),則后來(lái)的車(chē)輛只能在停車(chē)場(chǎng)大門(mén)外的便道上等待,一旦停車(chē)場(chǎng)內(nèi)有車(chē)開(kāi)走,則排以便道上的第一輛車(chē)就進(jìn)入停車(chē)場(chǎng)。停車(chē)場(chǎng)內(nèi)如有某輛車(chē)要開(kāi)走,在它之后進(jìn)入停車(chē)場(chǎng)的車(chē)都必須先退出停車(chē)場(chǎng)為它讓路,待其開(kāi)出停車(chē)場(chǎng)后

9、,這些輛再依原來(lái)的次序進(jìn)場(chǎng)。每輛車(chē)在離開(kāi)停車(chē)場(chǎng)時(shí),都應(yīng)根據(jù)它在停車(chē)場(chǎng)內(nèi)停留的時(shí)間長(zhǎng)短交費(fèi)。如果停留在便道上的車(chē)未進(jìn)停車(chē)場(chǎng)時(shí),允許其離去,不收停車(chē)費(fèi),并且仍然保持在便道上等待的車(chē)輛的次序。編制一程序模擬該停車(chē)場(chǎng)的管理。</p><p><b> ?。?)基本要求:</b></p><p>  以棧模擬停車(chē)場(chǎng),以隊(duì)列模擬車(chē)場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管

10、理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車(chē)“到達(dá)”或“離去”信息、汽車(chē)牌照號(hào)碼、到達(dá)或離去的時(shí)刻,對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出數(shù)據(jù)為:若是車(chē)輛到達(dá),則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)或便道上的停車(chē)位置;若是車(chē)離去;</p><p>  則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表實(shí)現(xiàn)。</p><p><b>  (3)測(cè)試數(shù)據(jù):<

11、;/b></p><p>  汽車(chē)的模擬輸入信息格式可以是:(到達(dá)/離去,汽車(chē)牌照號(hào)碼,到達(dá)/離去的時(shí)刻)。例如,(‘A’,1,5)表示1號(hào)牌照車(chē)在5這個(gè)時(shí)刻到達(dá),而(‘D’,5,20)表示5號(hào)牌照車(chē)在20這個(gè)時(shí)刻離去。整個(gè)程序可以在輸入信息為(‘E’,0,0)時(shí)結(jié)束。本題可用棧和隊(duì)列來(lái)實(shí)現(xiàn)。</p><p><b> ?。?)實(shí)現(xiàn)提示 </b></p&g

12、t;<p>  需另設(shè)一個(gè)棧,臨時(shí)停放為給要離去的汽車(chē)讓路而從停車(chē)場(chǎng)退出來(lái)的汽車(chē),也用順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)。輸入數(shù)據(jù)按到達(dá)或離去的時(shí)刻有序。棧中每個(gè)元素表示一輛汽車(chē),包含兩個(gè)數(shù)據(jù)項(xiàng):汽車(chē)的牌照號(hào)碼和進(jìn)入停車(chē)場(chǎng)的時(shí)刻。 </p><p>  課程設(shè)計(jì)預(yù)期實(shí)現(xiàn)效果:</p><p>  開(kāi)發(fā)可完成每一項(xiàng)基本功能的小型停車(chē)場(chǎng)管理系統(tǒng)</p><p>  1.2

13、方案及其論證</p><p><b>  語(yǔ)言:C++</b></p><p>  運(yùn)行環(huán)境:Microsoft Visual C++ 6.0</p><p><b>  設(shè)計(jì)進(jìn)度安排:</b></p><p><b>  2需求分析</b></p><p&

14、gt;  IT行業(yè)的高速發(fā)展讓計(jì)算機(jī)技術(shù)深入日常生活的每一個(gè)細(xì)節(jié)。隨著城市化程度的加深,房地產(chǎn)行業(yè)日益興盛,越來(lái)越多的小區(qū)散布在城市里,小區(qū)的車(chē)輛也與日俱增,停車(chē)場(chǎng)是小區(qū)里不可缺少的一部分,對(duì)停車(chē)場(chǎng)飛管理變得非常重要。通過(guò)開(kāi)發(fā)小區(qū)停車(chē)場(chǎng)管理系統(tǒng),使小區(qū)里的車(chē)輛能得到有序的管理,這個(gè)系統(tǒng)使用對(duì)象為停車(chē)場(chǎng)的管理人員。</p><p>  系統(tǒng)需要滿足的要求:若是車(chē)輛到達(dá),則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)或便道上的停車(chē)位置;若是車(chē)

15、離去,則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。</p><p>  3概要設(shè)計(jì)(特殊功能) </p><p><b>  1、設(shè)計(jì)思想</b></p><p>  此停車(chē)場(chǎng)管理系統(tǒng)是在一個(gè)狹長(zhǎng)的通道上的,而且只有一個(gè)大門(mén)可以供車(chē)輛進(jìn)出,并且要實(shí)現(xiàn)停車(chē)場(chǎng)內(nèi)某輛車(chē)要離開(kāi)時(shí),在它之后進(jìn)入停車(chē)場(chǎng)的車(chē)都必須先退出停車(chē)場(chǎng)為

16、它讓路,待其開(kāi)出停車(chē)場(chǎng)后,這些輛再依原來(lái)的次序進(jìn)場(chǎng)的功能,就可以設(shè)計(jì)兩個(gè)堆棧,其中一個(gè)堆棧用來(lái)模擬停車(chē)場(chǎng),另一個(gè)堆棧用來(lái)模擬臨時(shí)停車(chē)場(chǎng),該臨時(shí)停車(chē)場(chǎng)用來(lái)存放當(dāng)有車(chē)輛離開(kāi)時(shí),原來(lái)停車(chē)場(chǎng)內(nèi)為其讓路的車(chē)輛。至于當(dāng)停車(chē)場(chǎng)已滿時(shí),需要停放車(chē)輛的通道可以用一個(gè)鏈隊(duì)列來(lái)實(shí)現(xiàn)。當(dāng)停車(chē)場(chǎng)內(nèi)開(kāi)走一輛車(chē)時(shí),通道上便有一輛車(chē)進(jìn)入停車(chē)場(chǎng),此時(shí)只需要改變通道上車(chē)輛結(jié)點(diǎn)的連接方式就可以了,使通道上第一輛車(chē)進(jìn)入停車(chē)場(chǎng)這個(gè)堆棧,并且使通道上原來(lái)的第二輛車(chē)成為通道上的第一

17、輛車(chē),此時(shí)只需將模擬通道的鏈隊(duì)列的頭結(jié)點(diǎn)連到原來(lái)的第二輛車(chē)上就可以了。</p><p><b>  2、實(shí)現(xiàn)方法</b></p><p>  對(duì)于此停車(chē)場(chǎng)管理系統(tǒng)的實(shí)現(xiàn),就是用兩個(gè)堆棧來(lái)分別模擬停車(chē)場(chǎng)以及停車(chē)場(chǎng)內(nèi)車(chē)輛為其它車(chē)輛讓路時(shí)退出停車(chē)的臨時(shí)停放地點(diǎn)。至于通道上車(chē)輛的停放則用一個(gè)鏈隊(duì)列來(lái)實(shí)現(xiàn),此時(shí),通道上車(chē)輛的離開(kāi)或者進(jìn)入停車(chē)場(chǎng)只需改變此鏈隊(duì)</p>

18、<p>  列上的結(jié)點(diǎn)而已。對(duì)于要對(duì)停車(chē)場(chǎng)內(nèi)的車(chē)輛根據(jù)其停放時(shí)間收取相應(yīng)的停車(chē)費(fèi)用,可以記錄下車(chē)輛進(jìn)入以及離開(kāi)停車(chē)場(chǎng)的時(shí)間,再用時(shí)間差乘以相應(yīng)的單價(jià)并且打印出最后的費(fèi)用就可以實(shí)現(xiàn)了。</p><p>  3、功能(函數(shù))設(shè)計(jì) </p><p>  本程序從總體上分為四個(gè)功能模塊,分別為: </p><p> ?。?)程序功能介紹和操作提示模塊 </

19、p><p>  (2)汽車(chē)進(jìn)入停車(chē)位的管理模塊 </p><p> ?。?)汽車(chē)離開(kāi)停車(chē)位的管理模塊 </p><p> ?。?)查看停車(chē)場(chǎng)狀態(tài)的查詢模塊 </p><p>  在以上各個(gè)模塊中,出現(xiàn)的調(diào)用的函數(shù)為:</p><p>  void InitStack(StackCar *); //初始化棧</p&

20、gt;<p>  int InitQueue(LinkQueueCar *); //初始化隊(duì)列</p><p>  int Arrival(StackCar *,LinkQueueCar *); //進(jìn)站登記</p><p>  void Leave(StackCar *,StackCar *,LinkQueueCar *); //出站登記</p>&

21、lt;p>  void List(StackCar,LinkQueueCar); //查詢車(chē)位狀態(tài)</p><p><b>  4詳細(xì)設(shè)計(jì)</b></p><p><b>  流程圖:</b></p><p><b>  5源代碼及調(diào)試</b></p><p><

22、b>  程序代碼</b></p><p>  #include<iostream.h></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p>

23、<p>  #define MAX 100</p><p>  #define price 0.05</p><p>  typedef struct Time //時(shí)間結(jié)構(gòu)體</p><p><b>  {</b></p><p><b>  int hour;</b></

24、p><p><b>  int min;</b></p><p><b>  }Time;</b></p><p>  typedef struct CarNode //汽車(chē)結(jié)構(gòu)體</p><p><b>  {</b></p><p>  char nu

25、m[10];</p><p>  Time reach;</p><p>  Time leave;</p><p><b>  }CarNode;</b></p><p>  typedef struct StackCar //存儲(chǔ)汽車(chē)的棧結(jié)構(gòu)</p><p><b>  {<

26、;/b></p><p>  CarNode *stack[MAX+1];</p><p><b>  int top;</b></p><p>  }StackCar;</p><p>  typedef struct QueueCarNode //存儲(chǔ)汽車(chē)的隊(duì)列結(jié)構(gòu)</p><p>

27、<b>  {</b></p><p>  CarNode *data;</p><p>  struct QueueCarNode *next;</p><p>  }QueueCarNode;</p><p>  typedef struct LinkQueueCar //定義隊(duì)列結(jié)構(gòu)指針</p>&

28、lt;p><b>  {</b></p><p>  QueueCarNode *head;</p><p>  QueueCarNode *rear;</p><p>  }LinkQueueCar;</p><p>  void InitStack(StackCar *); </p><p

29、>  int InitQueue(LinkQueueCar *);</p><p>  int Arrival(StackCar *,LinkQueueCar *); </p><p>  void Leave(StackCar *,StackCar *,LinkQueueCar *);</p><p>  void List(StackCar,LinkQu

30、eueCar); </p><p>  void main()</p><p><b>  {</b></p><p>  printf("\t\t===========歡迎你進(jìn)入停車(chē)場(chǎng)管理系統(tǒng)===========\n");</p><p>  printf("\t\t 小組

31、成員:李嘉偉 黃庭華 楊茂銓 李俊鵬\n");</p><p>  printf("\t\t 班級(jí):11級(jí)08班 \n");</p><p>  StackCar Enter,Temp;</p><p>  LinkQueueCar Wait;</p><p><b>  int a

32、;</b></p><p><b>  int b=1;</b></p><p>  InitStack(&Enter); </p><p>  InitStack(&Temp); //汽車(chē)出站時(shí),暫時(shí)按次序存放汽車(chē)的棧結(jié)構(gòu)</p><p>  InitQueue(&Wait)

33、; </p><p><b>  while(b)</b></p><p><b>  { </b></p><p>  cout<<"\n1. 汽車(chē)進(jìn)站登記";</p><p>  cout<<" 2. 汽車(chē)出站登記";</

34、p><p>  cout<<" 3. 車(chē)位狀態(tài)顯示";</p><p>  cout<<" 4. 退出系統(tǒng)\n";</p><p><b>  cin>>a;</b></p><p><b>  while(b)</b>&l

35、t;/p><p><b>  {</b></p><p>  if(a==1||a==2||a==3||a==4) break;</p><p><b>  else </b></p><p><b>  { </b></p><p>  cout<&

36、lt;"\n錯(cuò)誤! 退出系統(tǒng)\n";</p><p><b>  b=0;</b></p><p><b>  break; </b></p><p><b>  }</b></p><p><b>  }</b></p>

37、<p><b>  switch(a)</b></p><p><b>  { </b></p><p>  case 1:Arrival(&Enter,&Wait);break;</p><p>  case 2:Leave(&Enter,&Temp,&Wait);br

38、eak;</p><p>  case 3:List(Enter,Wait);break;</p><p>  case 4:exit(0);</p><p>  default: break;</p><p><b>  }</b></p><p><b>  }</b>&

39、lt;/p><p><b>  }</b></p><p>  void InitStack(StackCar *s) //初始化棧</p><p><b>  { </b></p><p><b>  int i;</b></p><p><b&

40、gt;  s->top=0;</b></p><p>  for(i=0;i<=MAX;i++)</p><p>  s->stack[s->top]=NULL;</p><p><b>  }</b></p><p>  int InitQueue(LinkQueueCar *Q)

41、 //初始化隊(duì)列</p><p><b>  {</b></p><p>  Q->head=(QueueCarNode *)malloc(sizeof(QueueCarNode));</p><p>  if(Q->head!=NULL)</p><p><b>  {</b><

42、/p><p>  Q->head->next=NULL;</p><p>  Q->rear=Q->head;</p><p>  return(1);</p><p><b>  }</b></p><p>  else return(-1);</p><

43、p><b>  }</b></p><p>  int Arrival(StackCar *Enter,LinkQueueCar *W) //進(jìn)站登記</p><p><b>  { </b></p><p>  CarNode *p;</p><p>  QueueCarNode *

44、t;</p><p>  p=(CarNode *)malloc(sizeof(CarNode));</p><p>  cout<<"\n請(qǐng)輸入車(chē)牌號(hào):";</p><p>  cin>>p->num ;</p><p>  if(Enter->top<MAX)

45、 //有空車(chē)位</p><p><b>  {</b></p><p>  Enter->top++;</p><p>  cout<<"\n車(chē)輛在車(chē)場(chǎng)第 "<<Enter->top<<" 號(hào)車(chē)位";</p><p> 

46、 cout<<"\n車(chē)輛到達(dá)時(shí)間(時(shí)):";</p><p>  cin>>p->reach.hour;</p><p>  cout<<"\n車(chē)輛到達(dá)時(shí)間(分):";</p><p>  cin>>p->reach.min;</p><p>

47、  Enter->stack[Enter->top]=p;</p><p>  return(1);</p><p><b>  }</b></p><p>  else //沒(méi)有空車(chē)位</p><p><b>  { </b></p><p>

48、;  cout<<"\n該車(chē)須在便道等待!有車(chē)位時(shí)進(jìn)入車(chē)場(chǎng)!";</p><p>  t=(QueueCarNode *)malloc(sizeof(QueueCarNode));</p><p>  t->data=p;</p><p>  t->next=NULL; </p><p>  W-&

49、gt;rear->next=t;</p><p>  W->rear=t;</p><p>  return(1);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void PRINT(CarNode *p,i

50、nt room) //汽車(chē)離站時(shí)繳費(fèi)顯示</p><p><b>  { </b></p><p>  cout<<"\n車(chē)輛離開(kāi)的時(shí)間(時(shí)):";</p><p>  cin>>p->leave.hour;</p><p>  cout<<"\

51、n車(chē)輛離開(kāi)的時(shí)間(分):";</p><p>  cin>>p->leave.min;</p><p>  printf("\n離開(kāi)車(chē)輛的車(chē)牌號(hào)為:");</p><p>  cout<<p->num;</p><p>  cout<<"\n其到達(dá)時(shí)間為:

52、 "<<p->reach.hour<<" 時(shí) "<<p->reach.min<<" 分";</p><p>  cout<<"\n離開(kāi)時(shí)間為: "<<p->leave.hour<<" 時(shí) "<<p->l

53、eave.min<<" 分";</p><p>  cout<<"\n應(yīng)交費(fèi)用為: "<<((p->leave.hour - p->reach.hour)*60+(p->leave.min - p->reach.min))*price<<" 元";</p><p&

54、gt;<b>  free(p);</b></p><p><b>  }</b></p><p>  void Leave(StackCar *Enter,StackCar *Temp,LinkQueueCar *W) //出站登記</p><p><b>  { </b></p>

55、;<p><b>  int room;</b></p><p>  CarNode *p,*t;</p><p>  QueueCarNode *q;</p><p>  if(Enter->top>0) //車(chē)站有車(chē)時(shí)</p><p><b>  { </b><

56、/p><p>  while(1) </p><p><b>  {</b></p><p>  cout<<"\n請(qǐng)輸入車(chē)在車(chē)場(chǎng)的位置:";</p><p>  cin>>room;</p><p>  if(room>=1&&ro

57、om<=Enter->top) break;</p><p><b>  }</b></p><p>  while(Enter->top>room) //位置不在棧頂?shù)钠?chē)出站</p><p><b>  {</b></p><p>  Temp->top++;

58、 </p><p>  Temp->stack[Temp->top]=Enter->stack[Enter->top];</p><p>  Enter->stack[Enter->top]=NULL;</p><p>  Enter->top--;</p><p>

59、<b>  } </b></p><p>  p=Enter->stack[Enter->top];</p><p>  Enter->stack[Enter->top]=NULL;</p><p>  Enter->top--;</p><p>  while(Temp->top&g

60、t;=1) //當(dāng)暫時(shí)存儲(chǔ)汽車(chē)的棧結(jié)構(gòu)中有汽車(chē)時(shí)汽車(chē)重</p><p><b>  新進(jìn)站</b></p><p><b>  {</b></p><p>  Enter->top++;</p><p>  Enter->stack[Enter->top]=Temp->st

61、ack[Temp->top];</p><p>  Temp->stack[Temp->top]=NULL;</p><p>  Temp->top--;</p><p><b>  }</b></p><p>  PRINT(p,room);</p><p>  if((

62、W->head!=W->rear)&&Enter->top<MAX) //車(chē)站有空位且便道有車(chē)時(shí),便道車(chē)進(jìn)站</p><p><b>  { </b></p><p>  q=W->head->next;</p><p>  t=q->data;</p><p&

63、gt;  Enter->top++;</p><p>  cout<<"\n便道的"<<t->num<<"號(hào)車(chē)進(jìn)入車(chē)場(chǎng)第"<<Enter->top<<"號(hào)車(chē)位.";</p><p>  cout<<"\n請(qǐng)輸入"<&

64、lt;t->num<<"號(hào)車(chē)進(jìn)入車(chē)場(chǎng)的時(shí)間(時(shí)):";</p><p>  cin>>t->reach.hour;</p><p>  cout<<"\n請(qǐng)輸入"<<t->num<<"號(hào)車(chē)進(jìn)入車(chē)場(chǎng)的時(shí)間(分):";</p><p>

65、;  cin>>t->reach.min;</p><p>  W->head->next=q->next;</p><p>  if(q==W->rear) </p><p>  W->rear=W->head;</p><p>  Enter->stack[Enter->t

66、op]=t;</p><p><b>  free(q);</b></p><p><b>  }</b></p><p>  else cout<<"\n便道里沒(méi)有車(chē).\n";</p><p><b>  }</b></p>&l

67、t;p>  else cout<<"\n車(chē)場(chǎng)里沒(méi)有車(chē)."; </p><p><b>  }</b></p><p>  void List1(StackCar *S) //車(chē)場(chǎng)車(chē)位顯示</p><p><b>  { </b></p><p><

68、;b>  int i;</b></p><p>  if(S->top>0)</p><p><b>  {</b></p><p>  cout<<"\n車(chē)場(chǎng)車(chē)位狀態(tài):";</p><p>  cout<<"\n車(chē)位號(hào)\t"&

69、lt;<" 到達(dá)時(shí)間 \t"<<"車(chē)牌號(hào)\n";</p><p>  for(i=1;i<=S->top;i++)</p><p><b>  {</b></p><p>  cout<<" "<<i<<&quo

70、t;\t ";</p><p>  cout<<S->stack[i]->reach.hour<<"時(shí)"<<S->stack[i]->reach.min<<"分";</p><p>  cout<<"\t "<<S->

71、;stack[i]->num<<"\n";</p><p><b>  }</b></p><p><b>  }</b></p><p>  else cout<<"\n車(chē)場(chǎng)里沒(méi)有車(chē)";</p><p><b>  }

72、</b></p><p>  void List2(LinkQueueCar *W) //便道車(chē)位顯示</p><p><b>  { </b></p><p>  QueueCarNode *p;</p><p>  p=W->head->next;</p><p&g

73、t;  if(W->head!=W->rear)</p><p><b>  {</b></p><p>  cout<<"\n便道內(nèi)車(chē)隊(duì)依次為:";</p><p>  cout<<"\n<<<<<<<<<<<&

74、lt;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n";<

75、/p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  cout<<p->data->num<<"\t";</p><p>  p=p->next;</p><p><b>  

76、}</b></p><p>  cout<<"\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l

77、t;<<<<<<<<<<<<<<<<<<<<<";</p><p><b>  }</b></p><p>  else cout<<"\n便道里沒(méi)有車(chē).";</p><p>&

78、lt;b>  }</b></p><p>  void List(StackCar S,LinkQueueCar W) //查詢車(chē)位狀態(tài)</p><p><b>  {</b></p><p>  int flag,choice;</p><p><b>  flag=1;</b&

79、gt;</p><p>  while(flag)</p><p><b>  {</b></p><p>  cout<<"\n請(qǐng)選擇 :";</p><p>  cout<<"\n\t\t1. 車(chē)場(chǎng)列表\n\t\t2. 便道列表\n\t\t3. 返回主菜單\n&q

80、uot;;</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  cin>>choice;</p><p>  if(choice>=1||choice<=3) break;</p><p>

81、;  else cout<<"選擇錯(cuò)誤,請(qǐng)重新選擇!\n";</p><p><b>  }</b></p><p>  switch(choice)</p><p><b>  {</b></p><p><b>  case 1:</b>&l

82、t;/p><p>  List1(&S);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  List2(&W);</p><p><b>  break;</b><

83、;/p><p><b>  case 3:</b></p><p><b>  flag=0;</b></p><p><b>  break;</b></p><p><b>  default: </b></p><p><b

84、>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  調(diào)試過(guò)程中曾遇到的錯(cuò)誤:</p><p>  最初調(diào)試中車(chē)牌號(hào)編寫(xiě)

85、為int型,輸入的只能是數(shù)字,但現(xiàn)實(shí)生活中車(chē)牌號(hào)都為漢字+英文字母+數(shù)字,在改進(jìn)過(guò)程中,改成字符型;</p><p>  6特殊問(wèn)題解決方法 </p><p>  由于此停車(chē)場(chǎng)管理系統(tǒng)是分模塊設(shè)計(jì)的,所以,運(yùn)行時(shí)用戶選擇任務(wù)并且執(zhí)行完任務(wù)后,又會(huì)回到供用戶選擇功能的主界面,因此整個(gè)程序從整體上來(lái)講結(jié)構(gòu)清晰,使用方便。當(dāng)停車(chē)場(chǎng)已經(jīng)達(dá)到最大容量,但仍有車(chē)輛進(jìn)入停車(chē)場(chǎng)的時(shí)候,運(yùn)行界面上沒(méi)有出現(xiàn)或

86、者說(shuō)出現(xiàn)了但又跳掉了“停車(chē)場(chǎng)已滿,該車(chē)輛需在便道上等待!”的提示信息。我們小組成員經(jīng)過(guò)反復(fù)商量討論,并且在查閱了多種資料后,在那一個(gè)printf語(yǔ)句后加了一個(gè)getch(),此時(shí),程序運(yùn)行結(jié)果就符合要求了。</p><p>  7使用說(shuō)明及測(cè)試結(jié)果 </p><p>  這個(gè)程序用來(lái)實(shí)現(xiàn)對(duì)停車(chē)場(chǎng)內(nèi)車(chē)輛的管理,整個(gè)操作界面為中文,更加符合人性化的標(biāo)準(zhǔn),使得用戶使用方便,而且每一個(gè)操作都有提示

87、,使得初次接觸該程序的用戶也能很快適應(yīng)程序的操作。</p><p>  測(cè)試結(jié)果的分析與討論</p><p><b> ?、贇g迎界面</b></p><p><b>  ②車(chē)輛到達(dá)</b></p><p>  為方便演示,把停車(chē)場(chǎng)的容量先設(shè)為3</p><p><b&g

88、t;  ③車(chē)輛離開(kāi),收費(fèi)</b></p><p><b> ?、苘?chē)輛信息(車(chē)場(chǎng))</b></p><p><b>  ⑤車(chē)輛信息(便道)</b></p><p><b>  8總結(jié)與體會(huì)</b></p><p>  通過(guò)這一次課程設(shè)計(jì),加深了我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門(mén)課程

89、所學(xué)內(nèi)容的進(jìn)一步的理解與掌握;同時(shí),通過(guò)對(duì)停車(chē)場(chǎng)管理系統(tǒng)的開(kāi)發(fā),充分的理解了用棧和隊(duì)列實(shí)現(xiàn)模擬停車(chē)場(chǎng)的基本原理,知道了棧的順序存儲(chǔ)結(jié)構(gòu)和隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的定義和算法描述,使得我將計(jì)算機(jī)課程所學(xué)知識(shí)與實(shí)際問(wèn)題很好地相聯(lián)接在了一起。在這次課程設(shè)計(jì)中,不僅培養(yǎng)了我開(kāi)發(fā)一個(gè)中小型程序的能力,而且也培養(yǎng)了我的團(tuán)隊(duì)合作能力。在這次對(duì)停車(chē)場(chǎng)管理系統(tǒng)的開(kāi)發(fā)過(guò)程中,我們小組成員互相合作,互相幫助,其中有程序功能成功實(shí)現(xiàn)時(shí)的欣喜,也有遇到問(wèn)題、解決問(wèn)題時(shí)

90、的執(zhí)著以及迷茫。在這次課程設(shè)計(jì)中,使得我很好地了解了在開(kāi)發(fā)程序過(guò)程中合作的重要性。</p><p><b>  9參考文獻(xiàn)</b></p><p>  譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)(第三版)[M]. 北京:清華大學(xué)出版社,2005</p><p>  廖雷、羅代忠. C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)教程[M]. 北京:高等教育出版社,2005</p&

溫馨提示

  • 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)論