數(shù)據結構課程設計--學生成績管理_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  數(shù) 據 結 構</b></p><p><b>  課程設計報告書</b></p><p>  學校 </p><p>  學號 </p><p>  姓名

2、 </p><p>  指導老師 </p><p>  課程設計的名稱:學生成績管理</p><p><b>  問題描述:</b></p><p>  學生成績管理是學校教務管理的重要組成部分,其處理信息量很大,該題目是對學生的成績管理作一個簡單的模擬,其中學生信息

3、包括:學號、姓名與成績。成績分為課程1成績、課程2成績、課程3成績和總成績。要求設計一個簡易的成績管理系統(tǒng),輸入各門功課的成績后能自動求出總成績,并通過菜單選擇操作方式完成下列功能:</p><p><b>  登記學生成績;</b></p><p><b> ?、诓樵儗W生成績;</b></p><p><b>

4、  插入學生成績;</b></p><p><b> ?、軇h除學生成績;</b></p><p><b>  按總成績降序排序。</b></p><p><b>  基本要求:</b></p><p>  該題目涉及到單鏈表的各種操作,包括單鏈表的建立、結點的查找、

5、插入、刪除等基本運算。首先建立學生成績單鏈表,鏈表中每個結點由4個域組成,分別為:學號、姓名、成績、存放下一個結點地址的next域。然后將要求完成的四項功能寫成四個函數(shù),登記學生成績對應建立學生單鏈表的功能,后三個功能分別對應單鏈表的查詢、插入與刪除三大基本操作。</p><p><b>  算法思想:</b></p><p>  Creat()函數(shù)算法思想:從0至n

6、循環(huán)輸入n個同學的三科成績,并且計算總成績。</p><p>  Inquiry()函數(shù)算法思想:將學號與已輸入的所有學號做比較,一旦相同則輸出該學號信息,否則顯示沒有該學生信息。</p><p>  Insert ()函數(shù)算法思想:生成一個新節(jié)點,然后將其接到原有鏈表尾部。</p><p>  Delete()函數(shù)算法思想:通過ID找到該節(jié)點,并刪去該節(jié)點。<

7、;/p><p>  Sort(函數(shù)算法思想:利用排序算法對每一個節(jié)點作比較并更換其在鏈表中的位置順序。</p><p><b>  模塊劃分</b></p><p> ?。?)LinkList Creat(LinkList T,int n)其功能是創(chuàng)造節(jié)點,錄入成績。</p><p> ?。?)void Inquiry(Li

8、nkList T)其功能是查詢與已知ID一致的學生信息并展示出來。</p><p>  (3)void Insert(LinkList T,int n) 其功能是添加若干個學生的成績信息。</p><p> ?。?)void Delete(LinkList T) 其功能是刪除若干個學生的成績信息。</p><p> ?。?)void Sort(LNode *p) 其

9、功能是排序并展示若干個學生的成績信息。</p><p><b>  數(shù)據結構:</b></p><p>  數(shù)據類型LNode定義如下: typedef struct LNode</p><p><b>  {</b></p><p><b>  int ID;</b>&l

10、t;/p><p>  char name[20];</p><p>  int score1;</p><p>  int score2;</p><p>  int score3;</p><p>  int total;</p><p>  struct LNode *next;</p&g

11、t;<p>  }LNode,*LinkList;</p><p><b>  源程序:</b></p><p><b>  源代碼</b></p><p><b>  //main.c</b></p><p>  #include <stdio.h>

12、</p><p>  #include <stdlib.h></p><p>  typedef struct LNode</p><p><b>  {</b></p><p><b>  int ID;</b></p><p>  char name[20];

13、</p><p>  int score1;</p><p>  int score2;</p><p>  int score3;</p><p>  int total;</p><p>  struct LNode *next;</p><p>  }LNode,*LinkList;<

14、;/p><p>  LinkList Creat(LinkList T,int n);</p><p>  void Delete(LinkList T);</p><p>  void Inquiry(LinkList T);</p><p>  void Insert(LinkList T,int n);</p><p&g

15、t;  void Sort(LNode *p);</p><p>  void Insert(LinkList T,int n)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  LNode *r=T,*p;</p><

16、p>  while((r->next)!=NULL)</p><p><b>  {</b></p><p>  r=r->next;</p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p><

17、;b>  {</b></p><p>  p=(LNode *)malloc(sizeof(LNode));</p><p>  printf("Please enter the student's student ID:");</p><p>  scanf("%d",&p->ID);

18、</p><p>  printf("Please enter the student's name: ");</p><p>  scanf("%s",p->name);</p><p>  printf("Please enter the student's score 1: ")

19、;</p><p>  scanf("%d",&p->score1);</p><p>  printf("Please enter the student's score 2: ");</p><p>  scanf("%d",&p->score2);</p>

20、;<p>  printf("Please enter the student's score 3: ");</p><p>  scanf("%d",&p->score3);</p><p>  p->total=p->score1+p->score2+p->score3;</p&g

21、t;<p>  printf("The total score is %d\n",p->total);</p><p>  p->next=NULL;</p><p>  r->next=p;</p><p><b>  r=p;</b></p><p><b&g

22、t;  }</b></p><p>  printf("\nInsert is complete!");</p><p><b>  }</b></p><p>  void Inquiry(LinkList T)</p><p><b>  {</b></p&

23、gt;<p><b>  int id;</b></p><p>  printf("Please enter the student ID you want to inquire about: ");</p><p>  scanf("%d",&id);</p><p>  LNo

24、de *p=T;</p><p>  p=p->next;</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if(p->ID==id)</p><p><b>  {</b></p>&l

25、t;p>  printf("\nThe student scores information has been successfully inquired!\n");</p><p>  printf("ID: %d\nName: %s\nScore 1: %d\nScore 2: %d\nScore 3: %d\n",p->ID,p->name,p-&g

26、t;score1,p->score2,p->score3);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b><

27、/p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(!p)</b></p><p>  printf("Sorry!Did not inqu

28、iry the student scores information!");</p><p><b>  }</b></p><p>  void Delete(LinkList T)</p><p><b>  {</b></p><p>  int id,flag=1;</p&g

29、t;<p>  printf("Please enter the student ID you want to delete about: ");</p><p>  scanf("%d",&id);</p><p>  LNode *p=T;</p><p>  //LNode *q;</p>

30、;<p>  while((p->next)!=NULL)</p><p><b>  {</b></p><p>  if(p->next->ID==id)</p><p><b>  {</b></p><p>  //q=p->next;</p>

31、;<p>  p->next=p->next->next;</p><p>  // delete q;</p><p>  printf("\nThe student scores information has been successfully deleted!\n");</p><p><b> 

32、 flag=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p> 

33、 p=p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(flag)</b></p><p>  printf("Sorry!Did not delete the student s

34、cores information you want to delete!");</p><p><b>  }</b></p><p>  void Sort(LNode *p)</p><p><b>  {</b></p><p>  LNode *r,*qian,*hou;<

35、/p><p>  qian=p->next;</p><p>  hou=qian->next;</p><p>  while(hou)</p><p>  if(qian->total>=hou->total)</p><p><b>  {</b></p>

36、;<p><b>  qian=hou;</b></p><p>  hou=hou->next;</p><p><b>  }//if</b></p><p><b>  else</b></p><p><b>  {</b>&l

37、t;/p><p><b>  r=p;</b></p><p>  while(r->next->total>hou->total)</p><p>  r=r->next;</p><p>  qian->next=hou->next;</p><p>  

38、hou->next=r->next;</p><p>  r->next=hou;</p><p>  hou=qian->next;</p><p><b>  }//else</b></p><p>  p=p->next;</p><p><b>  

39、int i=1;</b></p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  printf("Num: %d\nID: %d\nName: %s\nScore 1: %d\nScore 2: %d\nScore 3: %d\ntotal:

40、%d\n\n",i,p->ID,p->name,p->score1,p->score2,p->score3,p->total);</p><p>  p=p->next;</p><p><b>  i++;</b></p><p><b>  }</b></p&g

41、t;<p><b>  }</b></p><p>  LinkList Creat(LinkList T,int n)</p><p><b>  {</b></p><p>  LNode *p,*r;</p><p><b>  int i;</b><

42、/p><p>  T=(LNode *)malloc(sizeof(LNode));</p><p>  T->next=NULL;</p><p><b>  r=T;</b></p><p>  for(i=0;i<n;i++)</p><p><b>  {</b&g

43、t;</p><p>  p=(LNode *)malloc(sizeof(LNode));</p><p>  printf("Please enter the student's student ID:");</p><p>  scanf("%d",&p->ID);</p><p

44、>  printf("Please enter the student's name: ");</p><p>  scanf("%s",p->name);</p><p>  printf("Please enter the student's score 1: ");</p><

45、p>  scanf("%d",&p->score1);</p><p>  printf("Please enter the student's score 2: ");</p><p>  scanf("%d",&p->score2);</p><p>  pri

46、ntf("Please enter the student's score 3: ");</p><p>  scanf("%d",&p->score3);</p><p>  p->total=p->score1+p->score2+p->score3;</p><p>  pr

47、intf("The total score is %d\n",p->total);</p><p>  p->next=NULL;</p><p>  r->next=p;</p><p><b>  r=p;</b></p><p><b>  }</b>&l

48、t;/p><p><b>  return T;</b></p><p><b>  }</b></p><p>  int main()</p><p><b>  {</b></p><p><b>  LNode *p;</b>&

49、lt;/p><p><b>  int n;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  printf(&qu

50、ot; Student Scores Management\n\n");</p><p>  printf(" 1-Enter the student's score\n");</p><p>  printf(" 2-Query the student's score\n");</p>&

51、lt;p>  printf(" 3-Insert the student's score\n");</p><p>  printf(" 4-Delete the student's score\n");</p><p>  printf(" 5-Sort the student's scor

52、e\n");</p><p>  printf(" 0-Exit system\n\n");</p><p>  printf("Please enter a number selection(0-5):");</p><p>  int choice;</p><p>  scanf(

53、"%d",&choice);</p><p>  system("cls");</p><p>  if(choice==0)</p><p><b>  exit(0);</b></p><p>  switch(choice)</p><p>&

54、lt;b>  {</b></p><p>  case 1:printf("Please enter the number of students you want to enter your student's scores: ");scanf("%d",&n);</p><p>  p=Creat(p,n);pr

55、intf("\n\nPlease enter your choice(1):");printf("1-Esc");scanf("%d",&n);if(n)break;</p><p>  case 2:printf("Please enter the number of students you want to query your s

56、tudent's scores: ");</p><p>  scanf("%d",&n);</p><p>  int i=0;while(i<n){Inquiry(p);i++;}</p><p>  printf("\nPlease enter your choice(1):");prin

57、tf("1-Esc");scanf("%d",&n);break;</p><p>  case 3:printf("Please enter the number of students you want to insert your student's scores: ");</p><p>  scanf(&

58、quot;%d",&n);Insert(p,n);</p><p>  printf("\nPlease enter your choice(1):");printf("1-Esc");scanf("%d",&n);break;</p><p>  case 4:printf("Please e

59、nter the number of students you want to delete your student's scores: ");</p><p>  scanf("%d",&n);</p><p>  i=0;while(i<n){Delete(p);i++;}</p><p>  printf(

60、"\nPlease enter your choice(1):");printf("1-Esc");scanf("%d",&n);break;</p><p>  case 5:Sort(p);</p><p>  printf("\nPlease enter your choice(1):");pri

61、ntf("1-Esc");scanf("%d",&n);break;</p><p>  default:break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return

62、0;</b></p><p><b>  }</b></p><p><b>  7. 測試情況:</b></p><p><b>  截圖:</b></p><p>  程序輸出為:Num: 1</p><p><b>  ID

63、: 1</b></p><p><b>  Name: n1</b></p><p>  Score 1: 78</p><p>  Score 2: 89</p><p>  Score 3: 84</p><p>  total: 251</p><p>&

64、lt;b>  Num: 2</b></p><p><b>  ID: 3</b></p><p><b>  Name: n3</b></p><p>  Score 1: 68</p><p>  Score 2: 89</p><p>  Score

65、3: 90</p><p>  total: 247</p><p>  課程設計的名稱:停車場的管理</p><p><b>  問題描述:</b></p><p>  設停車場內只有一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場內按車輛到達時間的先后順序,依次由北向南排列(大門在最南端,最先到

66、達的第一輛車停放在車場的最北端),若車場內已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;</p><p>  當停車場內某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。</p><p>  試為停車場編制按上述要求進

67、行管理的模擬程序。</p><p><b>  基本要求:</b></p><p>  綜合利用棧和隊列模擬停車場管理,學習利用棧和隊列解決實際問題。</p><p>  以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入數(shù)據序列進行模擬管理。每一組輸入數(shù)據包括三個數(shù)據項:汽車“到達”或“離去”信息、汽車牌照號碼及到達或離去的時刻,對

68、每一組輸入數(shù)據進行操作后的輸出數(shù)據為:若是車輛到達,則輸出汽車在停車場內或便道上的停車位置;若是車離去;則輸出汽車在停車場內停留的時間和應交納的費用(在便道上停留的時間不收費)。棧以順序結構實現(xiàn),隊列以鏈表實現(xiàn)。</p><p>  需另設一個棧,臨時停放為給要離去的汽車讓路而從停車場退出來的汽車,也用順序存儲結構實現(xiàn)。輸入數(shù)據按到達或離去的時刻有序。棧中每個元素表示一輛汽車,包含兩個數(shù)據項:汽車的牌照號碼和進入

69、停車場的時刻。</p><p><b>  算法思想:</b></p><p>  停車場運用棧的算法思想管理車輛信息;便道運用隊列的算法思想管理等待進入停車場的車輛信息;臨時停放讓路的車輛信息也用隊列算法思想管理。</p><p><b>  模塊劃分:</b></p><p>  void PR

70、INT(CarNode *p,int room其功能為打印出場車的信息</p><p>  void Arrive(SeqStackCar *Enter,LinkQueueCar *W) 其功能為記錄進場車和等待進場車信息</p><p>  void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) 其功能為記錄出場車

71、信息</p><p>  void List1(SeqStackCar *S)其功能為顯示存車信息</p><p><b>  5. 數(shù)據結構:</b></p><p> ?。?)數(shù)據類型Time定義如下:</p><p>  typedef struct time</p><p><b&g

72、t;  {</b></p><p><b>  int hour;</b></p><p><b>  int min;</b></p><p>  }Time; </p><p>  (2)數(shù)據類型CarNode定義如下:</p><p>

73、  typedef struct node</p><p><b>  {</b></p><p>  char num[10];</p><p>  Time reach;</p><p>  Time leave;</p><p>  }CarNode; </p&

74、gt;<p> ?。?)數(shù)據類型SeqStackCar定義如下:</p><p>  typedef struct NODE</p><p><b>  {</b></p><p>  CarNode *stack[MAX+1];</p><p><b>  int top;</b>&

75、lt;/p><p>  }SeqStackCar; </p><p> ?。?)數(shù)據類型QueueNode定義如下:</p><p>  typedef struct car</p><p><b>  {</b></p><p>  CarNode *data;</p><

76、;p>  struct car *next;</p><p>  }QueueNode;</p><p> ?。?)數(shù)據類型LinkQueueCar定義如下:</p><p>  typedef struct Node</p><p><b>  {</b></p><p>  QueueN

77、ode *head;</p><p>  QueueNode *rear;</p><p>  }LinkQueueCar; </p><p><b>  6. 源程序:</b></p><p><b>  源代碼</b></p><p>  #include

78、 <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <windows.h></p><p>  #define price 0.15</p><p>  #define max 2</p><p>  //=====

79、============================================================================================</p><p><b>  int flag;</b></p><p>  //====================================================

80、=============================================</p><p>  typedef struct time</p><p><b>  {</b></p><p><b>  int hour;</b></p><p><b>  int min

81、;</b></p><p><b>  }Time;</b></p><p>  typedef struct node</p><p><b>  {</b></p><p><b>  long num;</b></p><p>  Ti

82、me reach;</p><p>  Time leave;</p><p>  }CarNode; //車輛信息結點</p><p>  typedef struct NODE</p><p><b>  {</b></p><p>  CarNode *stack[10];</p&

83、gt;<p><b>  int top;</b></p><p>  }SeqStackCar; //模擬車場</p><p>  typedef struct car</p><p><b>  {</b></p><p>  CarNode *data;</p>

84、<p>  struct car *next;</p><p>  }QueueNode;</p><p>  typedef struct Node</p><p><b>  {</b></p><p>  QueueNode *head;</p><p>  QueueNode *

85、rear;</p><p>  }LinkQueueCar; //模擬通道</p><p>  //=================================================================================================</p><p>  void InitStack(SeqStackC

86、ar *s) //初始化棧</p><p><b>  {</b></p><p><b>  int i;</b></p><p><b>  s->top=0;</b></p><p>  for(i=0;i<=max;i++)</p><

87、p>  s->stack[s->top]=NULL;</p><p><b>  }</b></p><p>  void InitQueue(LinkQueueCar *Q) //初始化便道</p><p><b>  {</b></p><p>  Q->head=(

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

89、;/p><p>  return (1);</p><p><b>  }</b></p><p><b>  else</b></p><p>  return (-1);</p><p><b>  }</b></p><p> 

90、 void PRINT(CarNode *p,int room)//打印出場車的信息</p><p><b>  {</b></p><p>  int A1,A2,B1,B2;</p><p>  printf("\n請輸入離開的時間:/**:**/");</p><p>  scanf("

91、;%d:%d",&p->leave.hour,&p->leave.min);</p><p>  printf("離開車輛的車牌號為:%ld\n",p->num);</p><p>  printf("其到達時間為: %d:%d\n",p->reach.hour,p->reach.min);&l

92、t;/p><p>  printf("離開時間為: %d:%d\n",p->leave.hour,p->leave.min);</p><p>  A1=p->reach.hour;</p><p>  A2=p->reach.min;</p><p>  B1=p->leave.hour;<

93、;/p><p>  B2=p->leave.min;</p><p>  printf("應交費用為:%2.1f RMB\n",((B1-A1)*60+(B2-A2))*price);</p><p><b>  free(p);</b></p><p><b>  }</b>

94、</p><p>  //=================================================================================================arrive</p><p>  void Arrive(SeqStackCar *Enter,LinkQueueCar *W)</p><p>&

95、lt;b>  {</b></p><p>  CarNode *p;</p><p>  QueueNode *t;</p><p>  p=(CarNode *)malloc(sizeof(CarNode));</p><p>  //flushall();</p><p>  printf(&qu

96、ot;請輸入車牌號(例:12345):\n");</p><p>  scanf("%ld",&p->num);</p><p>  if(Enter->top<max) //車輛未滿,車進場</p><p><b>  {</b></p><p>  Ente

97、r->top++;</p><p>  printf("車輛請停在第%d位置.\n",Enter->top);</p><p>  printf("請輸入到達時間:\n");</p><p>  scanf("%d:%d",&p->reach.hour,&p->rea

98、ch.min);</p><p>  Enter->stack[Enter->top]=p;</p><p><b>  }</b></p><p>  else //車輛已滿</p><p><b>  {</b></p><p>  printf(&quo

99、t;該車須在便道等待!.\n");</p><p>  t=(QueueNode *)malloc(sizeof(QueueNode));</p><p>  t->data=p;</p><p>  t->next=NULL;</p><p>  W->rear->next=t;</p>&l

100、t;p>  W->rear=t;</p><p><b>  }</b></p><p>  printf("Return main meun(1.return 0.quit)\n");</p><p>  scanf("%d",&flag);</p><p>

101、  switch(flag)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  system("cls");</p><p>  printf("Thanks,Welcome to use next\n&qu

102、ot;);</p><p><b>  exit(0);</b></p><p><b>  case 1:</b></p><p>  system("cls");</p><p><b>  }</b></p><p><b

103、>  }</b></p><p>  //=================================================================================================leave</p><p>  void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQ

104、ueueCar *W)</p><p><b>  {</b></p><p>  int i,room;</p><p>  CarNode *p,*t;</p><p>  QueueNode *q;</p><p>  if(Enter->top>0) //盼斷車場內是否有車

105、</p><p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  printf("請輸入車在車場的位置/1--%d/:\n",Enter->top); //請

106、輸入車在車場的位置</p><p>  scanf("%d",&room);</p><p>  if(room>=1&&room<=Enter->top)</p><p><b>  break;</b></p><p><b>  }</b

107、></p><p>  while(Enter->top>room) //車輛離開</p><p><b>  {</b></p><p>  Temp->top++;</p><p>  Temp->stack[Temp->top]=Enter->stack[Enter->

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

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

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

111、t;<p>  PRINT(p,room); //判斷通道上是否有車及車場是否已滿</p><p>  if((W->head!=W->rear)&&Enter->top<max) //便道的車輛進場</p><p><b>  {</b></p><p>  q=W->hea

112、d->next;</p><p>  t=q->data;</p><p>  Enter->top++;</p><p>  printf("便道的%s號車進入車場第%d位置.\n",t->num,Enter->top);</p><p>  printf("請輸入現(xiàn)在的時間/**

113、:**/:\n");</p><p>  scanf("%d:%d",&t->reach.hour,&t->reach.min);</p><p>  W->head->next=q->next;</p><p>  if(q==W->rear)</p><p>

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

115、</p><p>  printf("便道;里沒有車.\n");</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("車場里沒有車.\n"); //車場里沒有車</p>&l

116、t;p>  printf("Return main meun(1.return 0.quit)\n");</p><p>  scanf("%d",&flag);</p><p>  switch(flag)</p><p><b>  {</b></p><p>&

117、lt;b>  case 0:</b></p><p>  system("cls");</p><p>  printf("Thanks,Welcome to use next\n");</p><p><b>  exit(0);</b></p><p><

118、;b>  case 1:</b></p><p>  system("cls");</p><p><b>  }</b></p><p><b>  }</b></p><p>  //=====================================

119、============================================================show</p><p>  void List1(SeqStackCar *S) //顯示存車信息</p><p><b>  {</b></p><p><b>  int i;</b></

120、p><p>  if(S->top>0) //判斷車場內是否有車</p><p><b>  {</b></p><p>  printf("車場\n");</p><p>  for(i=1;i<=S->top;i++)</p><p><b>

121、;  {</b></p><p>  printf("位置%d\到達時間:%d:%d\t號碼:%ld\n",i,S->stack[i]->reach.hour,S->stack[i]->reach.min,S->stack[i]->num);</p><p><b>  }</b></p>

122、<p><b>  }</b></p><p><b>  else</b></p><p>  printf("車場里沒有車.\n");</p><p>  printf("Return main meun(1.return 0.quit)\n");</p>

123、;<p>  scanf("%d",&flag);</p><p>  switch(flag)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  system("cls");

124、</p><p>  printf("Thanks,Welcome to use next\n");</p><p><b>  exit(0);</b></p><p><b>  case 1:</b></p><p>  system("cls");&l

125、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void List2(LinkQueueCar *W)</p><p><b>  {</b></p><p>  QueueNode *p;</p&

126、gt;<p>  p=W->head->next;</p><p>  if(W->head!=W->rear)</p><p><b>  {</b></p><p>  printf("等待車輛的號碼為:");</p><p>  while(p!=NULL)

127、</p><p><b>  {</b></p><p>  printf("%ld\n",p->data->num);</p><p>  p=p->next;</p><p><b>  }</b></p><p><b>

128、  }</b></p><p><b>  else</b></p><p>  printf("便道里沒有車.\n");</p><p>  printf("Return main meun(1.return 0.quit)\n");</p><p>  scanf(

129、"%d",&flag);</p><p>  switch(flag)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  system("cls");</p><p>

130、;  printf("Thanks,Welcome to use next\n");</p><p><b>  exit(0);</b></p><p><b>  case 1:</b></p><p>  system("cls");</p><p>&

131、lt;b>  }</b></p><p><b>  }</b></p><p>  void List(SeqStackCar S,LinkQueueCar W)</p><p><b>  {</b></p><p><b>  int tag;</b>&

132、lt;/p><p>  printf("1.車場\n");</p><p>  printf("2.便道\n");</p><p>  printf("0.返回\n");</p><p>  scanf("%d",&tag);</p><p

133、>  system("cls");</p><p>  switch(tag)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p><b>  break;</b></p><

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

135、p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //=============================================================================

136、====================main</p><p>  int main()</p><p><b>  {</b></p><p>  SeqStackCar Enter,Temp;</p><p>  LinkQueueCar Wait;</p><p><b>  i

137、nt ch;</b></p><p>  InitStack(&Enter);</p><p>  InitStack(&Temp);</p><p>  InitQueue(&Wait);</p><p>  AA:printf("停車場\n");</p><p&g

138、t;  printf("\n1.車輛到達\n");</p><p>  printf("2.車輛離開\n");</p><p>  printf("3.列表顯示\n");</p><p>  printf("0.退出系統(tǒng)\n");</p><p>  scanf(

139、"%d",&flag);</p><p>  system("cls");</p><p>  switch(flag)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>

140、;  printf("Thanks,Welcome to use next\n");</p><p><b>  return 0;</b></p><p><b>  case 1:</b></p><p>  Arrive(&Enter,&Wait);</p><

141、p><b>  goto AA;</b></p><p><b>  case 2:</b></p><p>  Leave(&Enter,&Temp,&Wait);</p><p><b>  goto AA;</b></p><p><b

142、>  case 3:</b></p><p>  List(Enter,Wait);</p><p><b>  goto AA;</b></p><p><b>  }</b></p><p><b>  return 0;</b></p>&

143、lt;p><b>  }</b></p><p>  //=================================================================================================</p><p><b>  7. 測試情況:</b></p><p&

144、gt;<b>  截圖:</b></p><p><b>  程序輸出為:</b></p><p>  The System of parking</p><p>  1.car arrive</p><p>  2.car leave</p><p>  3.show ca

145、r</p><p>  0.quit system</p><p>  Parking Lot</p><p>  place:1 arrived time:5:45 number:2</p><p>  place:2 arrived time:9:14 number:1</p><p>  

146、Return main meun(1.return 0.quit)</p><p>  課程設計的名稱:二叉樹的基本操作的實現(xiàn)</p><p><b>  1. 問題描述:</b></p><p>  在主程序中編寫一個簡單的菜單,將有關二叉樹的操作</p><p>  建立一棵二叉樹的存儲結構</p>&

147、lt;p>  遍歷一棵二叉樹(包括層次遍歷)</p><p>  統(tǒng)計二叉樹葉子結點的個數(shù)</p><p><b>  求二叉樹的深度</b></p><p><b>  子樹交換</b></p><p><b>  2. 基本要求:</b></p><

溫馨提示

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

評論

0/150

提交評論