

版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)航空訂票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 航空客運(yùn)訂票系統(tǒng)課程設(shè)計(jì)(數(shù)據(jù)結(jié)構(gòu))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--航空客運(yùn)訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---航空客運(yùn)訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)航空航班課程設(shè)計(jì)--航空客運(yùn)訂票系統(tǒng)
- 航空客運(yùn)訂票系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)源代碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---飛機(jī)訂票系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 航空訂票系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-- 航空訂票管理系統(tǒng)
- 航空訂票管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告-航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)c語(yǔ)言版飛機(jī) 訂票 系統(tǒng)資料
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- 課程設(shè)計(jì)---航空客運(yùn)訂票系統(tǒng)
- 航空客運(yùn)訂票系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)-航空訂票管理系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論