航空客運(yùn)訂票系統(tǒng)課程設(shè)計(jì)(數(shù)據(jù)結(jié)構(gòu))_第1頁(yè)
已閱讀1頁(yè),還剩34頁(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><b>  XXXXXXXXX</b></p><p><b>  計(jì)算機(jī)技術(shù)系</b></p><p>  項(xiàng)目名稱: 航空客運(yùn)訂票系統(tǒng) </p><p>  學(xué)生姓名: XX </p><p>  學(xué) 號(hào):

2、 </p><p>  班 級(jí): 10801 </p><p>  指導(dǎo)教師: </p><p><b>  年 月 日</b></p><p><b>  目 錄</b></p><p>  1.系

3、統(tǒng)需求分析3</p><p>  1.1 問(wèn)題分析3</p><p>  1.2 任務(wù)意義3</p><p>  2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說(shuō)明4</p><p>  3. 詳細(xì)設(shè)計(jì)和編碼5</p><p><b>  3.1.主菜單5</b></p><p>

4、;  3.2.錄入航空信息5</p><p>  3.3 輸出航空信息6</p><p><b>  3.4 訂票7</b></p><p><b>  3.5 退票7</b></p><p><b>  4. 實(shí)驗(yàn)結(jié)果9</b></p><p&g

5、t;  4.1菜單函數(shù)的功能測(cè)試9</p><p>  4.2錄入函數(shù)的功能測(cè)試9</p><p>  4.3查詢航班函數(shù)的功能測(cè)試11</p><p>  4.4訂票功能地測(cè)試12</p><p><b>  致謝17</b></p><p><b>  參考文獻(xiàn)18<

6、;/b></p><p>  附錄:源程序清單19</p><p><b>  1.系統(tǒng)需求分析</b></p><p><b>  1.1 問(wèn)題分析</b></p><p>  這次的課程設(shè)計(jì)是設(shè)計(jì)一個(gè)航空系統(tǒng)。由于存儲(chǔ)的數(shù)量較大且不固定,因此選擇用鏈表來(lái)保存基本信息:終點(diǎn)站名、航班號(hào)、飛

7、機(jī)號(hào)、飛行時(shí)間、乘員定額、余票量、已經(jīng)訂票的客戶名單(包括姓名、訂票量)、等候替補(bǔ)的客戶名單(包括姓名、所需票量)等等。由于在航線這個(gè)主鏈表上,每個(gè)航班上的已經(jīng)訂票名單這個(gè)鏈表和等候替補(bǔ)的名單這個(gè)鏈表隊(duì)列,所以建立一個(gè)十字交叉鏈表,在縱行上開(kāi)辟一個(gè)鏈表存儲(chǔ)所有航班的基本信息,再在各個(gè)航班節(jié)點(diǎn)橫向展開(kāi)一個(gè)鏈表和一個(gè)鏈表隊(duì)列,展開(kāi)的鏈表存儲(chǔ)已經(jīng)訂票的客戶名單,展開(kāi)的鏈表隊(duì)列存儲(chǔ)等候替補(bǔ)的客戶名單。同時(shí),由于預(yù)約人數(shù)無(wú)法預(yù)計(jì),隊(duì)列也應(yīng)以鏈表作

8、存儲(chǔ)結(jié)構(gòu)。系統(tǒng)主要實(shí)現(xiàn)的操作和功能是:添加航線、查詢航線、訂票功能、退票功能。要實(shí)現(xiàn)這些功能,首先要使程序能實(shí)現(xiàn)查找功能,在查找出到有效信息的前提之下,通過(guò)鏈表的賦值,更新信息和刪除退票人信息,滿足客戶的要求。</p><p><b>  1.2 任務(wù)意義</b></p><p>  飛機(jī)場(chǎng)每天要接受大量的訂票退票服務(wù),對(duì)于這些數(shù)量巨大的數(shù)據(jù),需要一個(gè)專門(mén)的軟件來(lái)進(jìn)行

9、管理和操作。軟件至少需要具備的基本功能包括:接受訂票,處理退票,查詢航班信息等等。面對(duì)這些實(shí)際問(wèn)題,航空客運(yùn)系統(tǒng)的制作無(wú)疑要全面的考察一個(gè)學(xué)生的知識(shí)及能力。在全面理解客戶的需求下面,來(lái)進(jìn)行設(shè)計(jì)出最能夠滿足客戶的程序出來(lái),并且能夠根據(jù)不同的要求來(lái)將其進(jìn)行改動(dòng),最能考察到對(duì)代碼活用的程度。</p><p>  2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說(shuō)明</p><p>  數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu),中間縱列,為

10、各個(gè)航班的基本信息,用一鏈表存儲(chǔ),其中一個(gè)節(jié)點(diǎn)為一個(gè)航班,其中包括終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、飛行時(shí)間、乘員定額、余票量、已經(jīng)訂票的客戶名單(包括姓名、訂票量)、等候替補(bǔ)的客戶名單(包括姓名、所需票量)等等。橫向是各個(gè)航班的情況,即從該指定的航班中用鏈表的形式橫向存儲(chǔ)這個(gè)航班的基本信息,縱向?yàn)橐呀?jīng)訂票了的客戶信息和藥等候替補(bǔ)的客戶的信息,其中包括客戶姓名和相應(yīng)的需票量。相應(yīng)的存儲(chǔ)結(jié)構(gòu)如下</p><p>  str

11、uct Passenger </p><p><b>  {</b></p><p>  char name[20];</p><p>  int bnum; //bnum記錄某人買的票數(shù)</p><p>  struct

12、 Passenger *next;</p><p><b>  };</b></p><p>  typedef struct Air //記錄飛機(jī)信息</p><p><b>  {</b></p><p>  int ticket;

13、 //飛機(jī)票數(shù)</p><p>  char des[20]; //des記錄飛機(jī)的終點(diǎn)</p><p>  char flight[8]; //flight記錄航班號(hào)</p><p>  int num;

14、 //記錄飛機(jī)號(hào)</p><p>  Passenger *wait;</p><p>  Passenger *book;</p><p>  Time time;</p><p>  struct Air *next;</p><p>  }AirPlane;</p>

15、<p>  3. 詳細(xì)設(shè)計(jì)和編碼</p><p><b>  3.1.主菜單</b></p><p>  進(jìn)入主菜單,必須先錄入航班信息,客戶可以根據(jù)自己需要選擇,選擇自己想要的航班,然后進(jìn)行一系列自己選擇的操作,具體菜單流程圖如下所示</p><p>  圖3-1主菜單功能模塊圖</p><p>  3.

16、2.錄入航空信息</p><p>  錄入航空信息包括終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、飛行時(shí)間、乘員定額,根據(jù)用戶的需要選擇航班,輸出航班信息,如果可以再進(jìn)行訂票操作,錄入航空信息的流程圖如下</p><p>  圖3-2錄入航空信息流程圖</p><p>  3.3 輸出航空信息</p><p>  客戶可以根據(jù)自己的需要選擇是按目的地查詢還是按

17、航班查詢,如果按航班查詢,必須要知道航班號(hào),如果按目的地查詢,只需輸入終點(diǎn)站,如果一個(gè)終點(diǎn)站有多個(gè)航班,客戶可以根據(jù)自己的需要選擇一個(gè)航班進(jìn)行操作,具體流程圖如下。</p><p>  圖3-3按航班輸出信息的流程圖</p><p>  圖3-4按目的輸出航空信息的流程圖</p><p><b>  3.4 訂票</b></p>

18、<p>  在客戶訂票前需要先查詢航班是否存在,所以在訂票的模塊中會(huì)要求客戶輸入航班信息,再調(diào)用航班查詢的函數(shù),查詢是否存在這個(gè)航班,如果存在這個(gè)航班,則客戶可以訂票,客戶在訂票的時(shí)候,如果所需票量超過(guò)剩余票數(shù),則會(huì)提示客戶是否需要排隊(duì)候票,如果不排隊(duì)候票,則選擇要么重新輸入所需票量,要么退出訂票。訂票流程圖如下</p><p><b>  圖3-5訂票流程圖</b></p&

19、gt;<p><b>  3.5 退票</b></p><p>  客戶在退票操作時(shí),也是要先輸入是否存在那個(gè)航班,如果存在,就查詢這個(gè)航班是否存在這個(gè)客戶,如果不存在,就退票失敗,如果存在,則可以退票,退票后,再查看是否滿足候票數(shù),如果滿足則把票補(bǔ)給候票人,如果不滿足,就繼續(xù)排隊(duì)候補(bǔ)。退票流程圖如下</p><p>  圖3-6 退票流程圖</

20、p><p><b>  4. 實(shí)驗(yàn)結(jié)果</b></p><p>  4.1菜單函數(shù)的功能測(cè)試</p><p>  系統(tǒng)運(yùn)行后就會(huì)自動(dòng)顯示菜單1.錄入航班,2.查詢航班,3.訂票,4,退票,當(dāng)用戶選擇相應(yīng)的代號(hào)就進(jìn)入相應(yīng)的功能模塊</p><p>  圖4-1菜單函數(shù)的截圖</p><p>  4.2

21、錄入函數(shù)的功能測(cè)試</p><p>  進(jìn)入當(dāng)這個(gè)錄入模塊,用戶需要先錄入航班的信息,包括航班號(hào),總的票數(shù),目的地,起飛時(shí)間,和飛機(jī)號(hào),當(dāng)錄入一個(gè)航班信息,會(huì)提示是否繼續(xù)錄入</p><p>  圖4-2錄入航空信息的截圖</p><p>  4.3查詢航班函數(shù)的功能測(cè)試</p><p>  用戶可以選擇是按目的地查詢信息或者是按航班查詢信息

22、,一個(gè)目的地可能有幾個(gè)不同的航班,但是一個(gè)航班只能到一個(gè)目的地</p><p>  圖4-3查詢航班的截圖</p><p>  4.4訂票功能地測(cè)試</p><p>  用戶在訂票時(shí)需要輸入航班,然后再查詢是否存在這個(gè)航班,如果存在,則可以訂票,否則不能訂票,在訂票的時(shí)候如果余票足夠,則可以成功訂票,否則提示用戶是否需要排隊(duì)候補(bǔ)</p><p&g

23、t;  如圖4-4,訂票成功可以將客戶信息輸出,圖4-5,是余票不足,提示用戶是否需要排隊(duì)候補(bǔ),圖4-6,客戶選擇候補(bǔ),則會(huì)將客戶信息輸出</p><p>  圖4-4訂票成功的截圖</p><p>  圖4-5余票不足的截圖</p><p>  圖4-6候補(bǔ)成功的截圖</p><p>  4.5退票函數(shù)的功能測(cè)試</p>&l

24、t;p>  用戶在退票的時(shí)候需要輸入航班,查找這個(gè)航班是否存在,如果存在,再查看退票信息是否正確,輸出客戶信息,退票后查詢這個(gè)航班的剩余票數(shù)是否變化,是否足夠候補(bǔ)人所需要的票數(shù) 圖4-7是查詢這個(gè)航班的客戶信息,圖4-8 是找到要退票的客戶且輸出客戶信息,圖4-9 退票后查詢這個(gè)航班,是否退票成功</p><p>  圖4-7查詢客戶的截圖</p><p>  圖4-8找到要退票的客

25、戶的信息</p><p>  圖4-9查詢是否退票成功的截圖</p><p><b>  5.體會(huì)</b></p><p>  這次課程設(shè)計(jì)我用鏈表設(shè)計(jì)的,我之前的想法是用一個(gè)結(jié)構(gòu)體存儲(chǔ)航班信息,再用一個(gè)結(jié)構(gòu)體存儲(chǔ)已經(jīng)訂票的客戶信息,再用一個(gè)結(jié)構(gòu)體存儲(chǔ)候補(bǔ)的客戶信息,然后在已經(jīng)訂票的客戶信息中定義一個(gè)指針存儲(chǔ)已經(jīng)訂票的客戶的航班,在候補(bǔ)的客戶中

26、定義一個(gè)指針存儲(chǔ)已經(jīng)排隊(duì)候補(bǔ)的客戶的航班,用這個(gè)指針和航班信息聯(lián)系起來(lái),再進(jìn)行操作,可是在退票中鏈表就出現(xiàn)問(wèn)題了,只要有人候補(bǔ),那么已經(jīng)訂票的客戶信息就輸不出來(lái),好不容易把候補(bǔ)搞好了,可是訂票模塊就出現(xiàn)問(wèn)題了,總的來(lái)說(shuō)是結(jié)構(gòu)的問(wèn)題,所以我就重新寫(xiě)了,用了十字鏈表的思想,不過(guò)在退票后,把退票給候補(bǔ)的客戶有問(wèn)題,就沒(méi)有寫(xiě)這個(gè)了。這次課程設(shè)計(jì)寫(xiě)完后,我發(fā)現(xiàn)我對(duì)于指針是越來(lái)越糊涂了,原來(lái)在寫(xiě)作業(yè)的時(shí)候還有點(diǎn)清楚指針的指向,現(xiàn)在時(shí)越來(lái)越不清楚了。

27、所以在存儲(chǔ)空間上總是出現(xiàn)問(wèn)題,叫同學(xué)幫我改了指針的指向,才會(huì)好的,所以這次放假一定要把指針弄清楚,然后進(jìn)一步完善這個(gè)程序。</p><p><b>  致謝</b></p><p>  感謝XX老師的耐心指導(dǎo),感謝XXX老師的悉心教導(dǎo),感謝XXX同學(xué)的幫助。感謝在課程設(shè)計(jì)中對(duì)我?guī)椭^(guò)得同學(xué),謝謝你們對(duì)我的幫助,讓我感受到到同學(xué)的友誼和老師對(duì)我的關(guān)愛(ài)</p>

28、<p><b>  參考文獻(xiàn)</b></p><p>  [1]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).北京:清華大學(xué)出版社,1997.</p><p>  [2]劉大有,唐海鷹,等.數(shù)據(jù)結(jié)構(gòu).北京:高等教育出版社,2001.</p><p>  [3]黃揚(yáng)銘.數(shù)據(jù)結(jié)構(gòu).北京:科學(xué)出版社,2001.</p><p

29、>  [4]黃劉生.數(shù)據(jù)結(jié)構(gòu).北京:科學(xué)經(jīng)濟(jì)出版社,2000.</p><p><b>  附錄:源程序清單</b></p><p>  #include<iostream.h></p><p>  #include<malloc.h></p><p>  #include<stdio

30、.h></p><p>  #include<stdlib.h></p><p>  #include<iomanip.h></p><p>  #include<string.h></p><p>  struct Time //定義飛機(jī)的起飛時(shí)間</p><p>

31、<b>  {</b></p><p>  char year[8],month[8],day[8],hour[8],minute[8],second[8];</p><p><b>  };</b></p><p>  void InputDate(Time &time) //輸入飛機(jī)的起飛時(shí)間</p&g

32、t;<p><b>  {</b></p><p>  cout<<"Please input the date(year month day hour minute):"<<endl;</p><p>  cin>>time.year>>time.month>>time.d

33、ay>>time.hour>>time.minute>>time.second;</p><p><b>  }</b></p><p>  void PrintDate(const Time time) //輸出飛機(jī)的起飛時(shí)間</p><p><b>  {</b></p&g

34、t;<p>  cout<<time.year<<'.'<<time.month<<'.'<<time.day<<'.'</p><p>  <<time.hour<<":"</p><p>  <<t

35、ime.minute<<":"</p><p>  <<time.second;</p><p><b>  }</b></p><p>  struct Passenger </p><p><b>  {</b>&

36、lt;/p><p>  char name[20];</p><p>  int bnum; //bnum記錄某人買的票數(shù)</p><p>  struct Passenger *next;</p><p><b>  };</b></p><

37、p>  void PassengerCpy(Passenger *&d,Passenger *s)</p><p><b>  {</b></p><p>  strcpy(d->name,s->name);</p><p><b>  }</b></p><p>  vo

38、id PrintPassenger(const Passenger *p)</p><p><b>  {</b></p><p>  cout<<"*************************************"<<endl;</p><p>  cout<<"姓名

39、 訂票量"<<endl;</p><p>  cout<<"*************************************"<<endl;</p><p>  cout<<p->name<<" "&

40、lt;<p->bnum<<endl;</p><p><b>  }</b></p><p>  typedef struct Air //記錄飛機(jī)信息</p><p><b>  {</b></p><p>  int

41、 ticket; //飛機(jī)票數(shù)</p><p>  char des[20]; //des記錄飛機(jī)的終點(diǎn)</p><p>  char flight[8]; //flight記錄航班號(hào)</p><p>  int num;

42、 //記錄飛機(jī)號(hào)</p><p>  Passenger *wait;</p><p>  Passenger *book;</p><p>  Time time;</p><p>  struct Air *next;</p><p>  }AirPlane

43、;</p><p>  void Waitticket(Passenger *&p) //輸入候補(bǔ)乘客的信息</p><p><b>  {</b></p><p>  Passenger *w=p;</p><p>  Passenger *s=new Passenger;<

44、;/p><p>  cout<<"please input the passenger:";</p><p>  cin>>s->name;</p><p>  cout<<"please input the ticket the passenger need wait:";</p&

45、gt;<p>  cin>>s->bnum;</p><p><b>  }</b></p><p>  void DisplayWait(Passenger *passenger) //輸出要候補(bǔ)的乘客的信息</p><p><b>  {</b></p><p

46、>  Passenger *q=passenger->next;</p><p><b>  if(!q)</b></p><p><b>  return;</b></p><p><b>  while(q)</b></p><p><b>  {&l

47、t;/b></p><p>  cout<<"Name BNum"<<endl;</p><p>  cout<<setiosflags(ios::left)<<setw(10)<<q->name<<setw(10)<<q->bnum<<endl;;&l

48、t;/p><p>  q=q->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  int InputPassenger(Passenger *&passenger,AirPlane *flight) //輸入訂票的乘客的信息

49、</p><p><b>  {</b></p><p>  Passenger *p=passenger;</p><p>  Passenger *q=new Passenger;</p><p>  Passenger *s=flight->wait;</p><p>  Passen

50、ger *w;</p><p>  int chioce;</p><p>  cout<<"Please input the passenger name:";</p><p>  cin>>q->name;</p><p>  cout<<"please input

51、the ticket the passenger need book:";</p><p>  cin>>q->bnum;</p><p>  if(q->bnum>flight->ticket)</p><p><b>  {</b></p><p>  cout<&

52、lt;"現(xiàn)在航班中還有:"<<flight->ticket<<"張票!"<<endl;</p><p>  if(flight->ticket)</p><p><b>  {</b></p><p>  cout<<"請(qǐng)選擇:1.將差

53、票轉(zhuǎn)為候補(bǔ)票 2.只定剩余票 3.取消訂票"<<endl;</p><p>  cin>>chioce;</p><p>  if(chioce==1)</p><p><b>  {</b></p><p>  w=new Passenger;</p><p>

54、;  q->next=p->next;</p><p>  p->next=q;</p><p>  PassengerCpy(w,q);</p><p>  w->next=s->next;</p><p>  s->next=w;</p><p>  w->bnum=q-&

55、gt;bnum-flight->ticket;</p><p>  q->bnum=flight->ticket;</p><p>  flight->ticket=0;</p><p><b>  }</b></p><p>  else if(chioce==2)</p><

56、;p><b>  {</b></p><p>  q->next=p->next;</p><p>  p->next=q;</p><p>  q->bnum=flight->ticket;</p><p>  flight->ticket=0;</p><

57、p><b>  }</b></p><p><b>  else</b></p><p>  return NULL;</p><p><b>  }</b></p><p><b>  else</b></p><p>&l

58、t;b>  {</b></p><p>  q->next=s->next;</p><p>  s->next=q;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  e

59、lse</b></p><p><b>  {</b></p><p>  q->next=p->next;</p><p>  p->next=q;</p><p>  flight->ticket-=q->bnum;</p><p><b>

60、  }</b></p><p><b>  }</b></p><p>  void DisplayClient(Passenger *p) //輸出已經(jīng)訂票的乘客信息</p><p><b>  {</b></p><p>  Passenger *q=p-

61、>next;</p><p><b>  if(!q)</b></p><p><b>  return;</b></p><p><b>  while(q)</b></p><p><b>  {</b></p><p>

62、  cout<<"Name BNum"<<endl;</p><p>  cout<<setiosflags(ios::left)<<setw(10)<<q->name<<setw(10)<<q->bnum<<endl;;</p><p>  q=q->

63、next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void CreatFlight(AirPlane *&flight) //創(chuàng)建一個(gè)空的結(jié)點(diǎn)</p><p><b>  {</b

64、></p><p>  AirPlane *s=new AirPlane;</p><p>  s->next=NULL;</p><p><b>  flight=s;</b></p><p>  Passenger *p=new Passenger;</p><p>  p->

65、;next=NULL;</p><p>  flight->book=p;</p><p>  Passenger *w=new Passenger;</p><p>  w->next=NULL;</p><p>  flight->wait=w;</p><p><b>  }</

66、b></p><p>  AirPlane* Displayflight(AirPlane *flight,char f[]) //按航線輸出航班</p><p><b>  {</b></p><p>  AirPlane *p=flight->next;</p><p&g

67、t;  int flag=0;</p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  if(strcmp(p->flight,f)==0)</p><p><b>  {</b></p><p

68、>  system("cls");</p><p>  cout<<"**********************************************************"<<endl;</p><p>  cout<<"Num Destination Flight

69、Ticket Time "<<endl;</p><p>  cout<<setiosflags(ios::left)<<setw(10)<<p->num<<setw(10)<<p->des</p><p>  <<setw(10)<<p->flight<

70、<setw(10)<<p->ticket;</p><p>  PrintDate(p->time);</p><p>  cout<<"\n**********************************************************"<<endl;</p><p> 

71、 cout<<"*****************************已定乘客*********************"<<endl;</p><p>  DisplayClient(p->book);</p><p>  cout<<"*****************************候補(bǔ)乘客****

72、*****************"<<endl;</p><p>  DisplayClient(p->wait);</p><p><b>  return p;</b></p><p><b>  }</b></p><p>  p=p->next;<

73、/p><p><b>  }</b></p><p>  return NULL;</p><p><b>  }</b></p><p>  void Displaydes(AirPlane *flight,char d[]) //按目的地輸出航班</p>&l

74、t;p><b>  {</b></p><p>  AirPlane *p=new AirPlane;</p><p><b>  p=flight;</b></p><p>  int flag=0;</p><p><b>  while(p)</b></p&g

75、t;<p><b>  {</b></p><p>  if(strcmp(p->des,d)==0)</p><p><b>  {</b></p><p><b>  flag=1;</b></p><p>  cout<<"Num

76、 Destination Flight Ticket Time "<<endl;</p><p>  cout<<setiosflags(ios::left)<<setw(10)<<p->num<<setw(10)<<p->des</p><p>  <<setw

77、(10)<<p->flight<<setw(10)<<p->ticket;</p><p>  PrintDate(p->time);</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  p=p->

78、next;</p><p><b>  }</b></p><p>  if(flag==0)</p><p>  cout<<"Sorry!not find the information!"<<endl;</p><p><b>  }</b><

79、/p><p>  void Creat(AirPlane *&flight) //錄入航班</p><p><b>  {</b></p><p>  AirPlane *p;</p><p>  AirPlane *s=flight;</p><p>  Passenger

80、 *b,*w;</p><p><b>  char ch;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  p=new AirPlane;</p><p>  b=new Passenger

81、;</p><p>  w=new Passenger;</p><p>  b->next=NULL;</p><p>  w->next=NULL;</p><p>  p->book=b;</p><p>  p->wait=w;</p><p>  system(

82、"cls");</p><p>  cout<<"please input the flight:";</p><p>  cin>>p->flight;</p><p>  cout<<"please input the all ticket of the flight:

83、";</p><p>  cin>>p->ticket;</p><p>  cout<<"please input the destination:";</p><p>  cin>>p->des;</p><p>  InputDate(p->time);

84、</p><p>  cout<<"please input the number of the airplane:";</p><p>  cin>>p->num;</p><p>  cout<<"if continue,please choose('y'/'Y

85、9;),if not,please input choose('N'/'n'):"<<endl;</p><p><b>  cin>>ch;</b></p><p>  system("pause");</p><p>  p->next=s->

86、next;</p><p>  s->next=p;</p><p>  }while(ch=='y'||ch=='Y');</p><p><b>  }</b></p><p>  void Display(AirPlane *flight) //輸出航

87、線</p><p><b>  {</b></p><p><b>  int n;</b></p><p>  cout<<"1.按終點(diǎn)查詢 2.按航班查詢"<<endl;</p><p>  cout<<"please inp

88、ut your choice :";</p><p><b>  cin>>n;</b></p><p><b>  if(n==1)</b></p><p><b>  {</b></p><p>  char d[20];</p><

89、;p>  cout<<"please input the destination you would look up:"<<endl;</p><p><b>  cin>>d;</b></p><p>  Displaydes(flight,d);</p><p><b>

90、;  }</b></p><p>  else if(n==2)</p><p><b>  {</b></p><p>  cout<<"please input the flight:";</p><p>  char f[20];</p><p>

91、<b>  cin>>f;</b></p><p>  Displayflight(flight,f);</p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"input is

92、error!"<<endl;</p><p>  system("pause>null");</p><p><b>  }</b></p><p>  void Book(AirPlane *&flight) //訂票</p><p><b> 

93、 {</b></p><p>  AirPlane *p=new AirPlane,*f=NULL;</p><p>  char line[20];</p><p>  cout<<"please input the flight:";</p><p>  cin>>line;<

94、/p><p>  system("cls");</p><p>  f=Displayflight(flight,line); //查找乘客要訂的航班是否存在</p><p><b>  if(f)</b></p><p><b>  {</b&g

95、t;</p><p>  InputPassenger(f->book,f);</p><p>  Displayflight(flight,line);</p><p><b>  }</b></p><p><b>  else</b></p><p>  cout

96、<<"Sorry! Not find the flight!"<<endl;</p><p><b>  }</b></p><p>  void ReturnTicket(AirPlane *&flight) //退票</p><p><b>  {

97、</b></p><p>  AirPlane *p=new AirPlane,*f=NULL;</p><p>  char line[20];</p><p>  char name[20];</p><p>  cout<<"please input the flight:";</p&g

98、t;<p>  cin>>line;</p><p>  f=Displayflight(flight,line);</p><p><b>  if(f)</b></p><p><b>  {</b></p><p>  Passenger *p=f->book-

99、>next;</p><p>  Passenger *q=f->book;</p><p>  int flag=0;</p><p>  cout<<"Please input the passenger name you need back:";</p><p>  cin>>na

100、me;</p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  if(!strcmp(p->name,name))</p><p><b>  {</b></p><p><b>

101、  flag=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p>  q=q->next;</p><p><b>  }</

102、b></p><p>  if(flag==1)</p><p><b>  {</b></p><p>  PrintPassenger(p);</p><p><b>  int vote;</b></p><p><b>  do</b>&l

103、t;/p><p><b>  {</b></p><p>  cout<<"Please input the vote you need back:";</p><p>  cin>>vote;</p><p>  if(vote>p->bnum)</p>

104、<p>  cout<<"最大退票量為:"<<p->bnum<<endl;</p><p><b>  }</b></p><p>  while(vote>p->bnum);</p><p>  if(vote==p->bnum)</p>

105、<p><b>  {</b></p><p>  q->next=q->next->next;</p><p>  f->ticket+=vote;</p><p><b>  delete p;</b></p><p><b>  }</b&g

106、t;</p><p><b>  else</b></p><p><b>  {</b></p><p>  p->bnum-=vote;</p><p>  f->ticket+=vote;</p><p><b>  }</b><

107、/p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"沒(méi)有找到名字為:"<<name<<"乘客的訂票信息!"<<endl;</p><p><b&

108、gt;  }</b></p><p><b>  }</b></p><p>  void menu()</p><p><b>  {</b></p><p>  //system("cls");</p><p>  cout<<

109、;"******************************"<<endl;</p><p>  cout<<" 1.錄入航班 "<<endl;</p><p>  cout<<" 2.查詢航班 "<<endl;</

110、p><p>  cout<<" 3.訂票 "<<endl;</p><p>  cout<<" 4.退票 "<<endl;</p><p>  cout<<" 5.退出 "&

111、lt;<endl;</p><p>  cout<<"*******************************"<<endl;</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b&

112、gt;</p><p>  AirPlane *flight;</p><p>  CreatFlight(flight);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  menu();&l

113、t;/b></p><p><b>  int num;</b></p><p>  cout<<"please input your choice:";</p><p><b>  cin>>num;</b></p><p>  fflush(st

114、din);</p><p>  switch(num)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  system("cls")

115、;</p><p>  Creat(flight);</p><p><b>  }break;</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  system("cls&q

116、uot;);</p><p>  Display(flight);</p><p><b>  }break;</b></p><p><b>  case 3:</b></p><p><b>  {</b></p><p>  system(&quo

117、t;cls");</p><p>  Book(flight);</p><p><b>  }break;</b></p><p><b>  case 4:</b></p><p><b>  {</b></p><p>  system(

118、"cls");</p><p>  ReturnTicket(flight);</p><p><b>  }break;</b></p><p>  case 5:exit(0);</p><p><b>  }</b></p><p><b>

119、;  }</b></p><p><b>  }</b></p><p><b>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)</b></p><p><b>  成績(jī)?cè)u(píng)定</b></p><p>  成績(jī)?cè)u(píng)定: (百分制)</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)論