c++課程設計——飛機訂票系統(tǒng)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  信息科學與技術學院</b></p><p>  程序設計基礎課程設計報告</p><p>  題目名稱: 飛機訂票系統(tǒng) </p><p>  學生姓名: </p><p>  學 號:

2、 </p><p>  專業(yè)班級: 計科2班 </p><p>  指導教師: </p><p><b>  2012年7月5號</b></p><p>  1 課程設計題目與要求3</p><p>  .1.1 設計

3、題目3</p><p><b>  1.2設計要求3</b></p><p><b>  .2總體設計3</b></p><p><b>  .3 詳細設計4</b></p><p><b>  調(diào)試與測算5</b></p><

4、;p><b>  .4 調(diào)試分析6</b></p><p>  ˙5 課程設計總結(jié)10</p><p><b>  6.附錄10</b></p><p>  7 指導教師意見27</p><p>  1 課程設計題目與要求</p><p>  假定民航機場共有n

5、個航班,每個航班有一航班號、確定的航線(起始站、終點站)、確定的飛行時間(星期幾)和一定的成員訂額。設計一飛機訂票系統(tǒng),使之能提供下列服務:</p><p>  1、航班信息錄入功能(航班信息用文件保存) </p><p>  包括航班號、起始站、重點站、機票數(shù)等;</p><p>  2、航班信息瀏覽功能</p><p><b>

6、  3、按航班號排序</b></p><p>  4、查詢航線:按航班號查詢</p><p>  5、承辦訂票和退票業(yè)務(可選項)</p><p><b>  2,總體設計:</b></p><p>  編寫一個飛機訂票系統(tǒng)的程序,使該系統(tǒng)能夠?qū)崿F(xiàn)對航班信息的錄入、瀏覽、排序、查詢以及訂票、退票的功能。根據(jù)題

7、目要求,首先要制作一個主菜單顯示出各個操作的提示可供用戶選擇,進而一步步地深入操作。根據(jù)主菜單的內(nèi)容再進一步編制具體操作的函數(shù),各個功能均用專門編制的函數(shù)來完成。這就是看到題目后的最初的思路。</p><p><b>  3,詳細設計</b></p><p><b> ?。?0)流程圖</b></p><p><b&

8、gt;  .4 調(diào)試分析</b></p><p><b>  ˙5 課程設計總結(jié)</b></p><p>  開始對c語言只是一種零散的認識,作為一個c語言的初學者對編程沒有明確的概念,只是對語句的格式與編程規(guī)定有了一個初步了解。也不知道編程的主要目的是什么,依據(jù)什么來編?為什么要編程?編出來又能干什么?通過對這一飛機訂票系統(tǒng)的學習,知道了c語言在實際應用

9、中的作用,明確了學c語言的意義。</p><p>  對c語言編程經(jīng)驗的掌握要從實踐中積累,在程序調(diào)試的過程中遇到的錯誤能夠正確的識別并改正,使我收益很大。</p><p>  熟悉了調(diào)試的方法和步驟,對c語言編程過程中可能遇到的各種錯誤有了深刻的認識與理解,并能夠迅速的根據(jù)提示解決程序的錯誤:</p><p>  對變量賦值時,要用“=”,而表示相等時用“==”。

10、</p><p>  程序語句后的注釋有時會很有用,會幫助我們更好的理解程序,在程序調(diào)試時根據(jù)注釋也可以幫我們快速準確的了解出錯處程序的意思,做出快速的更正。</p><p>  使用函數(shù)時要注意先聲明。</p><p>  使用fp=fopen(“\\……”)標明地址時要注意使用“\\”。</p><p>  通過實用函數(shù)流程圖,使我更深入

11、的理解了語句的使用,特別是對循環(huán)語句的理解與掌握:</p><p>  dowhile(表達式)</p><p>  {循環(huán)體{循環(huán)體</p><p>  }while(表達式);}注意兩個循環(huán)結(jié)構(gòu)的使用,特別是“;”的使用。</p><p>  使我體會到了流程圖在c語言學習中的重要

12、性。一個清晰的流程圖能使我們的程序簡潔、有條理并易于理解,大大提高編程效率。流程圖能夠幫我們形成一種整體的構(gòu)想,使具體的事物抽象化,條理化,再用程序語言表達出來。</p><p>  流程圖的掌握不僅對c語言學習有很大幫助,而且在各個學科里都可以利用其思想,生活中也不例外,比如說“統(tǒng)籌思想“,就相當于編程前先畫流程圖然后根據(jù)流程圖編寫程序,而轉(zhuǎn)化到實際生活中就是做事前要有一個合理的安排,然后按照安排有條理的做事。

13、</p><p><b>  6,附錄</b></p><p><b>  第一部分:源程序</b></p><p>  #include <stdio.h></p><p>  #include <string.h></p><p>  #inclu

14、de <stdlib.h></p><p>  #define N 1000</p><p>  typedef struct plane</p><p><b>  {</b></p><p>  char ID[10]; /*航班代號*/</p><p>  char BePla

15、ce[10];/*飛機起飛地點*/</p><p>  char EnPlace[10];/*飛機降落終點*/</p><p>  char data[15];/*飛機起飛時間*/</p><p>  int max;/*飛機最大乘客人數(shù)*/</p><p>  int price;/*飛機票價*/</p><p> 

16、 int num;/*飛機已售票數(shù)*/</p><p><b>  }PLANE;</b></p><p>  PLANE ti[N];</p><p>  int n;/*當前的航班數(shù)目*/</p><p>  void menu();</p><p>  void menu1();</p

17、><p>  void input(int i)</p><p><b>  {</b></p><p>  printf("請輸入航班代號:\n");</p><p>  scanf("%s",ti[i].ID);</p><p>  printf("

18、;請輸入起飛地點:\n");</p><p>  scanf("%s",ti[i].BePlace);</p><p>  printf("請輸入降落地點:\n");</p><p>  scanf("%s",ti[i].EnPlace);</p><p>  printf

19、("請輸入起飛時間:\n");</p><p>  scanf("%s",ti[i].data);</p><p>  printf("請輸入航班的最大載客人數(shù):\n");</p><p>  scanf("%d",&ti[i].max);</p><p>

20、;  printf("請輸入航班的票價:\n");</p><p>  scanf("%d",&ti[i].price);</p><p>  ti[i].num=0;</p><p><b>  }</b></p><p>  void enter()</p>

21、<p><b>  {</b></p><p><b>  int i;</b></p><p>  system( "cls" ); </p><p>  printf("請輸入航班的數(shù)目(0-%d)?:",N);</p><p>  scan

22、f("%d",&n); /*要輸入的記錄個數(shù)*/</p><p>  printf("\n請輸入數(shù)據(jù)\n\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  pr

23、intf("\n請輸入第 %d 航班記錄.\n",i+1);</p><p>  input(i); /*調(diào)用輸入函數(shù)*/</p><p><b>  }</b></p><p>  getchar(); </p><p><b>  menu

24、();</b></p><p><b>  }</b></p><p>  void printf_one(int i) /*顯示一個記錄的函數(shù)*/</p><p><b>  {</b></p><p>  printf(&qu

25、ot;%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);</p><p><b>  }</b></p><p>  void browse()</p>&

26、lt;p><b>  {</b></p><p><b>  int i;</b></p><p>  system( "cls" ); </p><p>  puts("\n--------------------------------------------------------

27、------------");</p><p>  printf("\n\t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  printf_

28、one(i);</p><p>  printf("\n");</p><p><b>  }</b></p><p>  getchar();</p><p>  getchar();</p><p><b>  menu();</b></p&g

29、t;<p><b>  }</b></p><p>  void order() /*排序模塊(按平均成績)*/</p><p><b>  {</b></p><p><b>  int i,j;</b></p><

30、;p>  struct plane s;</p><p>  system( "cls" ); </p><p>  for(i=0;i<n;i++) /*冒泡法排序*/</p><p><b>  {</b></p><p>  for(j=i+1;j<n

31、;j++)</p><p>  if(strcmp(ti[i].data,ti[j].data)>0)</p><p><b>  {</b></p><p><b>  s=ti[i];</b></p><p>  ti[i]=ti[j];</p><p><b

32、>  ti[j]=s;}</b></p><p><b>  }</b></p><p><b>  browse();</b></p><p><b>  }</b></p><p>  void search_time()</p><p

33、><b>  {</b></p><p>  int i,m=0;</p><p>  struct plane s;</p><p>  system( "cls" ); </p><p>  printf("\n\nEnter the time:");</p>

34、<p>  scanf("%s",s.data); /*輸入出發(fā)的時間*/</p><p>  puts("\n--------------------------------------------------------------------");</p><p>  printf("\n\

35、t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(strcmp(s.data,ti[i].data)==0)</p><p><b>  {&

36、lt;/b></p><p><b>  m++;</b></p><p>  if((m!=0)&&(m%10==0)) /*目的是分屏顯示*/</p><p><b>  {</b></p><p>  printf("\n\nPres

37、s any key to contiune . . .");</p><p>  getchar();</p><p>  puts("\n\n");</p><p><b>  }</b></p><p>  printf_one(i); </p><p>  

38、printf("\n");</p><p>  /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b>  }</b></p><p><b>  }</b></p><p>  puts("\n-------------------------------------

39、-------------------------------");</p><p>  getchar(); /*按任意健*/</p><p>  getchar(); </p><p><b>  menu1();</b></p><p><b&

40、gt;  }</b></p><p>  void serch_end()</p><p><b>  {</b></p><p>  int i,m=0;</p><p>  struct plane s;</p><p>  system( "cls" ); &

41、lt;/p><p>  printf("\n\nEnter the end Place:");</p><p>  scanf("%s",s.EnPlace); /*輸入要到達的地方*/</p><p>  puts("\n----------------------------------

42、----------------------------------");</p><p>  printf("\n\t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p&g

43、t;<p>  if(strcmp(ti[i].EnPlace,s.EnPlace)==0)</p><p><b>  {</b></p><p><b>  m++;</b></p><p>  if((m!=0)&&(m%10==0)) /*目的是分屏顯示*/

44、</p><p><b>  {</b></p><p>  printf("\n\nPress any key to contiune . . .");</p><p>  getchar();</p><p>  puts("\n\n");</p><p&

45、gt;<b>  }</b></p><p>  printf_one(i); </p><p>  printf("\n");</p><p>  /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b>  }</b></p><p><b>

46、;  }</b></p><p>  puts("\n--------------------------------------------------------------------");</p><p>  getchar(); /*按任意健*/</p><p>  getc

47、har(); </p><p><b>  menu1();</b></p><p><b>  }</b></p><p>  void menu1()</p><p><b>  {</b></p><p><b>  int n,w1;&

48、lt;/b></p><p><b>  do</b></p><p><b>  {</b></p><p>  system( "cls" ); /*清屏*/</p><p>  puts("\t\t\t\t 飛機售票操作

49、!\n\n");</p><p>  puts("\t\t*********************MENU*********************\n\n");</p><p>  puts("\t\t\t\t1.按照時間排序");</p><p>  puts("\t\t\t\t2.按照時間查找航班&

50、quot;);</p><p>  puts("\t\t\t\t3.按照地點查找航班");</p><p>  puts("\t\t\t\t4.返回主菜單");</p><p>  puts("\n\n\t\t**********************************************\n"

51、);</p><p>  printf("Choice your number(1-4): [ ]\b\b");</p><p>  scanf("%d",&n);</p><p>  if(n<1||n>4) /*對選擇的數(shù)字作判斷*/&l

52、t;/p><p><b>  {</b></p><p><b>  w1=1;</b></p><p>  printf("your choice is not between 1 and 4,Please input again:");</p><p>  getchar();&

53、lt;/p><p>  getchar();</p><p><b>  }</b></p><p>  else w1=0;</p><p>  } while(w1==1);</p><p><b>  /*選擇功能*/</b></p><p>&l

54、t;b>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:order();break; </p><p>  case 2:search_time();break; </p><p>  case 3:serch_end();brea

55、k; </p><p>  case 4:menu();break; </p><p><b>  }</b></p><p><b>  }</b></p><p>  int search() /*查找模塊*/</p>

56、<p><b>  {</b></p><p><b>  int i,k;</b></p><p>  struct plane s;</p><p><b>  k=-1;</b></p><p>  system( "cls" ); &l

57、t;/p><p>  printf("\n\n請輸入要訂票的起飛地點:");</p><p>  scanf("%s",s.BePlace); /*輸入要到達的地方*/</p><p>  printf("\n\n請輸入要訂票的降落地點:");</p><p&g

58、t;  scanf("%s",s.EnPlace); </p><p>  printf("\n\n請輸入要訂票的起飛時間:");</p><p>  scanf("%s",s.data); /*輸入出發(fā)的時間*/</p><p>  for(i=0;i<n;i++)

59、 /*查找要修改的數(shù)據(jù)*/</p><p><b>  {</b></p><p>  if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.data,ti[i].data)==0)</p

60、><p><b>  {</b></p><p>  k=i; /*找到要修改的記錄*/</p><p>  printf_one(k);</p><p>  break; /*調(diào)用顯示一個記錄的函數(shù)*/</p><p>&l

61、t;b>  }</b></p><p><b>  }</b></p><p><b>  if(k==-1)</b></p><p><b>  {</b></p><p>  printf("\n\nNO exist!");</p

62、><p>  return -1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  return k;</b></p><p><b>  }</b></p>

63、<p>  void book()</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  system( "cls" ); </p><p>  printf("歡迎進入售票窗口!\n");

64、</p><p>  i=search();</p><p><b>  if(i!=-1)</b></p><p><b>  {</b></p><p>  if(ti[i].num>=ti[i].max)</p><p><b>  {</b>

65、;</p><p>  printf("\n該趟航班票已售完!");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  ti[i].num

66、++;</p><p>  printf("\n訂票成功!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf(&q

67、uot;該航班不存在!\n");</p><p>  getchar(); </p><p>  getchar(); /*按任意健*/</p><p><b>  menu();</b></p><p><b>  }</b></p&

68、gt;<p>  void back()</p><p><b>  {</b></p><p>  int i,k=-1;</p><p>  struct plane s;</p><p>  system( "cls" ); </p><p>  print

69、f("歡迎進入退票窗口!\n");</p><p>  printf("\n\n輸入航班代號:");</p><p>  scanf("%s",s.ID); /*輸入要到達的地方*/</p><p>  for(i=0;i<n;i++)

70、/*查找要修改的數(shù)據(jù)*/</p><p><b>  {</b></p><p>  if(strcmp(s.ID,ti[i].ID)==0)</p><p><b>  {</b></p><p>  k=i; /*找到要修改的記錄*/</p>

71、<p>  printf_one(k);</p><p>  break; /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k==-1)<

72、/b></p><p><b>  {</b></p><p>  printf("\n\nNO exist!");</p><p><b>  }</b></p><p><b>  else</b></p><p><

73、b>  {</b></p><p>  ti[i].num--;</p><p>  printf("\n退票成功!\n");</p><p><b>  }</b></p><p>  getchar(); /*按任意健*/<

74、/p><p>  getchar(); /*按任意健*/</p><p><b>  menu();</b></p><p><b>  }</b></p><p>  void save()</p><p><b> 

75、 {</b></p><p><b>  int w=1;</b></p><p><b>  FILE *fp;</b></p><p><b>  int i;</b></p><p>  system( "cls" ); </p>

76、;<p>  if((fp=fopen("D:\\我的文檔\\桌面\\ticket.txt","wt"))==NULL) /*以輸出打開方式,在此前的記錄被覆蓋*/</p><p><b>  {</b></p><p>  printf("\nCannot open file\n");&

77、lt;/p><p><b>  return ;</b></p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p>  if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1)</p>

78、<p><b>  { </b></p><p>  printf("file write error\n");</p><p><b>  w=0;</b></p><p><b>  }</b></p><p><b> 

79、 if(w==1)</b></p><p><b>  {</b></p><p>  printf("file save ok!\n");</p><p><b>  }</b></p><p>  fclose(fp);</p><p> 

80、 getchar();</p><p>  getchar(); </p><p><b>  menu();</b></p><p><b>  }</b></p><p>  void load()</p><p><b>  {</b><

81、;/p><p><b>  FILE *fp;</b></p><p><b>  int i,w;</b></p><p><b>  w=1;</b></p><p>  system( "cls" ); </p><p>  if(

82、(fp=fopen("D:\\我的文檔\\桌面\\ticket.txt","rt"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCan not open file\n");</p><p><b>  w=0;</b

83、></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  n=0;</b></p><p>  for(i=0;!feof(fp);i++)</p><p><b>  {

84、</b></p><p>  fread(&ti[i],sizeof(struct plane),1,fp);</p><p><b>  n++;</b></p><p><b>  }</b></p><p><b>  n=n-1;</b></p

85、><p>  fclose(fp);</p><p><b>  if(w==1)</b></p><p>  printf("Load file ok!");</p><p>  getchar();</p><p>  getchar(); </p><

86、;p><b>  menu();</b></p><p><b>  }</b></p><p>  void menu()</p><p><b>  {</b></p><p><b>  int n,w1;</b></p><

87、;p><b>  do</b></p><p><b>  {</b></p><p>  system( "cls" ); /*清屏*/ /*清屏*/</p><p>  puts("\t\t\t\t 飛機售票管理系統(tǒng)!\n\n");<

88、;/p><p>  puts("\t\t*********************MENU*********************\n\n");</p><p>  puts("\t\t\t\t1.輸入新航班");</p><p>  puts("\t\t\t\t2.瀏覽 ");</p><

89、;p>  puts("\t\t\t\t3.航班操作");</p><p>  puts("\t\t\t\t4.訂票");</p><p>  puts("\t\t\t\t5.退票");</p><p>  puts("\t\t\t\t6.保存");</p><p

90、>  puts("\t\t\t\t7.載入");</p><p>  puts("\t\t\t\t8.退出");</p><p>  puts("\n\n\t\t**********************************************\n");</p><p>  printf(&

91、quot;Choice your number(1-8): [ ]\b\b");</p><p>  scanf("%d",&n);</p><p>  if(n<1||n>8) /*對選擇的數(shù)字作判斷*/</p><p><b>  {&l

92、t;/b></p><p><b>  w1=1;</b></p><p>  printf("your choice is not between 1 and 8,Please input enter to choice again:");</p><p>  getchar(); </p><p

93、>  getchar();</p><p><b>  }</b></p><p>  else w1=0;</p><p>  } while(w1==1);</p><p><b>  /*選擇功能*/</b></p><p><b>  switch(

94、n)</b></p><p><b>  {</b></p><p>  case 1:enter();break; /*輸入模塊*/</p><p>  case 2:browse();break; /*瀏覽模塊*/</p><p>  case 3:menu1();break; /

95、*查找模塊*/</p><p>  case 4:book();break; /*訂票模塊*/</p><p>  case 5:back();break; /*退票模塊*/</p><p>  case 6:save();break; /*保存模塊*/</p><p>  case 7:load();break;

96、 /*加載模塊*/</p><p>  case 8:exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p&g

溫馨提示

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

評論

0/150

提交評論