航空售票系統(tǒng)+c++課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩23頁(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>  課程設(shè)計(jì)(論文)</b></p><p>  2011年 01 月 20日</p><p> 題 目航空售票處的服務(wù)系統(tǒng)程序</p><p> 姓 名</p><p> 學(xué) 號(hào)</p><p> 指 導(dǎo) 老 師</p>

2、<p> 指導(dǎo)教師職稱講師</p><p> 年級(jí)專業(yè)班級(jí)09信息與計(jì)算科學(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文獻(xiàn)綜述5</p><p>  2設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述6</p><p>  2.1設(shè)計(jì)簡(jiǎn)介6</p><p>  2.2設(shè)計(jì)方案論述6</p><p><b>  3詳細(xì)設(shè)計(jì)8</b></p><

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

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

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

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

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

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

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

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

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

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

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

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

17、簡(jiǎn)介</b></p><p>  根據(jù)需求分析,由于程序較為簡(jiǎn)單我們將只設(shè)計(jì)一個(gè)類:plane(即航班類)。其主要功能模塊有:輸入、輸出、票額計(jì)算、查詢、訂票、退票。</p><p>  其類結(jié)構(gòu)見(jiàn)圖2-1,其功能結(jié)構(gòu)見(jiàn)圖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è)計(jì)方案論述</b></p><p>  Plane(航空類)包含以下屬性與方法:</p><p>  記錄乘客的航班號(hào)、飛機(jī)號(hào)、星期幾飛行、最近一天航班的日期和余票額等方法。</p><p>  各功能模塊的調(diào)用應(yīng)通過(guò)菜單進(jìn)行選取。</p><p&

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

20、lt;/p><p><b>  {private:</b></p><p>  char name[40];//終點(diǎn)站名</p><p>  int number;//航班號(hào)</p><p>  int Number;//飛機(jī)號(hào)</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開(kāi)始計(jì)數(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()//初始化每種飛機(jī)票</p><p><b>  {</b></p><p>  cout<<

25、"請(qǐng)輸入終點(diǎn)站名:";</p><p>  cin>>name;</p><p>  cout<<"請(qǐng)輸入航班號(hào):";</p><p>  cin>>number;</p><p>  cout<<"請(qǐng)輸入飛機(jī)號(hào):";</p>

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

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

28、/獲得航班號(hào)</p><p>  int getNumber(){return Number;}//獲得飛機(jī)號(hào)</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>  機(jī)票信息的輸入</b></p><p>  第一段:void init()//初始化每種飛機(jī)票</p><p><b>  {</b></p>

31、;<p>  cout<<"請(qǐng)輸入終點(diǎn)站名:";</p><p>  cin>>name;</p><p>  cout<<"請(qǐng)輸入航班號(hào):";</p><p>  cin>>number;</p><p>  cout<<&qu

32、ot;請(qǐng)輸入飛機(jī)號(hào):";</p><p>  cin>>Number;</p><p>  cout<<"請(qǐng)輸入星期幾飛行:";</p><p>  cin>>week;</p><p>  cout<<"請(qǐng)輸入航班的日期:";</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>  機(jī)票計(jì)算管理函數(shù)</b></p>

35、;<p><b>  查詢函數(shù):</b></p><p>  用于查詢乘客所需票機(jī)票的信息</p><p>  其具體語(yǔ)句為: 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<<"請(qǐng)輸入終點(diǎn)站名:";</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<<"航班號(hào):"<<pl[i].getnumber()<<endl;</p>

38、<p>  cout<<"飛機(jī)號(hào):"<<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<<"沒(méi)有此航班"<<endl;</p><p><b>  }</b></p><p><b>  訂票函數(shù):</b></p><p>

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

42、;/p><p>  cin>>number;</p><p>  cout<<"請(qǐng)輸入訂票數(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<<"座位號(hào)";</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<<"余票額少于訂票額,請(qǐng)重新輸入訂票數(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<<"座位號(hào)";</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<<"你敲錯(cuò)了!"<<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<<"沒(méi)有此航班"<<endl;</p><p><b>  }</b></p><p><b>  退票函數(shù):</b></p><p>  用于乘客退定機(jī)票并就乘客的操作管

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

55、uot;;</p><p><b>  cin>>day;</b></p><p>  cout<<"請(qǐng)輸入航班:";</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);//該種飛機(jī)票增加,即已退票</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ù)約訂票,請(qǐng)輸入訂票數(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<<"座位號(hào)"<<" ";</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;沒(méi)有預(yù)約訂票!"<<"余票額為"<<pl[i].getleft()<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==0)</p><p>  cou

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

65、<p><b>  int ch;</b></p><p>  cout<<endl;</p><p>  cout<<"請(qǐng)選擇你要執(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:退出程序的運(yùn)行"<<endl;</p><p>&

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

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

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

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

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

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

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

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

75、寬終不悔,為伊消得人憔悴?!贝说诙辰缫?; </p><p>  “從里尋她千百度,驀然回首,那人卻在燈火欄珊處?!贝说谌辰缫?。 </p><p>  航空貨物托運(yùn)費(fèi)計(jì)算程序已開(kāi)發(fā)完成了,它實(shí)現(xiàn)了我們?cè)谛枨蠓治鲋兴岢龅墓δ?,但它仍有許多需要改進(jìn)的地方。</p><p><b>  致謝</b></p><p>  一

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

77、/p><p><b>  參考文獻(xiàn)</b></p><p>  吳文虎,清華大學(xué)出版社.</p><p>  張俊,張彥鐸.C++面向?qū)ο蟪绦蛟O(shè)計(jì)[M].北京:中國(guó)鐵路出版社,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//每種飛機(jī)票的總數(shù)目</p><p>  #define N 3//飛機(jī)票的總數(shù)目</p>&l

79、t;p>  class Plane</p><p><b>  {private:</b></p><p>  char name[40];//終點(diǎn)站名</p><p>  int number;//航班號(hào)</p><p>  int Number;//飛機(jī)號(hào)</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開(kāi)始計(jì)數(shù)<

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

84、t;p>  cout<<"請(qǐng)輸入終點(diǎn)站名:";</p><p>  cin>>name;</p><p>  cout<<"請(qǐng)輸入航班號(hào):";</p><p>  cin>>number;</p><p>  cout<<"請(qǐng)輸

85、入飛機(jī)號(hào):";</p><p>  cin>>Number;</p><p>  cout<<"請(qǐng)輸入星期幾飛行:";</p><p>  cin>>week;</p><p>  cout<<"請(qǐng)輸入航班的日期:";</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;}//獲得終點(diǎn)站名</p><p>  int getnumb

87、er(){return number;}//獲得航班號(hào)</p><p>  int getNumber(){return Number;}//獲得飛機(jī)號(hào)</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<<"這是民航售票處的計(jì)算機(jī)系統(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<<"你敲錯(cuò)了!\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<<"請(qǐng)選擇你要執(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:退出程序的運(yùn)行"<<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<<"請(qǐng)輸入終點(diǎn)站名:";</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<<"航班號(hào):"<<pl[i].getnumber()<<endl;</p><p>  cout<<"飛機(jī)號(hào):"<<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;"沒(méi)有此航班"<<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<<"請(qǐng)輸入航班號(hào):";</p><p>  cin>>number;</p><p>  cout<<"請(qǐng)輸入訂票數(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<<"座位號(hào)";</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<<"余票額少于訂票額,請(qǐng)重新輸入訂票數(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<<"座位號(hào)";</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<<"你敲錯(cuò)了!"<<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<<"沒(méi)有此航班"<<endl;</p><p><b>  }</b></p><p>  void back()<

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

119、;day;</b></p><p>  cout<<"請(qǐng)輸入航班:";</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);//該種飛機(jī)票增加,即已退票</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ù)約訂票,請(qǐng)輸入訂票數(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<<"座位號(hào)"<<" ";</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<<"沒(méi)有預(yù)約訂票!"<<"余票額為"<<

127、pl[i].getleft()<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==0)</p><p>  cout<<"沒(méi)有此票"<<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. 本站所有資源如無(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)論