2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩18頁(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ì)報(bào)告</p><p><b>  一、計(jì)算題 </b></p><p>  1、題目:停車場(chǎng)管理</p><p>  設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門在最南端,最先到達(dá)的第一輛車停放在車場(chǎng)的最北端),若車場(chǎng)

2、內(nèi)已停滿n輛汽車,則后來(lái)的汽車只能在門外的便道上等待,一旦有車開(kāi)走,則排在便道上的第一輛車即可開(kāi)入;每輛停放在車場(chǎng)的車在它離開(kāi)停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。試為停車場(chǎng)編制按上述要求進(jìn)行管理的模擬程序。 以線性表模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼以及“到達(dá)”或“離去”的時(shí)刻。對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信

3、息為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。線性表以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)。</p><p><b>  2、需求分析:</b></p><p>  由于停車場(chǎng)是一個(gè)狹窄通道,而且只有一個(gè)大門可供汽車進(jìn)出,問(wèn)題要求汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依

4、次由北向南排列。由此很容易聯(lián)想到用結(jié)構(gòu)體數(shù)組來(lái)存儲(chǔ)車庫(kù)信息,用一個(gè)棧來(lái)模擬車庫(kù)。當(dāng)停車場(chǎng)內(nèi)某輛車要離開(kāi)時(shí),在他之后進(jìn)入的汽車必須再按原次序進(jìn)入車庫(kù)。這是一個(gè)一退一進(jìn)的過(guò)程,而且讓道的汽車必須保持原有的先后順序,因此可再設(shè)計(jì)一個(gè)結(jié)構(gòu)體數(shù)組,用來(lái)暫時(shí)存放為出站汽車暫時(shí)讓道的汽車車牌號(hào)。當(dāng)車庫(kù)滿后,繼續(xù)進(jìn)來(lái)的汽車需要停放在車庫(kù)旁邊的便道上等候,若車庫(kù)有汽車開(kāi)走,先在便道等待的車先進(jìn)車庫(kù),這完全是一個(gè)先進(jìn)先出模型,因此可以設(shè)計(jì)一個(gè)隊(duì)列來(lái)模擬便道

5、。另外,停車場(chǎng)是根據(jù)汽車在停車場(chǎng)內(nèi)停放的總長(zhǎng)來(lái)收費(fèi)的,在便道上的時(shí)間不計(jì)費(fèi),因此必須記錄車輛進(jìn)入車庫(kù)時(shí)的時(shí)間,車輛離開(kāi)車庫(kù)時(shí)的時(shí)間不需要記錄,當(dāng)從終端輸入時(shí)可直接使用。</p><p><b>  3、環(huán)境說(shuō)明:</b></p><p>  在Microsoft Visual C++ 6.0上運(yùn)行</p><p><b>  4、詳細(xì)

6、設(shè)計(jì):</b></p><p>  (一)模擬車庫(kù)和模擬便道中分別用結(jié)構(gòu)體數(shù)組和鏈表來(lái)存儲(chǔ)車輛信息。</p><p>  模擬車庫(kù)和模擬便道的數(shù)據(jù)結(jié)構(gòu)如下表1和表2所示:</p><p>  表1 模擬車庫(kù)的數(shù)據(jù)結(jié)構(gòu)</p><p>  表2 模擬便道的數(shù)據(jù)結(jié)構(gòu)</p><p>  用C語(yǔ)言實(shí)現(xiàn)這一部分

7、為:</p><p>  typedef struct time</p><p><b>  { </b></p><p>  int hour; </p><p><b>  int min; </b></p><p>  }Time; //時(shí)間結(jié)點(diǎn)</p>

8、<p>  typedef struct node</p><p><b>  { </b></p><p>  char num[10]; </p><p>  Time reach; </p><p>  Time leave; </p><p>  }CarNode;//車輛信息結(jié)

9、點(diǎn)</p><p>  typedef struct NODE</p><p><b>  { </b></p><p>  CarNode *stack[MAX+1]; </p><p><b>  int top; </b></p><p>  }Moni_Cheku;

10、//車庫(kù)</p><p>  typedef struct car</p><p><b>  { </b></p><p>  CarNode *data; //數(shù)據(jù)域</p><p>  struct car *next; //指針域</p><p>  }QueueNode; </p&

11、gt;<p>  typedef struct Node</p><p><b>  { </b></p><p>  QueueNode *head; </p><p>  QueueNode *rear; </p><p>  }Moni_Biandao;//便道</p><p>

12、;<b> ?。ǘ┲骱瘮?shù)</b></p><p><b>  主函數(shù)代碼:</b></p><p>  void main() </p><p><b>  { </b></p><p>  Moni_Cheku Enter,Temp; </p><p&g

13、t;  Moni_Biandao Wait; </p><p><b>  int ch;</b></p><p>  InitStack(&Enter); //初始化車站</p><p>  InitStack(&Temp); //初始化讓路的臨時(shí)鏈表</p><p>  InitQueue(&

14、Wait); //初始化便道</p><p>  printf("\n");</p><p>  printf(" ^_^歡迎進(jìn)入停車場(chǎng)管理系統(tǒng)1!^_^\n");</p><p>  printf("\n");</p><p>  printf("提示!

15、 (1).該車庫(kù)的最大容量為:%d;\n" ,MAX);</p><p>  printf(" (2).該車庫(kù)的收費(fèi)標(biāo)準(zhǔn)為:%4.2f元/(輛*分鐘).\n",price);</p><p><b>  while(1) </b></p><p><b>  {</b></p&

16、gt;<p>  printf("********************主菜單********************\n");</p><p>  printf(" 1.車輛到達(dá)"); </p><p>  printf(" 2.車輛離開(kāi)"); </p><p>  printf(&q

17、uot; 3.列表顯示"); </p><p>  printf(" 4.退出系統(tǒng)\n"); </p><p>  printf("**********************************************\n");</p><p>  printf("請(qǐng)選擇(1-4):[ ]&quo

18、t;);</p><p><b>  while(1) </b></p><p><b>  {</b></p><p>  scanf("%d",&ch); </p><p>  if(ch>=1&&ch<=4)break; </p&g

19、t;<p>  else printf("錯(cuò)誤!請(qǐng)重選(1-4):[ ]\b\b");</p><p><b>  } </b></p><p>  switch(ch) </p><p><b>  { </b></p><p>  case 1:Arrival(

20、&Enter,&Wait);break; //車輛到達(dá)</p><p>  case 2:Leave(&Enter,&Temp,&Wait);break; //車輛離開(kāi)</p><p>  case 3:List(Enter,Wait);break; //打印列表信息</p><p>  case 4:exit(0); //

21、退出主程序</p><p>  default: break; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p><b> ?。ㄈ┸囕v到達(dá)函數(shù)<

22、/b></p><p><b>  車輛到達(dá)函數(shù)代碼:</b></p><p>  int Arrival(Moni_Cheku *Enter,Moni_Biandao *W) //車輛到達(dá)</p><p><b>  { </b></p><p>  CarNode *p; </p&g

23、t;<p>  QueueNode *t; </p><p>  p=(CarNode *)malloc(sizeof(CarNode)); </p><p>  flushall(); </p><p>  printf("請(qǐng)輸入車牌號(hào)(例如:中CUG888):"); </p><p>  gets(p-&

24、gt;num); </p><p>  if(Enter->top<MAX) //車庫(kù)未滿,車進(jìn)車庫(kù)</p><p><b>  { </b></p><p>  Enter->top++; </p><p>  printf("該車在車庫(kù)位置%d.\n",Enter->top

25、); </p><p>  printf("請(qǐng)輸入到達(dá)時(shí)間(**:**):"); </p><p>  scanf("%d:%d",&(p->reach.hour),&(p->reach.min)); </p><p>  Enter->stack[Enter->top]=p; <

26、/p><p>  return(1); </p><p><b>  } </b></p><p>  else //車庫(kù)已滿,車進(jìn)便道</p><p><b>  { </b></p><p>  printf("該車須在便道等待!\n"); </p&

27、gt;<p>  t=(QueueNode *)malloc(sizeof(QueueNode)); </p><p>  t->data=p; </p><p>  t->next=NULL; </p><p>  W->rear->next=t; </p><p>  W->rear=t; &l

28、t;/p><p>  return(1); </p><p><b>  } </b></p><p><b>  }</b></p><p><b>  (四)車輛離開(kāi)函數(shù)</b></p><p><b>  車輛離開(kāi)函數(shù)代碼:</b>

29、;</p><p>  void Leave(Moni_Cheku *Enter,Moni_Cheku *Temp,Moni_Biandao *W) //車輛離開(kāi)</p><p><b>  { </b></p><p>  int i, room; </p><p>  CarNode *p,*t; </p>

30、;<p>  QueueNode *q; </p><p>  //判斷車庫(kù)內(nèi)是否有車</p><p>  if(Enter->top>0) //有車</p><p><b>  { </b></p><p>  printf("請(qǐng)輸入車在車庫(kù)的位置(1--%d):",Ent

31、er->top);//輸入車輛離開(kāi)的信息</p><p><b>  while(1) </b></p><p><b>  { </b></p><p>  scanf("%d",&room); </p><p>  if(room>=1&&

32、room<=Enter->top) break;</p><p>  else printf("錯(cuò)誤!請(qǐng)重選:");</p><p><b>  } </b></p><p>  while(Enter->top(取其成員top:Enter->top)>room) //車輛離開(kāi)</p>

33、;<p><b>  { </b></p><p>  Temp->top++; </p><p>  Temp->stack[Temp->top]=Enter->stack[Enter->top]; </p><p>  Enter->stack[Enter->top]=NULL; &l

34、t;/p><p>  Enter->top--; </p><p><b>  } </b></p><p>  p=Enter->stack[Enter->top]; </p><p>  Enter->stack[Enter->top]=NULL; </p><p>

35、  Enter->top--; </p><p>  while(Temp->top>=1) </p><p><b>  { </b></p><p>  Enter->top++; </p><p>  Enter->stack[Enter->top]=Temp->stack

36、[Temp->top]; </p><p>  Temp->stack[Temp->top]=NULL; </p><p>  Temp->top--; </p><p><b>  } </b></p><p>  PRINT(p,room); //判斷通道上是否有車及車庫(kù)是否已滿</p&

37、gt;<p>  if((W->head!=W->rear)&&Enter->top<MAX) //便道的車輛進(jìn)入車庫(kù)</p><p><b>  { </b></p><p>  q=W->head->next; </p><p>  t=q->data; </p&

38、gt;<p>  Enter->top++; </p><p>  printf("\n便道的%s號(hào)車進(jìn)入車場(chǎng)第%d位置.",t->num,Enter->top); </p><p>  printf("\n請(qǐng)輸入現(xiàn)在的時(shí)間(**:**):"); </p><p>  scanf("%

39、d:%d",&(t->reach.hour),&(t->reach.min)); </p><p>  W->head->next=q->next; </p><p>  if(q==W->rear) W->rear=W->head; </p><p>  Enter->stack[En

40、ter->top]=t; </p><p><b>  free(q); </b></p><p><b>  } </b></p><p>  else printf("\n便道里沒(méi)有車.\n"); </p><p><b>  } </b><

41、/p><p>  else printf("車庫(kù)里沒(méi)有車!\n"); //沒(méi)車</p><p><b>  }</b></p><p><b> ?。ㄎ澹┝斜盹@示函數(shù)</b></p><p><b>  列表顯示函數(shù)代碼:</b></p><

42、p>  void List(Moni_Cheku S,Moni_Biandao W) </p><p><b>  { </b></p><p>  int flag,tag; </p><p><b>  flag=1; </b></p><p>  while(flag) </p&g

43、t;<p><b>  { </b></p><p>  printf("**********查看**********\n");</p><p>  printf("1.車庫(kù) 2.便道 3.返回\n");</p><p>  printf("****************

44、********\n");</p><p>  printf("請(qǐng)選擇(1-3):[ ]\b\b");</p><p><b>  while(1) </b></p><p><b>  { </b></p><p>  scanf("%d",&am

45、p;tag); </p><p>  f(tag>=1&&tag<=3) break; </p><p>  else printf("錯(cuò)誤!請(qǐng)重選(1-3):[ ]\b\b"); </p><p><b>  } </b></p><p>  switch(tag) &l

46、t;/p><p><b>  { </b></p><p>  case 1:List1(&S);break;//列表顯示車庫(kù)信息</p><p>  case 2:List2(&W);break; //列表顯示便到信息</p><p>  case 3:flag=0;break; </p>&

47、lt;p>  default: break; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  顯示車庫(kù)信息代碼:</b></p>

48、<p>  void List1(Moni_Cheku *S) //列表顯示車庫(kù)信息</p><p><b>  { </b></p><p><b>  int i; </b></p><p>  if(S->top>0) //判斷車庫(kù)內(nèi)是否有車</p><p><b&

49、gt;  { </b></p><p>  printf("車庫(kù):"); </p><p>  printf("\n位置 到達(dá)時(shí)間 車牌號(hào)\n"); </p><p>  for(i=1;i<=S->top;i++) </p><p><b>  { </b>

50、;</p><p>  printf(" %d ",i); </p><p>  printf(" %d:%d ",S->stack[i]->reach.hour,S->stack[i]->reach.min); </p><p>  puts(S->stack[i]->num);

51、 </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  顯示便道信息代碼:</b></p><p>  void List2(Moni_Biandao *W) //列表顯示便道信息</p><p&g

52、t;<b>  { </b></p><p>  QueueNode *p; </p><p>  p=W->head->next; </p><p>  if(W->head!=W->rear) //判斷便道上是否有車</p><p><b>  { </b></p&

53、gt;<p>  printf("在便道里等待的車輛的號(hào)碼為:\n"); </p><p>  while(p!=NULL) </p><p><b>  { </b></p><p>  puts(p->data->num); </p><p>  p=p->next

54、; </p><p><b>  } </b></p><p><b>  } </b></p><p>  else printf("便道里沒(méi)有車.\n"); </p><p><b>  } </b></p><p><b&

55、gt;  5、調(diào)試分析:</b></p><p>  1、測(cè)試系統(tǒng)對(duì)錯(cuò)誤信息的處理</p><p>  2、進(jìn)入2輛車,車均進(jìn)車庫(kù),便道上無(wú)車,并進(jìn)行列表顯示</p><p>  3、再進(jìn)入3輛車,第一輛車進(jìn)車庫(kù),后2輛車在便道等待,同時(shí)輸出等待的提示信息,最后列表顯示以查尋結(jié)果,此時(shí)車庫(kù)已滿,便道上有2輛車在等待。</p><p&g

56、t;  4、離開(kāi)停車位1和停車位3上的2輛車,同時(shí)輸入它們離開(kāi)的時(shí)間,并計(jì)算它們的應(yīng)交費(fèi)用。離開(kāi)后,車庫(kù)里便有空出2個(gè)停車位,這時(shí)便道里的前2輛車就可進(jìn)入車庫(kù),便道里的進(jìn)入車庫(kù)里要記錄它們進(jìn)去的時(shí)間,開(kāi)始計(jì)時(shí)收費(fèi)。最后進(jìn)行列表顯示,車庫(kù)里應(yīng)仍有3輛車,便道應(yīng)無(wú)車。</p><p><b>  6、課設(shè)總結(jié):</b></p><p>  在這次的課程設(shè)計(jì)中,我學(xué)到了數(shù)據(jù)

57、結(jié)構(gòu)的定義,棧和隊(duì)列的使用等,把老師教的知識(shí)實(shí)際運(yùn)用起來(lái),理解得更加深入了。同時(shí)在這個(gè)過(guò)程中也遇到很多困難,比如時(shí)間的記錄、當(dāng)車離開(kāi)車庫(kù)時(shí)前面的車應(yīng)該怎么放置等,這些問(wèn)題都通過(guò)看課本,去圖書(shū)館和網(wǎng)上查找資料得到了解決,時(shí)間的記錄我設(shè)置了一個(gè)時(shí)間節(jié)點(diǎn),當(dāng)車離開(kāi)車庫(kù)時(shí)前面的車放在一個(gè)臨時(shí)鏈表里。這次課程設(shè)計(jì)用到的知識(shí)其實(shí)都是以前老師教過(guò)的內(nèi)容,只是需要我們?nèi)ハ?,學(xué)會(huì)運(yùn)用而已。很感謝老師的悉心教導(dǎo)和小組成員共同的努力,這次課程設(shè)計(jì)收獲還是很

58、大的。</p><p><b>  源程序:</b></p><p>  #include<stdio.h> </p><p>  #include<stdlib.h> </p><p>  #include<string.h> </p><p>  #defi

59、ne MAX 3 //車庫(kù)容量</p><p>  #define price 0.5 //每車每分鐘費(fèi)用 </p><p>  typedef struct time</p><p><b>  { </b></p><p>  int hour; </p><p><b>  int

60、 min; </b></p><p>  }Time; //時(shí)間結(jié)點(diǎn)</p><p>  typedef struct node</p><p><b>  { </b></p><p>  char num[10]; </p><p>  Time reach; </p>

61、<p>  Time leave; </p><p>  }CarNode;//車輛信息結(jié)點(diǎn) </p><p>  typedef struct NODE</p><p><b>  { </b></p><p>  CarNode *stack[MAX+1]; </p><p>&

62、lt;b>  int top; </b></p><p>  }Moni_Cheku; </p><p>  typedef struct car</p><p><b>  { </b></p><p>  CarNode *data; </p><p>  struct ca

63、r *next; </p><p>  }QueueNode; </p><p>  typedef struct Node</p><p><b>  { </b></p><p>  QueueNode *head; </p><p>  QueueNode *rear; </p>

64、<p>  }Moni_Biandao; </p><p>  void InitStack(Moni_Cheku *); //初始化車庫(kù)</p><p>  int InitQueue(Moni_Biandao *); //初始化便道</p><p>  int Arrival(Moni_Cheku *,Moni_Biandao *); //車輛到

65、達(dá)</p><p>  void Leave(Moni_Cheku *,Moni_Cheku *,Moni_Biandao *); //車輛離開(kāi)</p><p>  void List(Moni_Cheku,Moni_Biandao); //顯示車庫(kù)和便道的存車信息</p><p>  void main() </p><p><b&g

66、t;  { </b></p><p>  Moni_Cheku Enter,Temp; </p><p>  Moni_Biandao Wait; </p><p><b>  int ch;</b></p><p>  InitStack(&Enter); //初始化車站</p>&l

67、t;p>  InitStack(&Temp); //初始化讓路的臨時(shí)鏈表</p><p>  InitQueue(&Wait); //初始化便道</p><p>  printf("\n");</p><p>  printf(" ^_^歡迎進(jìn)入停車場(chǎng)管理系統(tǒng)1!^_^\n");<

68、/p><p>  printf("\n");</p><p>  printf("提示! (1).該車庫(kù)的最大容量為:%d;\n" ,MAX);</p><p>  printf(" (2).該車庫(kù)的收費(fèi)標(biāo)準(zhǔn)為:%4.2f元/(輛*分鐘).\n",price);</p><p>

69、;<b>  while(1) </b></p><p><b>  {</b></p><p>  printf("********************主菜單********************\n");</p><p>  printf(" 1.車輛到達(dá)"); </

70、p><p>  printf(" 2.車輛離開(kāi)"); </p><p>  printf(" 3.列表顯示"); </p><p>  printf(" 4.退出系統(tǒng)\n"); </p><p>  printf("****************************

71、******************\n");</p><p>  printf("請(qǐng)選擇(1-4):[ ]\b\b");</p><p><b>  while(1) </b></p><p><b>  {</b></p><p>  scanf("%d&

72、quot;,&ch); </p><p>  if(ch>=1&&ch<=4)break; </p><p>  else printf("錯(cuò)誤!請(qǐng)重選(1-4):[ ]\b\b");</p><p><b>  } </b></p><p>  switch(ch

73、) </p><p><b>  { </b></p><p>  case 1:Arrival(&Enter,&Wait);break; //車輛到達(dá)</p><p>  case 2:Leave(&Enter,&Temp,&Wait);break; //車輛離開(kāi)</p><p>

74、;  case 3:List(Enter,Wait);break; //打印列表信息</p><p>  case 4:exit(0); //退出主程序</p><p>  default: break; </p><p><b>  } </b></p><p><b>  } </b><

75、/p><p><b>  } </b></p><p>  void InitStack(Moni_Cheku *s) //初始化車庫(kù)</p><p><b>  { </b></p><p><b>  int i; </b></p><p>  s-&g

76、t;top=0; </p><p>  for(i=0;i<=MAX;i++) </p><p>  s->stack[s->top]=NULL; </p><p><b>  } </b></p><p>  int InitQueue(Moni_Biandao *Q) //初始化便道</p&g

77、t;<p><b>  { </b></p><p>  Q->head=(QueueNode *)malloc(sizeof(QueueNode)); </p><p>  if(Q->head!=NULL) </p><p><b>  { </b></p><p> 

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

79、;  }</b></p><p>  void PRINT(CarNode *p,int room) //輸出出庫(kù)車的信息</p><p><b>  { </b></p><p>  int A1,A2,B1,B2; </p><p>  printf("請(qǐng)輸入離開(kāi)的時(shí)間:/**:**/"

80、;); </p><p>  scanf("%d:%d",&(p->leave.hour),&(p->leave.min)); </p><p>  printf("離開(kāi)車輛的車牌號(hào)為:"); </p><p>  puts(p->num); </p><p>  pr

81、intf("其到達(dá)時(shí)間為: %d:%d\n",p->reach.hour,p->reach.min); </p><p>  printf("離開(kāi)時(shí)間為: %d:%d\n",p->leave.hour,p->leave.min); </p><p>  A1=p->reach.hour; </p><

82、p>  A2=p->reach.min; </p><p>  B1=p->leave.hour; </p><p>  B2=p->leave.min; </p><p>  printf("應(yīng)交費(fèi)用為:%4.2f元",((B1-A1)*60+(B2-A2))*price); </p><p>&

83、lt;b>  free(p); </b></p><p><b>  }</b></p><p>  int Arrival(Moni_Cheku *Enter,Moni_Biandao *W) //車輛到達(dá)</p><p><b>  { </b></p><p>  CarNo

84、de *p; </p><p>  QueueNode *t; </p><p>  p=(CarNode *)malloc(sizeof(CarNode)); </p><p>  flushall(); </p><p>  printf("請(qǐng)輸入車牌號(hào)(例如:中CUG888):"); </p><

85、p>  gets(p->num); </p><p>  if(Enter->top<MAX) //車庫(kù)未滿,車進(jìn)車庫(kù)</p><p><b>  { </b></p><p>  Enter->top++; </p><p>  printf("該車在車庫(kù)位置%d.\n"

86、;,Enter->top); </p><p>  printf("請(qǐng)輸入到達(dá)時(shí)間(**:**):"); </p><p>  scanf("%d:%d",&(p->reach.hour),&(p->reach.min)); </p><p>  Enter->stack[Enter-&

87、gt;top]=p; </p><p>  return(1); </p><p><b>  } </b></p><p>  else //車庫(kù)已滿,車進(jìn)便道</p><p><b>  { </b></p><p>  printf("該車須在便道等待!\n&

88、quot;); </p><p>  t=(QueueNode *)malloc(sizeof(QueueNode)); </p><p>  t->data=p; </p><p>  t->next=NULL; </p><p>  W->rear->next=t; </p><p>  W

89、->rear=t; </p><p>  return(1); </p><p><b>  } </b></p><p><b>  }</b></p><p>  void Leave(Moni_Cheku *Enter,Moni_Cheku *Temp,Moni_Biandao *W)

90、//車輛離開(kāi)</p><p><b>  { </b></p><p>  int i, room; </p><p>  CarNode *p,*t; </p><p>  QueueNode *q; </p><p>  //判斷車庫(kù)內(nèi)是否有車</p><p>  if

91、(Enter->top>0) //有車</p><p><b>  { </b></p><p>  printf("請(qǐng)輸入車在車庫(kù)的位置(1--%d):",Enter->top);//輸入車輛離開(kāi)的信息</p><p><b>  while(1) </b></p>&

92、lt;p><b>  { </b></p><p>  scanf("%d",&room); </p><p>  if(room>=1&&room<=Enter->top) break;</p><p>  else printf("錯(cuò)誤!請(qǐng)重選:");&

93、lt;/p><p><b>  } </b></p><p>  while(Enter->top>room) //車輛離開(kāi)</p><p><b>  { </b></p><p>  Temp->top++; </p><p>  Temp->stac

94、k[Temp->top]=Enter->stack[Enter->top]; </p><p>  Enter->stack[Enter->top]=NULL; </p><p>  Enter->top--; </p><p><b>  } </b></p><p>  p=Ent

95、er->stack[Enter->top]; </p><p>  Enter->stack[Enter->top]=NULL; </p><p>  Enter->top--; </p><p>  while(Temp->top>=1) </p><p><b>  { </b&g

96、t;</p><p>  Enter->top++; </p><p>  Enter->stack[Enter->top]=Temp->stack[Temp->top]; </p><p>  Temp->stack[Temp->top]=NULL; </p><p>  Temp->top-

97、-; </p><p><b>  } </b></p><p>  PRINT(p,room); //判斷通道上是否有車及車庫(kù)是否已滿</p><p>  if((W->head!=W->rear)&&Enter->top<MAX) //便道的車輛進(jìn)入車庫(kù)</p><p><

98、;b>  { </b></p><p>  q=W->head->next; </p><p>  t=q->data; </p><p>  Enter->top++; </p><p>  printf("\n便道的%s號(hào)車進(jìn)入車場(chǎng)第%d位置.",t->num,Enter

99、->top); </p><p>  printf("\n請(qǐng)輸入現(xiàn)在的時(shí)間(**:**):"); </p><p>  scanf("%d:%d",&(t->reach.hour),&(t->reach.min)); </p><p>  W->head->next=q->n

100、ext; </p><p>  if(q==W->rear) W->rear=W->head; </p><p>  Enter->stack[Enter->top]=t; </p><p><b>  free(q); </b></p><p><b>  } </b>

101、;</p><p>  else printf("\n便道里沒(méi)有車.\n"); </p><p><b>  } </b></p><p>  else printf("車庫(kù)里沒(méi)有車!\n"); //沒(méi)車</p><p><b>  }</b></p&g

102、t;<p>  void List1(Moni_Cheku *S) //列表顯示車庫(kù)信息</p><p><b>  { </b></p><p><b>  int i; </b></p><p>  if(S->top>0) //判斷車庫(kù)內(nèi)是否有車</p><p>&l

103、t;b>  { </b></p><p>  printf("車庫(kù):"); </p><p>  printf("\n位置 到達(dá)時(shí)間 車牌號(hào)\n"); </p><p>  for(i=1;i<=S->top;i++) </p><p><b>  { </

104、b></p><p>  printf(" %d ",i); </p><p>  printf(" %d:%d ",S->stack[i]->reach.hour,S->stack[i]->reach.min); </p><p>  puts(S->stack[i]->n

105、um); </p><p><b>  } </b></p><p><b>  } </b></p><p>  else printf("車庫(kù)里沒(méi)有車\n"); </p><p><b>  } </b></p><p>  vo

106、id List2(Moni_Biandao *W) //列表顯示便道信息</p><p><b>  { </b></p><p>  QueueNode *p; </p><p>  p=W->head->next; </p><p>  if(W->head!=W->rear) //判斷便道上

107、是否有車</p><p><b>  { </b></p><p>  printf("在便道里等待的車輛的號(hào)碼為:\n"); </p><p>  while(p!=NULL) </p><p><b>  { </b></p><p>  puts(p

108、->data->num); </p><p>  p=p->next; </p><p><b>  } </b></p><p><b>  } </b></p><p>  else printf("便道里沒(méi)有車.\n"); </p><

109、p><b>  } </b></p><p>  void List(Moni_Cheku S,Moni_Biandao W) </p><p><b>  { </b></p><p>  int flag,tag; </p><p><b>  flag=1; </b>

110、;</p><p>  while(flag) </p><p><b>  { </b></p><p>  printf("**********查看**********\n");</p><p>  printf("1.車庫(kù) 2.便道 3.返回\n");</p&g

111、t;<p>  printf("************************\n");</p><p>  printf("請(qǐng)選擇(1-3):[ ]\b\b");</p><p><b>  while(1) </b></p><p><b>  { </b><

112、;/p><p>  scanf("%d",&tag); </p><p>  if(tag>=1&&tag<=3) break; </p><p>  else printf("錯(cuò)誤!請(qǐng)重選(1-3):[ ]\b\b"); </p><p><b>  } &l

113、t;/b></p><p>  switch(tag) </p><p><b>  { </b></p><p>  case 1:List1(&S);break;//列表顯示車庫(kù)信息</p><p>  case 2:List2(&W);break; //列表顯示便到信息</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)論