數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---航空訂票系統(tǒng)_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告</p><p><b>  1.航空訂票系統(tǒng) </b></p><p><b>  1.需求分析</b></p><p>  試設(shè)計一個航空訂票系統(tǒng),基本要求如下: 每條航班所涉及的信息有:航班號,航班機型,起飛機場,降落機場,日期(星期幾),起飛時間,降落時間,飛行時長

2、,價格,乘員定額,余票量,訂定票的客戶名單(包括姓名,訂票量,艙位等級(頭等艙、公務(wù)艙、經(jīng)濟倉)以及等候替補的客戶名單(包括姓名、所需數(shù)量)。采用鏈式存儲結(jié)構(gòu)。 系統(tǒng)能實現(xiàn)的操作和功能如下:</p><p> ?。?)航班信息管理。</p><p> ?。?)查詢航線,按以下幾種方式查詢:</p><p><b>  按航班號查詢;</b>

3、;</p><p><b>  按起點站查詢;</b></p><p><b>  按終點站查詢;</b></p><p><b>  按日期查詢;</b></p><p>  每種查詢方式中,查詢后輸出如下信息:航班號,航班機型,起飛機場,降落機場,日期(星期幾),起飛時間,

4、降落時間,飛行時長,價格,余票量。</p><p>  (3)承辦訂票業(yè)務(wù):根據(jù)客戶提出的要求(航班號,訂票數(shù)額)查詢該航班票額情況,若有余票,則為客戶辦理訂票手續(xù),輸出座位號;若已滿員或余票少于訂票額,則需重新詢問客戶要求。若需要,可登記排隊候補。 (4)承辦退票業(yè)務(wù):根據(jù)客戶提出的情況(日期,航班號),為客戶辦理退票手續(xù),然后查詢該航班是否有人排隊候補,首先詢問排在第一的客戶,若所退票額能滿足他的要求,則

5、為他辦理訂票手續(xù),否則依次詢問其它排隊候補的客戶。</p><p><b>  2.設(shè)計</b></p><p><b>  2.1 設(shè)計思想</b></p><p><b> ?。?)數(shù)據(jù)結(jié)構(gòu)設(shè)計</b></p><p>  typedef struct keHu//客

6、68;戶信息</p><p><b>  {</b></p><p>  char nameofKeHu[20];//客戶名字</p><p>  int numofPiao;//客¨戶需要票的數(shù)量</p><p>  int type;//倉位等級1:頭等Ì艙2:公務(wù)艙3:經(jīng)濟艙</p>

7、<p>  struct keHu* next;/下個客戶</p><p><b>  };</b></p><p>  typedef struct hangBan</p><p><b>  {</b></p><p>  int numofHangBan;//航班號</p&

8、gt;<p>  char typeofHB[20];//航班機型¨</p><p>  char startFly[20];//起飛¦機場</p><p>  char endFly[20];//降¦落機場</p><p>  char DataofHB[20];//日期格式為(20120312 星期¨一)&l

9、t;/p><p>  char startTime[20];//起飛¦時間</p><p>  char endTime[20];//到達時À間</p><p>  float flyTime;//飛行時長</p><p>  float prise;//價格</p><p>  int largeNu

10、m;//成員定額</p><p>  int leaveNum;//余票數(shù)量</p><p>  keHu *custemer;//乘客信息名單</p><p>  keHu *orderofKeHu;//替補客戶</p><p><b>  };</b></p><p>  typedef st

11、ruct Node</p><p><b>  {</b></p><p>  hangBan *exam;//航班信?息¡é</p><p>  int numofN;//航班數(shù)量</p><p>  struct Node *next;</p><p><b> 

12、 };</b></p><p><b> ?。?)算法設(shè)計</b></p><p><b>  總體設(shè)計:</b></p><p>  在Fly.h文件中設(shè)計艙位的信息處理以及訂票退票和對艙位信息的管理方面的功能</p><p>  然后在main,h中設(shè)計用戶界面功能部分。</p

13、><p><b>  相應(yīng)的處理函數(shù)為</b></p><p><b>  FLY.H</b></p><p>  void InitiateKeHu(keHu **head);客戶信息的初始化;</p><p>  void InitiateHangBan(hangBan **head);航班信息的初

14、始化</p><p>  void InitiateNode(Node **head) 機艙信息的初始化;</p><p>  void hangBanInsert(Node **head,int numHB,char typeHB[],char startF[],char endF[],char startT[],char endT[],char Data[],float FT,floa

15、t prise,int LM)航班插入操作。</p><p>  int hangbanDelete(Node **head,int N)航班刪除功能;</p><p>  void searchforNumofHB(Node *head,int N)按艙號查詢</p><p>  void searchforStartF(Node *head,char sartF

16、[])按起始站查詢</p><p>  void searchforEndF(Node *head,char endF[])按終點站查詢</p><p>  void searchforData(Node *head,char Data[])按日期查詢</p><p>  void insertKeHu(keHu **head,char name[],int sum

17、)//插入客戶信息</p><p>  int deleteKeHu(keHu **head,char name[],int sum)刪除客戶信息</p><p>  inline void popKeHu(keHu *head,keHu **pop)取第一個排隊的客戶</p><p>  void popDKeHu(keHu *head)刪除第一個客戶</

18、p><p>  void bookKeHu(Node **head,int N,char name[],int sum)//客¨戶訂票</p><p>  void returnKeHu(Node *head,int N,char Data[],char name[],int sum,int flag = 0) 客戶退票處理</p><p><b>

19、  MAIN.H</b></p><p>  void GongNeng(Node *head)</p><p>  void hangBanM(Node *head)</p><p>  void hangBanSearch(Node *head)</p><p>  void hangBanBook(Node *head)&l

20、t;/p><p>  void hangBanReturn(Node *head)</p><p><b>  2.2 設(shè)計表示</b></p><p> ?。?)函數(shù)調(diào)用關(guān)系圖</p><p><b>  3.調(diào)試分析</b></p><p>  主要遇見嵌套數(shù)據(jù)結(jié)構(gòu)之后內(nèi)存的

21、初始化步驟,如果不全部初始化,有時候還需要涉及到給他申請內(nèi)存空間的問題,這以后要好好注意!</p><p>  未能實現(xiàn)實際時間的問題,其實可以調(diào)用系統(tǒng)的時間來完成這個程序的日期和其他部分,但是時間關(guān)系未能實現(xiàn)!</p><p><b>  用戶手冊</b></p><p>  按程序提示運用即可!</p><p>&l

22、t;b>  測試數(shù)據(jù)及測試結(jié)果</b></p><p><b>  主界面:</b></p><p>  信息管理:設(shè)置成默認設(shè)置</p><p>  查詢航線 按航班號查詢:</p><p><b>  訂票業(yè)務(wù):</b></p><p><b&g

23、t;  退票業(yè)務(wù):</b></p><p><b>  6.源程序清單</b></p><p>  Fly.h//頭文件</p><p>  #include"string"</p><p>  using namespace std;</p><p>  type

24、def struct keHu//客¨ª戶¡ì信?息¡é</p><p><b>  {</b></p><p>  char nameofKeHu[20];//客¨ª戶¡ì名?字Á?</p><p>  int numofPiao;/

25、/客¨ª戶¡ì需¨¨要°a票¡À的Ì?數(shù)ºy量¢?</p><p>  int type;//倉?位?等̨¨級?1:êo頭ª¡¤等̨¨艙?2:êo公?務(wù)?艙?3:êo經(jīng)-濟

26、?艙?</p><p>  struct keHu* next;//下?一°?個?客¨ª戶¡ì</p><p><b>  };</b></p><p>  typedef struct hangBan</p><p><b>  {</b><

27、/p><p>  int numofHangBan;//航?班㨤號?</p><p>  char typeofHB[20];//航?班㨤機¨²型¨ª</p><p>  char startFly[20];//起e飛¤¨¦機

28、8;²場?</p><p>  char endFly[20];//降¦Ì落?機¨²場?</p><p>  char DataofHB[20];//日¨?期¨²;ê?格?式º?為a(ꡧ20120312星?期¨²一°?)

29、4;?</p><p>  char startTime[20];//起e飛¤¨¦時º¡À間?</p><p>  char endTime[20];//到Ì?達ä?時º¡À間?</p><p>  float flyTime;//飛¤¨

30、¦行D時º¡À長¡è</p><p>  float prise;//價?格?</p><p>  int largeNum;//成¨¦員¡À定¡§額?</p><p>  int leaveNum;//余®¨¤票&#

31、161;À數(shù)ºy量¢?</p><p>  keHu *custemer;//乘?客¨ª信?息¡é名?單Ì£¤</p><p>  keHu *orderofKeHu;//替¬?補1客¨ª戶¡ì</p><p><

32、;b>  };</b></p><p>  typedef struct Node</p><p><b>  {</b></p><p>  hangBan *exam;//航?班㨤信?息¡é</p><p>  int numofN;//航?班&

33、#227;¨¤數(shù)ºy量¢?</p><p>  struct Node *next;</p><p><b>  };</b></p><p>  void InitiateHangBan(hangBan **head);</p><p>  void InitiateKeHu(k

34、eHu **head);</p><p>  void InitiateNode(Node **head)</p><p><b>  {</b></p><p>  *head = (Node *)malloc(sizeof(Node));</p><p>  (*head)->numofN = 0;</p

35、><p>  InitiateHangBan(&(*head)->exam);</p><p>  (*head)->next = NULL;</p><p><b>  }</b></p><p>  void InitiateHangBan(hangBan **head)</p><

36、;p><b>  {</b></p><p>  *head = (hangBan *)malloc(sizeof(hangBan));</p><p>  (*head)->numofHangBan = 0;</p><p>  strcpy((*head)->typeofHB,"");</p>

37、;<p>  strcpy((*head)->startFly,"");</p><p>  strcpy((*head)->endFly,"");</p><p>  strcpy((*head)->startTime,"");</p><p>  strcpy((*hea

38、d)->endTime,"");</p><p>  strcpy((*head)->DataofHB,"");</p><p>  (*head)->flyTime = 0;</p><p>  (*head)->prise = 0;</p><p>  (*head)->

39、;largeNum = 0;</p><p>  (*head)->leaveNum = 0;</p><p>  InitiateKeHu(&((*head)->custemer));</p><p>  InitiateKeHu(&((*head)->orderofKeHu));</p><p><

40、b>  }</b></p><p>  void InitiateKeHu(keHu **head)</p><p><b>  {</b></p><p>  *head = (keHu *)malloc(sizeof(keHu));</p><p>  strcpy((*head)->name

41、ofKeHu,"");</p><p>  (*head)->numofPiao = 0;</p><p>  (*head)->type = 0;</p><p>  (*head)->next = NULL;</p><p><b>  }</b></p><

42、p>  void hangBanInsert(Node **head,int numHB,char typeHB[],char startF[],char endF[],char startT[],char endT[],char Data[],float FT,float prise,int LM)</p><p><b>  {</b></p><p>&l

43、t;b>  Node *p;</b></p><p>  p = (Node *)malloc(sizeof(Node));</p><p>  //InitiateHangBan(&p->exam);</p><p>  /*InitiateNode(&p);*/</p><p>  p->ex

44、am = (hangBan *)malloc(sizeof(hangBan));</p><p>  p->exam->numofHangBan = numHB;</p><p>  strcpy(p->exam->startFly,startF);</p><p>  strcpy(p->exam->endFly,endF);&

45、lt;/p><p>  strcpy(p->exam->startTime,startT);</p><p>  strcpy(p->exam->DataofHB,Data);</p><p>  strcpy(p->exam->endTime,endT);</p><p>  strcpy(p->exa

46、m->typeofHB,typeHB);</p><p>  p->exam->flyTime = FT;</p><p>  p->exam->prise = prise;</p><p>  p->exam->largeNum = LM;</p><p>  p->exam->leav

47、eNum = LM;</p><p>  p->numofN = (*head)->numofN+1;</p><p>  p->next = NULL;</p><p>  /*p->exam->custemer = (keHu *)malloc(sizeof(keHu));</p><p>  p->e

48、xam->orderofKeHu = (keHu *)malloc(sizeof(keHu));*/</p><p>  InitiateKeHu(&p->exam->custemer);</p><p>  InitiateKeHu(&p->exam->orderofKeHu);</p><p>  if((*head

49、)->numofN == 0)</p><p><b>  {</b></p><p>  (*head) = p;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  (*head)-&

50、gt;numofN ++;</p><p>  p->next = (*head);</p><p>  (*head) = p;</p><p>  p = (*head);</p><p>  while(p != NULL)</p><p><b>  {</b></p>

51、<p>  p->numofN = (*head)->numofN;</p><p>  p = p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  int hangbanDelete(Node **he

52、ad,int N)</p><p><b>  {</b></p><p>  Node *p,*q,*s;</p><p>  s = (Node *)malloc(sizeof(Node));</p><p>  p = (Node *)malloc(sizeof(Node));</p><p&g

53、t;  q = (Node *)malloc(sizeof(Node));</p><p>  if(((*head) != NULL)&&((*head)->next == NULL))</p><p><b>  {</b></p><p>  if(((*head)->exam->numofHangBan

54、 == N))</p><p>  InitiateNode(head);</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b> 

55、 {</b></p><p>  if(((*head)->exam->numofHangBan == N))</p><p><b>  {</b></p><p>  (*head) = (*head)->next;</p><p>  s = (*head);</p>&

56、lt;p>  (*head)->numofN --;</p><p>  while(s != NULL)</p><p><b>  {</b></p><p>  s->numofN = (*head)->numofN;</p><p>  s = s->next;</p>

57、<p><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  p = *head;q = *head;</p&g

58、t;<p>  while(p != NULL)</p><p><b>  {</b></p><p>  if((p->exam->numofHangBan == N)&&(p->next != NULL))</p><p><b>  {</b></p>

59、<p>  q->next = p->next;</p><p>  s = (*head);</p><p>  (*head)->numofN --;</p><p>  while(s != NULL)</p><p><b>  {</b></p><p>  

60、s->numofN = (*head)->numofN;</p><p>  s = s->next;</p><p><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p>

61、<p>  if((p->exam->numofHangBan == N)&&(p->next == NULL))</p><p><b>  {</b></p><p>  q->next = NULL;</p><p>  s = (*head);</p><p>

62、  (*head)->numofN --;</p><p>  while(s != NULL)</p><p><b>  {</b></p><p>  s->numofN = (*head)->numofN;</p><p>  s = s->next;</p><p&g

63、t;<b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  q = p;</b></p><p>  p = p->next;</p><

64、p><b>  }</b></p><p>  if(p == NULL) return 0;</p><p><b>  }</b></p><p>  void searchforNumofHB(Node *head,int N)</p><p><b>  {</b>

65、;</p><p><b>  Node *p;</b></p><p>  int i = 0;</p><p>  p = (Node *)malloc(sizeof(Node));</p><p><b>  p = head;</b></p><p>  while(

66、p != NULL)</p><p><b>  {</b></p><p>  if(p->exam->numofHangBan == N)</p><p><b>  {</b></p><p><b>  i ++;</b></p><p&

67、gt;  printf("航?班㨤號?:êo%d\n 航?班㨤機¨²型¨ª:êo%s 日¨?期¨²:êo%s 起e飛¤¨¦機¨²場?:êo%s\n 降¦Ì落?機¨²

68、;場?:êo%s 起e飛¤¨¦時º¡À間?:êo%s 降¦Ì落?時º¡À間?:êo%s \n飛¤¨¦行D時º¡À長¡è:êo%f 航?班㨤價?格?:êo%f 航?班&

69、#227;¨¤余®¨¤票¡À量¢?:êo%d\n",p->exam->numofHangBan,p->exam->typeofHB,p->exam->DataofHB,p->exam->startFly,p->exam->endFly,p->exam->startTi

70、me,p->exam->endTime,p->exam->flyTime,p->exam->prise,p->exam->leaveNum);</p><p>  /* system("pause");*/</p><p><b>  }</b></p><p>  p =

71、 p->next;</p><p><b>  }</b></p><p>  system("pause");</p><p>  if(i == 0)</p><p><b>  {</b></p><p>  printf("\n無T

72、此ä?航?班㨤…-…-…-…-…-…-!ê?\n");</p><p>  system("pause");</p><p><b>  }</b></p><p><b>  }</b></p><p>  voi

73、d searchforStartF(Node *head,char sartF[])</p><p><b>  {</b></p><p><b>  Node *p;</b></p><p><b>  int i =0;</b></p><p>  p = (Node *

74、)malloc(sizeof(Node));</p><p><b>  p = head;</b></p><p>  while(p != NULL)</p><p><b>  {</b></p><p>  if(strcmp(p->exam->startFly,sartF) =

75、= 0)</p><p><b>  {</b></p><p><b>  i++;</b></p><p>  printf("航?班㨤號?:êo%d\n 航?班㨤機¨²型¨ª:êo

76、%s 日¨?期¨²:êo%s 起e飛¤¨¦機¨²場?:êo%s\n 降¦Ì落?機¨²場?:êo%s 起e飛¤¨¦時º¡À間?:êo%s 降¦Ì落?時º¡À間?:ê

77、;o%s \n飛¤¨¦行D時º¡À長¡è:êo%f 航?班㨤價?格?:êo%f 航?班㨤余®¨¤票¡À量¢?:êo%d\n",p->exam->numofHangBan,p->

78、;exam->typeofHB,p->exam->DataofHB,p->exam->startFly,p->exam->endFly,p->exam->startTime,p->exam->endTime,p->exam->flyTime,p->exam->prise,p->exam->leaveNum);</p>&l

79、t;p>  /* system("pause");*/</p><p><b>  }</b></p><p>  p = p->next;</p><p><b>  }</b></p><p>  system("pause");</p

80、><p>  if(i == 0)</p><p><b>  {</b></p><p>  printf("\n無T此ä?航?班㨤…-…-…-…-…-…-!ê?\n");</p><p>  system("pause");&l

81、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void searchforEndF(Node *head,char endF[])</p><p><b>  {</b></p><p><b&g

82、t;  Node *p;</b></p><p>  int i = 0;</p><p>  p = (Node *)malloc(sizeof(Node));</p><p><b>  p = head;</b></p><p>  while(p != NULL)</p><p&g

83、t;<b>  {</b></p><p>  if(strcmp(p->exam->endFly,endF) == 0)</p><p><b>  {</b></p><p><b>  i ++;</b></p><p>  printf("航?班&

84、#227;¨¤號?:êo%d\n 航?班㨤機¨²型¨ª:êo%s 日¨?期¨²:êo%s 起e飛¤¨¦機¨²場?:êo%s\n 降¦Ì落?機¨²場?:êo%s 起e飛¤

85、;¨¦時º¡À間?:êo%s 降¦Ì落?時º¡À間?:êo%s \n飛¤¨¦行D時º¡À長¡è:êo%f 航?班㨤價?格?:êo%f 航?班㨤余

86、4;¨¤票¡À量¢?:êo%d\n",p->exam->numofHangBan,p->exam->typeofHB,p->exam->DataofHB,p->exam->startFly,p->exam->endFly,p->exam->startTime,p->exam->endT

87、ime,p->exam->flyTime,p->exam->prise,p->exam->leaveNum);</p><p>  /* system("pause");*/</p><p><b>  }</b></p><p>  p = p->next;</p>

88、;<p><b>  }</b></p><p>  system("pause");</p><p>  if(i == 0)</p><p><b>  {</b></p><p>  printf("\n無T此ä?航?班ã

89、8;¤…-…-…-…-…-…-!ê?\n");</p><p>  system("pause");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void searchforData(Node

90、*head,char Data[])</p><p><b>  {</b></p><p><b>  Node *p;</b></p><p>  int i = 0;</p><p>  p = (Node *)malloc(sizeof(Node));</p><p>

91、;<b>  p = head;</b></p><p>  while(p != NULL)</p><p><b>  {</b></p><p>  if(strcmp(p->exam->DataofHB,Data) == 0)</p><p><b>  {</b

92、></p><p><b>  i ++;</b></p><p>  printf("航?班㨤號?:êo%d\n 航?班㨤機¨²型¨ª:êo%s 日¨?期¨²:êo%s 起e飛

93、4;¨¦機¨²場?:êo%s\n 降¦Ì落?機¨²場?:êo%s 起e飛¤¨¦時º¡À間?:êo%s 降¦Ì落?時º¡À間?:êo%s \n飛¤¨¦行D時º¡&

94、#192;長¡è:êo%f 航?班㨤價?格?:êo%f 航?班㨤余®¨¤票¡À量¢?:êo%d\n",p->exam->numofHangBan,p->exam->typeofHB,p->exam->DataofHB

95、,p->exam->startFly,p->exam->endFly,p->exam->startTime,p->exam->endTime,p->exam->flyTime,p->exam->prise,p->exam->leaveNum);</p><p>  /*system("pause");*/<

96、;/p><p><b>  }</b></p><p>  p = p->next;</p><p><b>  }</b></p><p>  system("pause");</p><p>  if(i == 0)</p><p

97、><b>  {</b></p><p>  printf("\n無T此ä?航?班㨤…-…-…-…-…-…-!ê?\n");</p><p>  system("pause");</p><p><b>  }</b><

98、;/p><p><b>  }</b></p><p>  void insertKeHu(keHu **head,char name[],int sum)//插?入¨?客¨ª戶¡ì信?息¡é</p><p><b>  {</b></p>&

99、lt;p>  keHu *p,*q;</p><p>  p = (keHu *)malloc(sizeof(keHu));</p><p>  q = (keHu *)malloc(sizeof(keHu));</p><p>  q = (*head);</p><p>  strcpy(p->nameofKeHu,name)

100、;</p><p>  p->numofPiao = sum;</p><p>  p->next = NULL;</p><p>  p->type = 0;</p><p>  while(q->next != NULL)</p><p><b>  {</b><

101、/p><p>  q = q->next;</p><p>  if(strcmp(q->nameofKeHu,name)==0)</p><p><b>  {</b></p><p>  q->numofPiao += sum;</p><p><b>  return

102、;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  q->next = p;</p><p><b>  }</b></p><p>  int deleteKeHu(keH

103、u **head,char name[],int sum)</p><p><b>  {</b></p><p>  keHu *q,*p;</p><p><b>  int a;</b></p><p>  p = (*head)->next;</p><p> 

104、 q = *head;</p><p>  while(p != NULL)</p><p><b>  {</b></p><p>  if(strcmp(p->nameofKeHu,name) == 0)</p><p><b>  {</b></p><p>  

105、if(sum >= p->numofPiao)</p><p><b>  {</b></p><p>  a = p->numofPiao;</p><p>  q->next = p->next;</p><p><b>  return a;</b></p&

106、gt;<p><b>  }</b></p><p>  if(p->numofPiao > sum)</p><p><b>  {</b></p><p>  p->numofPiao -= sum;</p><p>  return sum;</p>

107、<p><b>  }</b></p><p><b>  }</b></p><p><b>  q = p;</b></p><p>  p = p->next;</p><p><b>  }</b></p><

108、;p>  if(p == NULL)</p><p><b>  {</b></p><p>  printf("\n無T此ä?客¨ª戶¡ì…-…-…-…-!ê?\n");</p><p>  system("pause");</p&

109、gt;<p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  inline void popKeHu(keHu *head,keHu **pop)</p><p><

110、b>  {</b></p><p>  (*pop) = head->next;</p><p><b>  }</b></p><p>  void popDKeHu(keHu *head)</p><p><b>  {</b></p><p> 

111、 if(head->next->next != NULL)</p><p>  head->next = head->next->next;</p><p><b>  else</b></p><p>  head->next = NULL;</p><p><b>  }

112、</b></p><p>  void bookKeHu(Node **head,int N,char name[],int sum)//客¨ª戶¡ì訂?票¡À</p><p><b>  {</b></p><p>  Node *p,*q;</p><

113、;p>  /*p = (Node *)malloc(sizeof(Node));</p><p>  q = (Node *)malloc(sizeof(Node));*/</p><p>  p = *head;</p><p><b>  q = NULL;</b></p><p>  while(p != N

114、ULL)</p><p><b>  {</b></p><p>  if(p->exam->numofHangBan == N)</p><p><b>  {</b></p><p><b>  q = p;</b></p><p>&l

115、t;b>  }</b></p><p>  p = p->next;</p><p><b>  }</b></p><p>  if(q == NULL)</p><p><b>  {</b></p><p>  printf("\n無T

116、此ä?航?班㨤!ê?請?重?新?輸º?入¨?\n");</p><p>  printf("\n定¡§票¡À失º¡ì敗㨹…-非¤?常¡ê抱À¡ì歉?…-…-…

117、-!ê?\n");</p><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(q->exam->leaveNum == 0)</

118、p><p><b>  {</b></p><p>  printf("\n票¡À已°?經(jīng)-賣?完ª¨º!ê?請?繼¨¬續(xù)?關(guān)?注Á¡é…-…-…-…-\n您¨²愿?意°a進?入¨?排?隊¨&#

119、174;等̨¨候¨°嗎e?ê?愿?意°a就¨ª輸º?入¨?(ꡧ1)ê?,ê?否¤?則¨°輸º?入¨?(ꡧ0)ê?:êo\n");</p><

120、p><b>  int i;</b></p><p>  scanf("%d",&i);</p><p>  if(i == 1)</p><p><b>  {</b></p><p>  insertKeHu(&q->exam->ordero

121、fKeHu,name,sum);</p><p>  printf("\n您¨²已°?經(jīng)-排?隊¨®…-…-…-…-!ê?\n");</p><p>  system("pause");</p><p><b>  }</b></p>

122、<p><b>  return;</b></p><p><b>  }</b></p><p>  if(q->exam->leaveNum >= sum)</p><p><b>  {</b></p><p>  insertKeHu(&

123、amp;q->exam->custemer,name,sum);</p><p>  q->exam->leaveNum -= sum;</p><p>  printf("\n訂?票¡À成¨¦功|…-…-…-…-!ê?\n");</p><p>  cout<<

124、;"客¨ª戶¡ì名?字Á?為a:êo"<<name<<endl<<"客¨ª戶¡ì訂?票¡À數(shù)ºy量¢?為a:êo"<<sum<<endl;</p><p>  sys

125、tem("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if((q->exam->leaveNum > 0)&&(q->exam->leaveNum < sum))&l

126、t;/p><p><b>  {</b></p><p>  printf("\n當Ì¡À前¡ã剩º¡ê余®¨¤票¡À數(shù)ºy不?能¨¹滿¨²足Á?您¨²的

127、Ì?要°a求¨®,ê?您¨²繼¨¬續(xù)?訂?的Ì?話¡ã就¨ª會¨¢只?定¡§%d張?票¡À其?余®¨¤的Ì?排?隊¨®候¨°補1,ê?如¨?

128、果?您¨²愿?意°a就¨ª寫¡ä入¨?(1),否¤?則¨°寫¡ä入¨?(ꡧ0)ê?:êo\n",q->exam->leaveNum);</p><p><b>  int i;</b&

129、gt;</p><p>  scanf("%d",&i);</p><p>  if(i == 0)</p><p><b>  {</b></p><p>  printf("\n很¨¹抱À¡ì歉?…-…-訂?票¡

130、2;失º¡ì敗㨹!ê?\n");</p><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>

131、  if(i == 1)</p><p><b>  {</b></p><p>  insertKeHu(&q->exam->orderofKeHu,name,sum - q->exam->leaveNum);</p><p>  insertKeHu(&q->exam->custemer,

132、name,q->exam->leaveNum);</p><p>  cout<<"客¨ª戶¡ì名?字Á?為a:êo"<<name<<endl<<"客¨ª戶¡ì訂?票¡À數(shù)ºy量¢?為a

133、:êo"<<q->exam->leaveNum<<endl;</p><p>  printf("\n您¨²已°?經(jīng)-定¡§了¢?%d張?票¡À,ê?其?余®¨¤的Ì?已°?經(jīng)-在¨²排?隊

134、¨®候¨°補1了¢?…-…-…-…-!\n",q->exam->leaveNum);</p><p>  system("pause");</p><p>  q->exam->leaveNum = 0;</p><p><b>  return;<

135、;/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void returnKeHu(Node *head,int N,char Data[],char name[],int

136、sum,int flag = 0)//sum表À¨ª示º?退ª?票¡À的Ì?數(shù)ºy量¢?;ê?</p><p><b>  {</b></p><p>  Node *p,*q;</p><p>  int a = sum,b;<

137、/p><p><b>  p = head;</b></p><p>  while(p != NULL)</p><p><b>  {</b></p><p>  if(p->exam->numofHangBan == N)</p><p><b>  

138、{</b></p><p><b>  q = p;</b></p><p><b>  }</b></p><p>  p = p->next;</p><p><b>  }</b></p><p>  if(q == NULL)&

139、lt;/p><p><b>  {</b></p><p>  printf("\n無T此ä?航?班㨤!ê?請?重?新?輸º?入¨?\n");</p><p>  system("pause");</p><p>

140、;<b>  }</b></p><p>  if(sum > q->exam->largeNum)</p><p><b>  {</b></p><p>  printf("\n您¨²的Ì?退ª?票¡À數(shù)ºy額?太

141、2;?大䨮!ê?\n");</p><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(sum <= 0)&

142、lt;/p><p><b>  {</b></p><p>  printf("\n您¨²的Ì?退ª?票¡À數(shù)ºy額?有®D錯䨪,ê?請?重?新?入¨?!ê?\n");</p><p>

143、  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(flag == 0)</p><p><b>  {</b></p><p>

144、  b = deleteKeHu(&q->exam->custemer,name,sum);</p><p><b>  a = b;</b></p><p><b>  if(b)</b></p><p><b>  {</b></p><p>  if(

145、q->exam->leaveNum > 0)</p><p><b>  {</b></p><p>  q->exam->leaveNum +=b;</p><p>  cout<<"客¨ª戶¡ì名?字Á?為a:êo"&l

146、t;<name<<endl<<"退ª?票¡À數(shù)ºy量¢?為a:êo"<<b<<endl;</p><p>  printf("\n退ª?票¡À成¨¦功|—a—a!ê?\n");</p>&

147、lt;p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  q->exam->leaveNum += b;</p><p>  cout<<"

148、;客¨ª戶¡ì名?字Á?為a:êo"<<name<<endl<<"退ª?票¡À數(shù)ºy量¢?為a:êo"<<b<<endl;</p><p>  printf("\n退ª?票¡&

149、#192;成¨¦功|—a—a!ê?\n");</p><p>  /*system("pause");*/</p><p><b>  }</b></p><p><b>  }</b></p><p>  //keHu *s;</p

150、><p>  while((q->exam->orderofKeHu->next!=NULL)&&(a > 0))</p><p><b>  {</b></p><p>  printf("\n現(xiàn)?在¨²有®D所¨´余®¨

151、64;票¡À是º?否¤?留¢?給?排?隊¨®的Ì? %s ,ê?是º?(ꡧ1)ê?否¤?(ꡧ0)ê?:êo\n",q->exam->orderofKeHu->next->nameofKeHu);&l

152、t;/p><p><b>  int i;</b></p><p><b>  keHu *s;</b></p><p>  scanf("%d",&i);</p><p>  if(i == 0)</p><p><b>  {</b

153、></p><p><b>  return;</b></p><p>  printf("\n余®¨¤票¡À未¡ä發(fā)¤¡é給?任¨?何?人¨?!ê?!ê?\n");</p><p&g

154、t;  system("pause");</p><p><b>  }</b></p><p>  if(i == 1)</p><p><b>  {</b></p><p>  /*keHu *s;*/</p><p>  popKeHu(q->

155、;exam->orderofKeHu,&s);</p><p>  if(s->numofPiao <= a)</p><p><b>  {</b></p><p>  if(s->numofPiao == a)</p><p><b>  {</b></p&

156、gt;<p>  insertKeHu(&q->exam->custemer,s->nameofKeHu,s->numofPiao);</p><p>  q->exam->leaveNum -= s->numofPiao;</p><p>  popDKeHu(q->exam->orderofKeHu);<

157、/p><p><b>  a = 0;</b></p><p>  cout<<"客¨ª戶¡ì名?字Á?為a:êo"<<s->nameofKeHu<<endl<<"票¡À數(shù)ºy量¢?為a:&

158、#234;o"<<s->nameofKeHu<<endl;</p><p>  printf("\n余®¨¤票¡À已°?發(fā)¤¡é給?!ê?!ê?\n");</p><p>  system("pause"

159、;);</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  insertKeHu(&a

160、mp;q->exam->custemer,s->nameofKeHu,s->numofPiao);</p><p>  q->exam->leaveNum -= s->numofPiao;</p><p>  popDKeHu(q->exam->orderofKeHu);</p><p>  /*returnKe

161、Hu(head,N,Data,name,a-s->numofPiao,1);*/</p><p>  a -= s->numofPiao;</p><p>  cout<<"客¨ª戶¡ì名?字Á?為a:êo"<<s->nameofKeHu<<endl<

162、<"票¡À數(shù)ºy量¢?為a:êo"<<s->numofPiao<<endl;</p><p>  cout<<"訂?票¡À成¨¦功|…-…-…-…-!ê?"<<endl;</p><p>  

163、system("pause");</p><p>  if(q->exam->leaveNum == 0)</p><p><b>  {</b></p><p>  printf("\n余®¨¤票¡À已°?全¨?部?發(fā)¤&

溫馨提示

  • 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

提交評論