數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---航空訂票系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩24頁(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>  1.航空訂票系統(tǒng) </b></p><p><b>  1.需求分析</b></p><p>  試設(shè)計(jì)一個(gè)航空訂票系統(tǒng),基本要求如下: 每條航班所涉及的信息有:航班號(hào),航班機(jī)型,起飛機(jī)場(chǎng),降落機(jī)場(chǎng),日期(星期幾),起飛時(shí)間,降落時(shí)間,飛行時(shí)長(zhǎng)

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

3、;</p><p><b>  按起點(diǎn)站查詢;</b></p><p><b>  按終點(diǎn)站查詢;</b></p><p><b>  按日期查詢;</b></p><p>  每種查詢方式中,查詢后輸出如下信息:航班號(hào),航班機(jī)型,起飛機(jī)場(chǎng),降落機(jī)場(chǎng),日期(星期幾),起飛時(shí)間,

4、降落時(shí)間,飛行時(shí)長(zhǎng),價(jià)格,余票量。</p><p> ?。?)承辦訂票業(yè)務(wù):根據(jù)客戶提出的要求(航班號(hào),訂票數(shù)額)查詢?cè)摵桨嗥鳖~情況,若有余票,則為客戶辦理訂票手續(xù),輸出座位號(hào);若已滿員或余票少于訂票額,則需重新詢問(wèn)客戶要求。若需要,可登記排隊(duì)候補(bǔ)。 (4)承辦退票業(yè)務(wù):根據(jù)客戶提出的情況(日期,航班號(hào)),為客戶辦理退票手續(xù),然后查詢?cè)摵桨嗍欠裼腥伺抨?duì)候補(bǔ),首先詢問(wèn)排在第一的客戶,若所退票額能滿足他的要求,則

5、為他辦理訂票手續(xù),否則依次詢問(wèn)其它排隊(duì)候補(bǔ)的客戶。</p><p><b>  2.設(shè)計(jì)</b></p><p><b>  2.1 設(shè)計(jì)思想</b></p><p><b>  (1)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</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;//倉(cāng)位等級(jí)1:頭等Ì艙2:公務(wù)艙3:經(jīng)濟(jì)艙</p>

7、<p>  struct keHu* next;/下個(gè)客戶</p><p><b>  };</b></p><p>  typedef struct hangBan</p><p><b>  {</b></p><p>  int numofHangBan;//航班號(hào)</p&

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

9、t;/p><p>  char startTime[20];//起飛¦時(shí)間</p><p>  char endTime[20];//到達(dá)時(shí)À間</p><p>  float flyTime;//飛行時(shí)長(zhǎng)</p><p>  float prise;//價(jià)格</p><p>  int largeNu

10、m;//成員定額</p><p>  int leaveNum;//余票數(shù)量</p><p>  keHu *custemer;//乘客信息名單</p><p>  keHu *orderofKeHu;//替補(bǔ)客戶</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è)計(jì)</b></p><p><b>  總體設(shè)計(jì):</b></p><p>  在Fly.h文件中設(shè)計(jì)艙位的信息處理以及訂票退票和對(duì)艙位信息的管理方面的功能</p><p>  然后在main,h中設(shè)計(jì)用戶界面功能部分。</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) 機(jī)艙信息的初始化;</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)按艙號(hào)查詢</p><p>  void searchforStartF(Node *head,char sartF

16、[])按起始站查詢</p><p>  void searchforEndF(Node *head,char endF[])按終點(diǎn)站查詢</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)取第一個(gè)排隊(duì)的客戶</p><p>  void popDKeHu(keHu *head)刪除第一個(gè)客戶</

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è)計(jì)表示</b></p><p> ?。?)函數(shù)調(diào)用關(guān)系圖</p><p><b>  3.調(diào)試分析</b></p><p>  主要遇見(jiàn)嵌套數(shù)據(jù)結(jié)構(gòu)之后內(nèi)存的

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

22、t;b>  測(cè)試數(shù)據(jù)及測(cè)試結(jié)果</b></p><p><b>  主界面:</b></p><p>  信息管理:設(shè)置成默認(rèn)設(shè)置</p><p>  查詢航線 按航班號(hào)查詢:</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;//倉(cāng)?位?等̨¨級(jí)?1:êo頭ª¡¤等̨¨艙?2:êo公?務(wù)?艙?3:êo經(jīng)-濟(jì)

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

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

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

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

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

31、161;À數(shù)ºy量¢?</p><p>  keHu *custemer;//乘?客¨ª信?息¡é名?單Ì£¤</p><p>  keHu *orderofKeHu;//替¬?補(bǔ)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("航?班㨤號(hào)?:êo%d\n 航?班㨤機(jī)¨²型¨ª:êo%s 日¨?期¨²:êo%s 起e飛¤¨¦機(jī)¨²場(chǎng)?:êo%s\n 降¦Ì落?機(jī)¨²

68、;場(chǎng)?:êo%s 起e飛¤¨¦時(shí)º¡À間?:êo%s 降¦Ì落?時(shí)º¡À間?:êo%s \n飛¤¨¦行D時(shí)º¡À長(zhǎng)¡è:êo%f 航?班㨤價(jià)?格?:ê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無(wú)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("航?班㨤號(hào)?:êo%d\n 航?班㨤機(jī)¨²型¨ª:êo

76、%s 日¨?期¨²:êo%s 起e飛¤¨¦機(jī)¨²場(chǎng)?:êo%s\n 降¦Ì落?機(jī)¨²場(chǎng)?:êo%s 起e飛¤¨¦時(shí)º¡À間?:êo%s 降¦Ì落?時(shí)º¡À間?:ê

77、;o%s \n飛¤¨¦行D時(shí)º¡À長(zhǎng)¡è:êo%f 航?班㨤價(jià)?格?:ê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無(wú)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;¨¤號(hào)?:êo%d\n 航?班㨤機(jī)¨²型¨ª:êo%s 日¨?期¨²:êo%s 起e飛¤¨¦機(jī)¨²場(chǎng)?:êo%s\n 降¦Ì落?機(jī)¨²場(chǎng)?:êo%s 起e飛¤

85、;¨¦時(shí)º¡À間?:êo%s 降¦Ì落?時(shí)º¡À間?:êo%s \n飛¤¨¦行D時(shí)º¡À長(zhǎng)¡è:êo%f 航?班㨤價(jià)?格?:ê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無(wú)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("航?班㨤號(hào)?:êo%d\n 航?班㨤機(jī)¨²型¨ª:êo%s 日¨?期¨²:êo%s 起e飛

93、4;¨¦機(jī)¨²場(chǎng)?:êo%s\n 降¦Ì落?機(jī)¨²場(chǎng)?:êo%s 起e飛¤¨¦時(shí)º¡À間?:êo%s 降¦Ì落?時(shí)º¡À間?:êo%s \n飛¤¨¦行D時(shí)º¡&

94、#192;長(zhǎng)¡è:êo%f 航?班㨤價(jià)?格?:ê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無(wú)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無(wú)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無(wú)T

116、此ä?航?班㨤!ê?請(qǐng)?重?新?輸º?入¨?\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)-賣(mài)?完ª¨º!ê?請(qǐng)?繼¨¬續(xù)?關(guān)?注Á¡é…-…-…-…-\n您¨²愿?意°a進(jìn)?入¨?排?隊(duì)¨&#

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)-排?隊(duì)¨®…-…-…-…-!ê?\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當(dāng)Ì¡À前¡ã剩º¡ê余®¨¤票¡À數(shù)ºy不?能¨¹滿¨²足Á?您¨²的

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

128、果?您¨²愿?意°a就¨ª寫(xiě)¡ä入¨?(1),否¤?則¨°寫(xiě)¡ä入¨?(ꡧ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)-在¨²排?隊(duì)

134、¨®候¨°補(bǔ)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無(wú)T此ä?航?班㨤!ê?請(qǐng)?重?新?輸º?入¨?\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錯(cuò)䨪,ê?請(qǐng)?重?新?入¨?!ê?\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;票¡À是º?否¤?留¢?給?排?隊(duì)¨®的Ì? %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. 本站所有資源如無(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)論