2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(論文)</b></p><p>  2011年 01 月 20日</p><p> 題 目航空售票處的服務(wù)系統(tǒng)程序</p><p> 姓 名</p><p> 學(xué) 號</p><p> 指 導(dǎo) 老 師</p>

2、<p> 指導(dǎo)教師職稱講師</p><p> 年級專業(yè)班級09信息與計算科學(xué)(01)班</p><p> 所 在 學(xué) 院</p><p><b>  目錄</b></p><p><b>  目錄1</b></p><p><b>  摘要2<

3、/b></p><p><b>  前言3</b></p><p><b>  1課題背景4</b></p><p><b>  1.1背景4</b></p><p>  1.2需求分析4</p><p><b>  1.3

4、意義5</b></p><p>  1.4文獻綜述5</p><p>  2設(shè)計簡介及設(shè)計方案論述6</p><p>  2.1設(shè)計簡介6</p><p>  2.2設(shè)計方案論述6</p><p><b>  3詳細(xì)設(shè)計8</b></p><

5、p>  3.1航空類的定義8</p><p><b>  3.2機票信息8</b></p><p>  3.3航空票額管理函數(shù)9</p><p>  3.4菜單的設(shè)計10</p><p>  4設(shè)計結(jié)果及分析11</p><p>  4.1測試數(shù)據(jù)11</p>

6、;<p>  4.2測試結(jié)果11</p><p><b>  5總結(jié)12</b></p><p><b>  致謝14</b></p><p><b>  參考文獻15</b></p><p>  附錄 程序代碼16</p><

7、p><b>  摘要</b></p><p>  本課題主要是運用VC6.0,開發(fā)基于控制臺下的航空售票處的服務(wù)系統(tǒng)。本文較為詳細(xì)的介紹了這一程序的設(shè)計思想,功能結(jié)構(gòu)以及類的設(shè)計和某些功能函數(shù)的設(shè)計。本文還給出了對這一程序的測試情況以及對測試結(jié)果的分析,。</p><p>  關(guān)鍵詞:plane,查詢,面向?qū)ο?lt;/p><p><b

8、>  前言</b></p><p>  本文詳細(xì)介紹了航空貨物托運費用計算程序的設(shè)計與開發(fā)。全文共5章。</p><p>  第1章介紹了航空貨物托運費用計算程序的背景,以及它所要實現(xiàn)的基本功能。并根據(jù)這些用戶需求,進行了必要的需求分析,從而確定了該程序應(yīng)實現(xiàn)了一些基本功能。本章中,還簡要地介紹了該程序開發(fā)的意義以及在整個開發(fā)過程中,我們所查閱并借用的一些參考文獻的主要內(nèi)

9、容。</p><p>  第2章主要介紹了航空貨物托運費用計算程序中各功能模塊的總體框圖,主要類的設(shè)計以及各類之間的相互關(guān)系,這是全文的核心部分。</p><p>  第3章是航空貨物托運費用計算程序的詳細(xì)設(shè)計,由于文章篇幅的限制,我們僅給出了主要類的設(shè)計,關(guān)鍵成員函數(shù)設(shè)計,以及接口函數(shù)和菜單函數(shù)的設(shè)計,并給出了其程序代碼。</p><p>  第4章是對所開發(fā)的航

10、空貨物托運費用計算程序的運行測試。通過我們所設(shè)計的部分測試數(shù)據(jù),檢驗程序是否達到了預(yù)定的設(shè)計要求。</p><p>  第5章是對航空貨物托運費用計算程序開發(fā)過程的總結(jié)。總結(jié)了本次課程設(shè)計的意義,以及測試中所發(fā)現(xiàn)的一些問題,有待進一步改進的地方。重點還談到了我在本次課程設(shè)計中的收獲與感想。</p><p>  全文的最后是致謝、參考文獻和程序的全部源代碼。</p><p

11、><b>  XXX</b></p><p>  2011-01-20 于武漢工程大學(xué)理學(xué)院</p><p><b>  課題背景</b></p><p><b>  背景</b></p><p>  我們乘坐飛機旅行前,都需要在網(wǎng)上或者去機場買機票,自然就會涉及到機票的

12、訂票和退票以及查詢等等。應(yīng)對這些必須要一個程序能執(zhí)行多種功能,可以依據(jù)乘客的需要來做出相應(yīng)的解答。而且在乘客訂票和退票后還能自動管理票數(shù),還能根據(jù)乘客的需要完成預(yù)定機票和等待其他乘客退票等活動。實現(xiàn)機票的無人化管理。</p><p>  (1) 能夠方便地將貨物信息的錄入程序,并立即計算出托運</p><p>  根據(jù)上節(jié)所描述,用戶需要設(shè)計一個關(guān)于售票處服務(wù)系統(tǒng)程序,使航空公司可以通過的

13、乘客簡單地輸入個人部分信息,便可方便的管理機票。</p><p>  另外,該程序還要實現(xiàn)以下功能:費用;</p><p>  能夠?qū)娇蘸骄€進行查詢;</p><p>  能夠自主的承辦訂票業(yè)務(wù)</p><p>  能夠自主的承辦退票業(yè)務(wù)</p><p><b>  意義</b></p&g

14、t;<p>  一般信息管理系統(tǒng)的設(shè)計與開發(fā),是信息與計算科學(xué)專業(yè)學(xué)生必須掌握的一項技術(shù)。了解一般信息管理系統(tǒng)所需要的功能模塊,各功能模塊的設(shè)計與實現(xiàn)方法,以及各功能模塊之間的相互聯(lián)接方法,對于今后從事軟件設(shè)計與開發(fā),有重要的指導(dǎo)作用。</p><p>  采用C++面向?qū)ο蟪绦蛟O(shè)計的思想,設(shè)計與開發(fā)售票處的服務(wù)系統(tǒng)程序,也可以使我們更好地理解面向?qū)ο筌浖_發(fā)的方法,并初步了解如何運用C++,開發(fā)出

15、數(shù)據(jù)抽象程度高,體現(xiàn)信息隱蔽、可復(fù)用、易修改、易擴充且模塊化的程序。</p><p><b>  文獻綜述</b></p><p>  文獻[1]較詳細(xì)地介紹了c++程序的設(shè)計與開發(fā)以及C++的一些基本知識,它對于我們了解C++知識,運用C++進行面向?qū)ο蟪绦蛴蟹浅V苯拥膸椭?lt;/p><p>  文獻[2]介紹了C++程序設(shè)計的主要思想與方法

16、,在解決航空貨物托運費用計算程序時,我們參考該書中許多技巧以及接口程序的設(shè)計,類的繼承等。對我們完成這個航空售票處服務(wù)系統(tǒng)程序的設(shè)計起了很大的幫助。</p><p>  文獻一:《程序設(shè)計基礎(chǔ)第二版》</p><p>  文獻二:《c++面向?qū)ο蟪绦蛟O(shè)計》</p><p>  設(shè)計簡介及設(shè)計方案論述</p><p><b>  設(shè)計

17、簡介</b></p><p>  根據(jù)需求分析,由于程序較為簡單我們將只設(shè)計一個類:plane(即航班類)。其主要功能模塊有:輸入、輸出、票額計算、查詢、訂票、退票。</p><p>  其類結(jié)構(gòu)見圖2-1,其功能結(jié)構(gòu)見圖2-2。</p><p><b>  圖2-1 類的結(jié)構(gòu)</b></p><p>  圖

18、2-2 系統(tǒng)結(jié)構(gòu)示意圖</p><p><b>  設(shè)計方案論述</b></p><p>  Plane(航空類)包含以下屬性與方法:</p><p>  記錄乘客的航班號、飛機號、星期幾飛行、最近一天航班的日期和余票額等方法。</p><p>  各功能模塊的調(diào)用應(yīng)通過菜單進行選取。</p><p&

19、gt;  由于乘客和機票的主要信息是由plane類的對象所生成,而且機票的管理自動運行,plane類的構(gòu)造函數(shù)的設(shè)計以及機票數(shù)額計算的設(shè)計要尤其精細(xì),因為這兩個函數(shù)的調(diào)用十分的頻繁。</p><p><b>  詳細(xì)設(shè)計</b></p><p><b>  航空類的定義</b></p><p>  class Plane&

20、lt;/p><p><b>  {private:</b></p><p>  char name[40];//終點站名</p><p>  int number;//航班號</p><p>  int Number;//飛機號</p><p>  int week;//星期幾飛行</p>

21、<p>  int day;//日期</p><p>  int left;//余票額</p><p>  int n;//與數(shù)組flag一起確定客戶訂票狀態(tài)</p><p><b>  public:</b></p><p>  int flag[20];//訂票狀態(tài)數(shù)組,-1為預(yù)訂票,1為已定票,0為

22、初始化狀態(tài)</p><p>  Plane()//構(gòu)造函數(shù)</p><p><b>  {</b></p><p>  name[0]='\0';</p><p><b>  number=0;</b></p><p><b>  Number=0;

23、</b></p><p><b>  week=0;</b></p><p><b>  day=0;</b></p><p><b>  left=M;</b></p><p>  n=0;//數(shù)組從0開始計數(shù)</p><p>  fo

24、r(int i=0;i<20;i++)</p><p>  flag[i]=0;</p><p><b>  }</b></p><p>  void init()//初始化每種飛機票</p><p><b>  {</b></p><p>  cout<<

25、"請輸入終點站名:";</p><p>  cin>>name;</p><p>  cout<<"請輸入航班號:";</p><p>  cin>>number;</p><p>  cout<<"請輸入飛機號:";</p>

26、;<p>  cin>>Number;</p><p>  cout<<"請輸入星期幾飛行:";</p><p>  cin>>week;</p><p>  cout<<"請輸入航班的日期:";</p><p><b>  cin

27、>>day;</b></p><p><b>  }</b></p><p>  ~Plane(){};//析構(gòu)函數(shù)</p><p>  char *getname(){return name;}//獲得終點站名</p><p>  int getnumber(){return number;}/

28、/獲得航班號</p><p>  int getNumber(){return Number;}//獲得飛機號</p><p>  int getweek(){return week;}//獲得星期幾飛行</p><p>  int getday(){return day;}//獲得日期</p><p>  int getleft(){re

29、turn left;}//獲得余票額</p><p>  int getn(){return n;}//獲得旅客數(shù)目</p><p>  void inleft(int n){left=left+n;}//余票額增加函數(shù)</p><p>  void deleft(int n){left=left-n;}//余票額減少函數(shù)</p><p> 

30、 void inn(){n++;}//旅客數(shù)目增加函數(shù)</p><p><b>  };</b></p><p><b>  機票信息的輸入</b></p><p>  第一段:void init()//初始化每種飛機票</p><p><b>  {</b></p>

31、;<p>  cout<<"請輸入終點站名:";</p><p>  cin>>name;</p><p>  cout<<"請輸入航班號:";</p><p>  cin>>number;</p><p>  cout<<&qu

32、ot;請輸入飛機號:";</p><p>  cin>>Number;</p><p>  cout<<"請輸入星期幾飛行:";</p><p>  cin>>week;</p><p>  cout<<"請輸入航班的日期:";</p>

33、;<p><b>  cin>>day;</b></p><p>  第二段:void start()</p><p><b>  {</b></p><p>  for(int i=0;i<N;i++)</p><p><b>  {</b>&

34、lt;/p><p>  pl[i].init();</p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  機票計算管理函數(shù)</b></p>

35、;<p><b>  查詢函數(shù):</b></p><p>  用于查詢乘客所需票機票的信息</p><p>  其具體語句為: void query()</p><p><b>  {</b></p><p>  int i,num=0;</p><p>  c

36、har name[40];</p><p>  cout<<endl;</p><p>  cout<<"請輸入終點站名:";</p><p>  cin>>name;</p><p>  for(i=0;i<=N;i++)</p><p>  if(str

37、cmp(name,pl[i].getname())==0)</p><p><b>  {</b></p><p><b>  num++;</b></p><p>  cout<<"航班號:"<<pl[i].getnumber()<<endl;</p>

38、<p>  cout<<"飛機號:"<<pl[i].getNumber()<<endl;</p><p>  cout<<"星期:"<<pl[i].getweek()<<"飛行"<<endl;</p><p>  cout<<

39、;"航班日期:"<<pl[i].getday()<<endl;</p><p>  cout<<"余票額:"<<pl[i].getleft()<<endl;</p><p><b>  break;</b></p><p><b>  

40、}</b></p><p>  if(num==0)</p><p>  cout<<"沒有此航班"<<endl;</p><p><b>  }</b></p><p><b>  訂票函數(shù):</b></p><p>

41、  用于乘客預(yù)定機票并就乘客的操作管理機票</p><p>  具體語句為:void make()</p><p><b>  {</b></p><p>  int number,n,sitnumber,nu,ch,num=0;</p><p>  cout<<"請輸入航班號:";<

42、;/p><p>  cin>>number;</p><p>  cout<<"請輸入訂票數(shù)額:";</p><p><b>  cin>>n;</b></p><p>  for(int i=0;i<N;i++)</p><p>  if

43、(number==pl[i].getnumber())</p><p><b>  {</b></p><p><b>  num++;</b></p><p>  if(n<=pl[i].getleft())</p><p><b>  {</b></p>

44、<p>  cout<<"此航班有票"<<endl;</p><p>  pl[i].deleft(n);</p><p>  pl[i].inn();</p><p>  pl[i].flag[pl[i].getn()]=1;</p><p>  for(i=0;i<n;i++)

45、</p><p><b>  {</b></p><p>  cout<<"座位號";</p><p>  cin>>sitnumber;</p><p><b>  }</b></p><p><b>  }</b

46、></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"余票額少于訂票額,請重新輸入訂票數(shù)額,"<<"訂票數(shù)額應(yīng)該少于或等于"<<pl[i].getleft();</p

47、><p><b>  cin>>nu;</b></p><p>  if(nu<=pl[i].getleft())</p><p><b>  {</b></p><p>  cout<<"此航班有票"<<endl;</p>&

48、lt;p>  pl[i].deleft(nu);</p><p>  pl[i].inn();</p><p>  pl[i].flag[pl[i].getn()]=1;</p><p>  for(i=0;i<N;i++)</p><p><b>  {</b></p><p>  

49、cout<<"座位號";</p><p>  cin>>sitnumber;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><

50、p><b>  {</b></p><p>  cout<<"是否需要預(yù)約"<<endl;</p><p>  cout<<"是(1) 否(2)"<<endl;</p><p><b>  cin>>ch;</b>

51、</p><p>  switch(ch)</p><p><b>  {</b></p><p>  case 1:pl[i].inn();pl[i].flag[pl[i].getn()]=-1;break;</p><p>  case 2:break;</p><p>  default:c

52、out<<"你敲錯了!"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p&

53、gt;<p>  if(num==0)</p><p>  cout<<"沒有此航班"<<endl;</p><p><b>  }</b></p><p><b>  退票函數(shù):</b></p><p>  用于乘客退定機票并就乘客的操作管

54、理機票</p><p>  具體語句為:void back()</p><p><b>  {</b></p><p>  int number,day,n,nu,sitnumber,num=0;//航班號,日期,退票數(shù)目,訂票數(shù)目,座位號,標(biāo)志量</p><p>  cout<<"請輸入日期:&q

55、uot;;</p><p><b>  cin>>day;</b></p><p>  cout<<"請輸入航班:";</p><p>  cin>>number;</p><p>  for(int i=0;i<N;i++)</p><p

56、>  if((day==pl[i].getday())&&(number==pl[i].getnumber()))//日期與航班是否滿足</p><p><b>  {</b></p><p>  num++;//日期與航班滿足</p><p>  cout<<"輸入退票數(shù)目";</p

57、><p><b>  cin>>n;</b></p><p>  cout<<"退票成功"<<endl;</p><p>  pl[i].inleft(n);//該種飛機票增加,即已退票</p><p>  for(int j=0;j<=pl[i].getn();

58、j++)//順序查詢客戶訂票狀態(tài)</p><p><b>  {</b></p><p>  if(pl[i].flag[j]==-1)//客戶是否為預(yù)定狀態(tài)</p><p><b>  {</b></p><p>  cout<<"有預(yù)約訂票,請輸入訂票數(shù)額:";&

59、lt;/p><p><b>  cin>>nu;</b></p><p>  if(nu<=pl[i].getleft())//余票額是否滿足要求</p><p><b>  {</b></p><p>  cout<<"此航班有票"<<en

60、dl;</p><p>  pl[i].flag[j]=1;</p><p>  cout<<"訂票成功"<<endl;</p><p>  pl[i].deleft(nu);</p><p>  for(int k=0;k<nu;k++)</p><p><b&

61、gt;  {</b></p><p>  cout<<"座位號"<<" ";</p><p>  cin>>sitnumber;</p><p><b>  }</b></p><p>  cout<<&qu

62、ot;余票額為"<<pl[i].getleft()<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<&quo

63、t;沒有預(yù)約訂票!"<<"余票額為"<<pl[i].getleft()<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==0)</p><p>  cou

64、t<<"沒有此票"<<endl;</p><p><b>  }</b></p><p><b>  菜單的設(shè)計</b></p><p>  int showmenu()</p><p><b>  {</b></p>

65、<p><b>  int ch;</b></p><p>  cout<<endl;</p><p>  cout<<"請選擇你要執(zhí)行的功能"<<endl;</p><p>  cout<<"1:查詢航線"<<endl;</p&

66、gt;<p>  cout<<"2:承辦訂票業(yè)務(wù)"<<endl;</p><p>  cout<<"3:承辦退票業(yè)務(wù)"<<endl;</p><p>  cout<<"0:退出程序的運行"<<endl;</p><p>&

67、lt;b>  cin>>ch;</b></p><p>  return ch;</p><p><b>  }</b></p><p><b>  設(shè)計結(jié)果及分析</b></p><p><b>  測試數(shù)據(jù)</b></p><

68、;p><b>  測試結(jié)果</b></p><p>  圖4-1 程序運行后顯示的菜單</p><p><b>  總結(jié)</b></p><p>  大一第二學(xué)期,我學(xué)習(xí)了《C++程序設(shè)計基礎(chǔ)》,初步了解了如何利用C++語言編寫面向過程的程序。大二第一學(xué)期,我又學(xué)習(xí)了《C++面向?qū)ο蟪绦蛟O(shè)計》,更進一步熟悉了C++語

69、言,以及面向?qū)ο蟪绦蛟O(shè)計的思想與方法。在這兩門課程的學(xué)習(xí)過程中,我常常對C++靈活多變的編程風(fēng)格感到難以適應(yīng),對于創(chuàng)建一個可編程模型來解決實際問題感到無從下手,對如何運用所學(xué)過的算法與常見結(jié)構(gòu)去解決編程問題感到困惑,對類的設(shè)計,程序結(jié)構(gòu)的設(shè)計更感到茫然。這一年的C++編程學(xué)習(xí),可以說是在痛苦中渡過的,每當(dāng)我無法解決非常初等的程序設(shè)計問題時,每當(dāng)我連十幾行的程序代碼都寫不出來時,我覺得編程太難了。我多次在心里對學(xué)習(xí)與掌握好計算機編程產(chǎn)生過

70、畏難情緒,甚至產(chǎn)生過放棄這門課程學(xué)習(xí)的念頭。</p><p>  好在老師在這一年里一直在鼓勵著我們。他告訴我們,每一個程序員在成長過程中,都有過類似的經(jīng)歷與感受,使我克服了畏難與自卑心理;他還告訴我們,掌握編程需要累積薄發(fā),需要多動手實驗,在實驗中去感悟,終會有水滴石穿、云開日出、豁然開朗的那一刻;他還要求我們向《士兵突擊》這部電視劇中主人翁許三多學(xué)習(xí),“不拋棄,不放棄”,讓我們堅持到對編程“開竅”的那一天。老

71、師為了讓我們練好編程,為我們開設(shè)了許多練習(xí)編程的實驗課,讓我們不斷地磨礪自已的意志品質(zhì)與思維靈犀,借他山之石,攻已之玉。</p><p>  老師的這些話,我感到有一定的道理,心里卻仍存疑慮,將信將疑。但也不好拂卻了老師的好意與付出,于是,我只好硬著頭皮堅持著,堅持了一年。</p><p>  這次課程設(shè)計,是我與同學(xué)一起第一次合作完成較大的程序編寫,開始時,我們心里根本沒底,想都不敢想自

72、已能寫出一點東西來,并真正地解決這一實際問題。但隨著工作的逐漸深入,對問題的理解越來越透徹,想寫的東西越來越多,信心越來越足,程序越編越大,系統(tǒng)的功能越做越強。當(dāng)我們洋洋灑灑地撰寫完千余行代碼,將一個又一個功能模塊實現(xiàn)出來,并將它們調(diào)試通過之后,那種喜悅感、幸福感、成就感讓我感到興奮。我終于等到了所謂“開竅”的這一刻,原來它是這樣的一種感覺。此時此刻,回想一年來學(xué)習(xí)編程的經(jīng)歷,我明白了這樣一個道理:此時的喜悅感、幸福感、成就感,不正好是

73、過去的沮喪、痛苦、自卑所帶來的饋贈嗎!其實,這種道理對我們這個年齡段的青年人,誰人不知又誰人不曉呢,它所應(yīng)證的不就是那幾句老名言嗎?</p><p>  不經(jīng)歷風(fēng)雨,怎么能見彩虹</p><p>  寶劍鋒從磨礪出,梅花香自苦寒來</p><p>  讓我們值得進一步思考的是,為什么我們一碰到困難,就忘記了這些至理名言呢?為什么我們一遇到挫折,總希望別人來安慰與鼓勵

74、,甚至是扶你前行呢?</p><p>  做完這次課程設(shè)計,我感到自己成熟起來了,我也明白了,大一時,老師在《C++程序設(shè)計基礎(chǔ)》教學(xué)中,贈與我們的那一段話的良苦用心。</p><p>  古今之成大事業(yè)大學(xué)問者,必經(jīng)過三種之境界。 </p><p>  “昨夜西風(fēng)凋碧樹,獨上高樓,望盡天涯路?!贝说谝痪辰缫?; </p><p>  “衣帶漸

75、寬終不悔,為伊消得人憔悴?!贝说诙辰缫玻?</p><p>  “從里尋她千百度,驀然回首,那人卻在燈火欄珊處?!贝说谌辰缫病?</p><p>  航空貨物托運費計算程序已開發(fā)完成了,它實現(xiàn)了我們在需求分析中所提出的功能,但它仍有許多需要改進的地方。</p><p><b>  致謝</b></p><p>  一

76、份課程設(shè)計的總結(jié),一份對老師的感謝。</p><p>  雖然我們課程設(shè)計程序代碼在這學(xué)期開始的時候已經(jīng)有了,但是在明天即將給老師的時刻,程序代碼也發(fā)生了許多變化,功能也逐漸提高;一些變化,一些收獲。</p><p>  老師說過:“道雖遠(yuǎn),不行不至;事雖難,不為不成?!边@專業(yè)真的很累,老師們累,學(xué)生們也累,謝謝老師們和我們一起堅持著。明天結(jié)果如何是無法知道的,而今天我們都努力過。<

77、/p><p><b>  參考文獻</b></p><p>  吳文虎,清華大學(xué)出版社.</p><p>  張俊,張彥鐸.C++面向?qū)ο蟪绦蛟O(shè)計[M].北京:中國鐵路出版社,2008.</p><p><b>  附錄 程序代碼</b></p><p>  #include

78、<string.h></p><p>  #include <iostream.h></p><p>  #include"fstream.h"</p><p>  #define M 5//每種飛機票的總數(shù)目</p><p>  #define N 3//飛機票的總數(shù)目</p>&l

79、t;p>  class Plane</p><p><b>  {private:</b></p><p>  char name[40];//終點站名</p><p>  int number;//航班號</p><p>  int Number;//飛機號</p><p>  int w

80、eek;//星期幾飛行</p><p>  int day;//日期</p><p>  int left;//余票額</p><p>  int n;//與數(shù)組flag一起確定客戶訂票狀態(tài)</p><p><b>  public:</b></p><p>  int flag[20];//訂

81、票狀態(tài)數(shù)組,-1為預(yù)訂票,1為已定票,0為初始化狀態(tài)</p><p>  Plane()//構(gòu)造函數(shù)</p><p><b>  {</b></p><p>  name[0]='\0';</p><p><b>  number=0;</b></p><p>

82、;<b>  Number=0;</b></p><p><b>  week=0;</b></p><p><b>  day=0;</b></p><p><b>  left=M;</b></p><p>  n=0;//數(shù)組從0開始計數(shù)<

83、/p><p>  for(int i=0;i<20;i++)</p><p>  flag[i]=0;</p><p><b>  }</b></p><p>  void init()//初始化每種飛機票</p><p><b>  {</b></p>&l

84、t;p>  cout<<"請輸入終點站名:";</p><p>  cin>>name;</p><p>  cout<<"請輸入航班號:";</p><p>  cin>>number;</p><p>  cout<<"請輸

85、入飛機號:";</p><p>  cin>>Number;</p><p>  cout<<"請輸入星期幾飛行:";</p><p>  cin>>week;</p><p>  cout<<"請輸入航班的日期:";</p>&l

86、t;p><b>  cin>>day;</b></p><p><b>  }</b></p><p>  ~Plane(){};//析構(gòu)函數(shù)</p><p>  char *getname(){return name;}//獲得終點站名</p><p>  int getnumb

87、er(){return number;}//獲得航班號</p><p>  int getNumber(){return Number;}//獲得飛機號</p><p>  int getweek(){return week;}//獲得星期幾飛行</p><p>  int getday(){return day;}//獲得日期</p><p&

88、gt;  int getleft(){return left;}//獲得余票額</p><p>  int getn(){return n;}//獲得旅客數(shù)目</p><p>  void inleft(int n){left=left+n;}//余票額增加函數(shù)</p><p>  void deleft(int n){left=left-n;}//余票額減少函數(shù)&

89、lt;/p><p>  void inn(){n++;}//旅客數(shù)目增加函數(shù)</p><p><b>  };</b></p><p>  Plane pl[N];</p><p>  void init();</p><p>  int showmenu();//菜單函數(shù)</p>&l

90、t;p>  void start();//初始化函數(shù)</p><p>  void query();//查詢函數(shù)</p><p>  void make();//訂票函數(shù)</p><p>  void back();//退票函數(shù)</p><p>  void writetofile();</p><p>  in

91、t main()</p><p><b>  {</b></p><p>  cout<<"這是民航售票處的計算機系統(tǒng)程序"<<endl;</p><p><b>  while(1)</b></p><p><b>  {</b>&

92、lt;/p><p>  int choice;</p><p>  choice=showmenu();</p><p>  switch(choice)</p><p><b>  {</b></p><p>  case 1:start();break;</p><p> 

93、 case 2:query();break;</p><p>  case 3:make();break;</p><p>  case 4:back();break;</p><p>  case 5:writetofile();break;</p><p>  case 0:return 0;</p><p>  

94、default:cout<<"你敲錯了!\n";</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b>

95、</p><p>  int showmenu()</p><p><b>  {</b></p><p><b>  int ch;</b></p><p>  cout<<endl;</p><p>  cout<<"請選擇你要執(zhí)行的功能

96、"<<endl;</p><p>  cout<<"1:錄入數(shù)據(jù)"<<endl;</p><p>  cout<<"2:查詢航線"<<endl;</p><p>  cout<<"3:承辦訂票業(yè)務(wù)"<<endl;&

97、lt;/p><p>  cout<<"4:承辦退票業(yè)務(wù)"<<endl;</p><p>  cout<<"5:將數(shù)據(jù)寫入文件"<<endl;</p><p>  cout<<"0:退出程序的運行"<<endl;</p><

98、;p><b>  cin>>ch;</b></p><p>  return ch;</p><p><b>  }</b></p><p>  void start()</p><p><b>  {</b></p><p>  fo

99、r(int i=0;i<N;i++)</p><p><b>  {</b></p><p>  pl[i].init();</p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  }<

100、/b></p><p>  void query()</p><p><b>  {</b></p><p>  int i,num=0;</p><p>  char name[40];</p><p>  cout<<endl;</p><p>  c

101、out<<"請輸入終點站名:";</p><p>  cin>>name;</p><p>  for(i=0;i<=N;i++)</p><p>  if(strcmp(name,pl[i].getname())==0)</p><p><b>  {</b></

102、p><p><b>  num++;</b></p><p>  cout<<"航班號:"<<pl[i].getnumber()<<endl;</p><p>  cout<<"飛機號:"<<pl[i].getNumber()<<endl

103、;</p><p>  cout<<"星期:"<<pl[i].getweek()<<"飛行"<<endl;</p><p>  cout<<"航班日期:"<<pl[i].getday()<<endl;</p><p>  c

104、out<<"余票額:"<<pl[i].getleft()<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(num==0)</p><p>  cout<&l

105、t;"沒有此航班"<<endl;</p><p><b>  }</b></p><p>  void make()</p><p><b>  {</b></p><p>  int number,n,sitnumber,nu,ch,num=0;</p>

106、<p>  cout<<"請輸入航班號:";</p><p>  cin>>number;</p><p>  cout<<"請輸入訂票數(shù)額:";</p><p><b>  cin>>n;</b></p><p>  

107、for(int i=0;i<N;i++)</p><p>  if(number==pl[i].getnumber())</p><p><b>  {</b></p><p><b>  num++;</b></p><p>  if(n<=pl[i].getleft())</p

108、><p><b>  {</b></p><p>  cout<<"此航班有票"<<endl;</p><p>  pl[i].deleft(n);</p><p>  pl[i].inn();</p><p>  pl[i].flag[pl[i].getn

109、()]=1;</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  cout<<"座位號";</p><p>  cin>>sitnumber;</p><p><b>  }&

110、lt;/b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"余票額少于訂票額,請重新輸入訂票數(shù)額,"<<"

111、;訂票數(shù)額應(yīng)該少于或等于"<<pl[i].getleft();</p><p><b>  cin>>nu;</b></p><p>  if(nu<=pl[i].getleft())</p><p><b>  {</b></p><p>  cout<

112、;<"此航班有票"<<endl;</p><p>  pl[i].deleft(nu);</p><p>  pl[i].inn();</p><p>  pl[i].flag[pl[i].getn()]=1;</p><p>  for(i=0;i<N;i++)</p><p&

113、gt;<b>  {</b></p><p>  cout<<"座位號";</p><p>  cin>>sitnumber;</p><p><b>  }</b></p><p><b>  }</b></p>&l

114、t;p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"是否需要預(yù)約"<<endl;</p><p>  cout<<"是(1) 否(2)"<<endl;</p&g

115、t;<p><b>  cin>>ch;</b></p><p>  switch(ch)</p><p><b>  {</b></p><p>  case 1:pl[i].inn();pl[i].flag[pl[i].getn()]=-1;break;</p><p>

116、;  case 2:break;</p><p>  default:cout<<"你敲錯了!"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>&l

117、t;/p><p><b>  }</b></p><p>  if(num==0)</p><p>  cout<<"沒有此航班"<<endl;</p><p><b>  }</b></p><p>  void back()<

118、/p><p><b>  {</b></p><p>  int number,day,n,nu,sitnumber,num=0;//航班號,日期,退票數(shù)目,訂票數(shù)目,座位號,標(biāo)志量</p><p>  cout<<"請輸入日期:";</p><p><b>  cin>>

119、;day;</b></p><p>  cout<<"請輸入航班:";</p><p>  cin>>number;</p><p>  for(int i=0;i<N;i++)</p><p>  if((day==pl[i].getday())&&(number

120、==pl[i].getnumber()))//日期與航班是否滿足</p><p><b>  {</b></p><p>  num++;//日期與航班滿足</p><p>  cout<<"輸入退票數(shù)目";</p><p><b>  cin>>n;</b&g

121、t;</p><p>  cout<<"退票成功"<<endl;</p><p>  pl[i].inleft(n);//該種飛機票增加,即已退票</p><p>  for(int j=0;j<=pl[i].getn();j++)//順序查詢客戶訂票狀態(tài)</p><p><b> 

122、 {</b></p><p>  if(pl[i].flag[j]==-1)//客戶是否為預(yù)定狀態(tài)</p><p><b>  {</b></p><p>  cout<<"有預(yù)約訂票,請輸入訂票數(shù)額:";</p><p><b>  cin>>nu;&l

123、t;/b></p><p>  if(nu<=pl[i].getleft())//余票額是否滿足要求</p><p><b>  {</b></p><p>  cout<<"此航班有票"<<endl;</p><p>  pl[i].flag[j]=1;</

124、p><p>  cout<<"訂票成功"<<endl;</p><p>  pl[i].deleft(nu);</p><p>  for(int k=0;k<nu;k++)</p><p><b>  {</b></p><p>  c

125、out<<"座位號"<<" ";</p><p>  cin>>sitnumber;</p><p><b>  }</b></p><p>  cout<<"余票額為"<<pl[i].getleft()<<end

126、l;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"沒有預(yù)約訂票!"<<"余票額為"<<

127、pl[i].getleft()<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==0)</p><p>  cout<<"沒有此票"<<endl;</p>

128、;<p><b>  }</b></p><p>  void writetofile()</p><p><b>  {</b></p><p>  ofstream ofs("123.dat");</p><p><b>  int i;</b&

129、gt;</p><p>  for(i=0;i<N;i++)</p><p><b>  {</b></p><p>  ofs<<pl[i].getname()<<endl;</p><p>  ofs<<pl[i].getnumber()<<endl;</p

130、><p>  ofs<<pl[i].getNumber()<<endl;</p><p>  ofs<<pl[i].getweek()<<endl;</p><p>  ofs<<pl[i].getday()<<endl;</p><p><b>  }</b

溫馨提示

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

評論

0/150

提交評論