c語言課程設(shè)計(飛機訂票系統(tǒng)說明書)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  設(shè)計目的………………………………………………………1</p><p>  總體設(shè)計………………………………………………………1</p><p>  詳細設(shè)計………………………………………………………3</p><p>  調(diào)試與測試…………………………

2、…………………………4</p><p>  源程序代碼……………………………………………4</p><p>  程序運行截圖…………………………………………16</p><p>  仍存在的問題…………………………………………18</p><p>  心得體會………………………………………………………18</p><p&g

3、t;  設(shè)計進度表……………………………………………………19</p><p>  參考文獻………………………………………………………20</p><p><b>  正文</b></p><p><b>  設(shè)計目的:</b></p><p>  假定民航機場共有n個航班,每個航班有一航班號、確定

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

5、站查詢、按航線查詢</p><p>  4、承辦訂票和退票業(yè)務(wù)(可選項)</p><p><b>  5、修改航班信息</b></p><p><b>  6、刪除航班信息</b></p><p><b>  總體設(shè)計:</b></p><p>  編寫

6、一個飛機訂票系統(tǒng)的程序,使該系統(tǒng)能夠?qū)崿F(xiàn)對航班信息的錄入、瀏覽、查詢、修改、刪除以及訂票、退票的功能。根據(jù)題目要求,首先要制作一個主菜單顯示出各個操作的提示可供用戶選擇,進而一步步地深入操作。根據(jù)主菜單的內(nèi)容再進一步編制具體操作的函數(shù),各個功能均用專門編制的函數(shù)來完成。這就是看到題目后的最初的思路。</p><p>  因為飛機票管理系統(tǒng)含有各航班的各項信息,如航班號、航線、飛行時間、機票數(shù)目等必要信息,綜合考慮

7、決定用結(jié)構(gòu)體數(shù)組比較合適,根據(jù)題目要求定義如下結(jié)構(gòu)體類型:</p><p>  頭文件包含、全局變量定義和結(jié)構(gòu)體定義源代碼:</p><p>  #include<stdio.h>//標準輸入、輸出頭文件</p><p>  #include<string.h>//包含字符串函數(shù)處理頭文件</p><p>  #inc

8、lude<stdlib.h></p><p>  #define N 1000 //定義最多的航班數(shù)</p><p>  #define PRT "%-d%12s %12s %10s %12d %12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].selled /

9、/定義輸出格式</p><p>  #define LB " 航班號 起始站 終點站 時 間 機票總數(shù) 已售票數(shù) \n"//定義打印列表格式</p><p>  struct air</p><p><b>  {int num;</b></p&

10、gt;<p>  char start[20];</p><p>  char over[20];</p><p>  char time[10];</p><p>  int count;//機票總數(shù)</p><p>  int selled;//已預(yù)定機票總數(shù)</p><p><b>  }

11、s[N];</b></p><p>  int i,m=0;//定義全局變量,記錄下航班信息的數(shù)量</p><p>  char ii[10];//用來選擇是否繼續(xù)的變量</p><p><b>  大概思路就是這樣!</b></p><p>  詳細設(shè)計(定義的每個函數(shù)均作介紹):</p

12、><p>  初始化界面函數(shù)(face函數(shù))</p><p>  在程序開始執(zhí)行時調(diào)用該函數(shù),在屏幕上打印出初始界面!并選擇要執(zhí)行的操作!</p><p>  2)信息輸入函數(shù)(input函數(shù))</p><p>  該函數(shù)里面調(diào)用for循環(huán)控制,該函數(shù)中用到一個全局變量k,用來控制該函數(shù)被再次調(diào)用時可以在已存放信息結(jié)構(gòu)體后面繼續(xù)輸入數(shù)據(jù),每當一個

13、完整的航班信息輸入完畢后,會提示是否輸入下一個信息!按"0"j結(jié)束輸入!然后調(diào)用下面要介紹的信息保存函數(shù)(save函數(shù))!保存完畢后退回到主菜單!</p><p>  信息保存函數(shù)(save函數(shù))</p><p>  由于本程序設(shè)計時當輸入機票總數(shù)不是正數(shù)時就會結(jié)束保存航班信息,所以進入save函數(shù)時首先判斷機票總數(shù)是否大于0,大于0時候開始進入主體部分執(zhí)行!主要過程是

14、先打開文件,文件打開成功后調(diào)用文件格式輸出函數(shù)(fprinf函數(shù))將信息保存到文件中區(qū)!</p><p>  文件讀取函數(shù)(read函數(shù))</p><p>  該函數(shù)首先打開保存飛機票信息的文件,然后將保存的信息寫到飛機信息的結(jié)構(gòu)體數(shù)組里面去(調(diào)用格式輸入函數(shù)fscanf),并將航班信息輸出到屏幕上!輸入完畢后關(guān)閉文件!</p><p>  信息打印函數(shù)(print

15、函數(shù))</p><p>  該函數(shù)只是負責(zé)把調(diào)用read函數(shù),并打印出航班信息輸出事的一些輔助信息!</p><p>  6)航班信息查找函數(shù)</p><p>  本函數(shù)用do.....while 循環(huán)控制結(jié)構(gòu),進入函數(shù)后選擇查詢方式(可以按航班號、終點站、航線查詢),方式選擇后用switch語句飛機的航班號(或者起始站、終點站)!從switch語句出來后,首先調(diào)用

16、文件讀取函數(shù)(read函數(shù)),輸出所有航班信息到屏幕上,然后在if語句中判斷剛才所輸入飛機的航班號(或者起始站、終點站)與數(shù)組中那個航班信息符合,找到后打印出來!循環(huán)結(jié)束后,輸入“yes”(“no”),while判斷輸入的條件繼續(xù)(終止查找)!選擇終止查找后返回主菜單!</p><p>  7)航班信息刪除函數(shù)(Delete)</p><p>  航班刪除模塊與查找函數(shù)類似,也是用的do.

17、....while 循環(huán)控制結(jié)構(gòu),不同時要先輸入密碼才能進入函數(shù)!進入函數(shù)后要選擇刪除方式(按航班號、航線)刪除,輸入要刪除的航班號(航線)后,比如說選擇按航班號刪除,找到要刪除的航班數(shù)組下標i后,用for(int j=i;j<m;j++) { s[j]=s[j+1]; }方式實現(xiàn)刪除,</p><p>  刪除完畢后打印出刪除過的航班信息列表,然后選擇“no”結(jié)束該函數(shù),返回到主菜單!&l

18、t;/p><p>  訂票函數(shù)(Book函數(shù))</p><p>  首先調(diào)用查詢函數(shù)(search函數(shù)),找到要預(yù)訂機票的航班,然后輸入要頂?shù)臋C票數(shù)目,根據(jù)輸入的機票書修改已售機票書數(shù)值!然后保存信息!</p><p>  退票函數(shù)(Refund()函數(shù)</p><p>  與訂票函數(shù)類似,首先調(diào)用查詢函數(shù)(search函數(shù)),找到要預(yù)訂機票的航

19、班,然后輸入要退的機票數(shù)目,根據(jù)輸入的機票書修改已售機票書數(shù)值!然后保存信息!</p><p>  修改函數(shù)(Modify函數(shù))</p><p>  該函數(shù)與輸入函數(shù)類似,把數(shù)組里面的信息重新輸入一遍達到修改航班信息的功能!</p><p><b>  main函數(shù)</b></p><p>  輸入密碼后進入main函數(shù)

20、,然后main函數(shù)負責(zé)調(diào)用以上程序就行了!</p><p><b>  源程序代碼:</b></p><p>  #include<stdio.h></p><p>  #include<string.h></p><p>  #include<stdlib.h></p>

21、<p>  #define N 200</p><p>  struct air</p><p><b>  {int num;</b></p><p>  char start[20];</p><p>  char over[20];</p><p>  char time[10]

22、;</p><p>  int count;//機票總數(shù)</p><p>  int selled;//已預(yù)定機票總數(shù)</p><p><b>  }s[N];</b></p><p>  #define PRT "%-d%12s %12s %10s %12d %12d\n",s[i]

23、.num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].selled //定義輸出格式</p><p>  #define LB " 航班號 起始站 終點站 時 間 機票總數(shù) 已售票數(shù) \n"//定義打印列表格式</p><p>  void fa

24、ce();</p><p>  void input();</p><p>  void print();</p><p>  void search();</p><p>  void Delete();</p><p>  void Booking();</p><p>  void Mod

25、ify();</p><p>  void Refund();</p><p>  void save();</p><p>  void read();</p><p>  int i,m=0,k=0;</p><p>  void face()</p><p>  {system("

26、;color 0E");</p><p>  puts(" ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★"); </p><p>  puts(" ★* 飛機票管理系統(tǒng)歡迎您

27、 *★");</p><p>  puts(" ★********************************************************★");</p><p>  puts(" ★* 你可以選擇下面的操作: *★"

28、;);</p><p>  puts(" ★* 1.輸入航班信息 *★");</p><p>  puts(" ★* 2.瀏覽航班信息 *★");</p&

29、gt;<p>  puts(" ★* 3.查詢航班信息 *★");</p><p>  puts(" ★* 4.刪除航班信息 *★");</p><p

30、>  puts(" ★* 5.訂票信息 *★");</p><p>  puts(" ★* 6.修改信息 *★");</p><p>  

31、puts(" ★* 7.退票信息 *★");</p><p>  puts(" ★* 0.退出 *★");</p><p>  puts

32、(" ★********************************************************★");</p><p>  puts(" ★* 制作人:##### 學(xué)號:111111111111 *★");</p><p>  puts(&qu

33、ot; ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  //delay(1000);</p>

34、<p>  system("color a0");//設(shè)置背景和字體顏色</p><p>  //system("color 100");//yanse</p><p><b>  int j;</b></p><p>  char f[]="1111111111";

35、 //設(shè)置密碼</p><p><b>  int y;</b></p><p>  printf(" 飛 機 票 管 理 系 統(tǒng)\n\n");</p><p><b>  while(1){</b></p><p>  p

36、rintf(" 請 輸 入 密 碼 進 入 系 統(tǒng):\n ");</p><p>  scanf("%s",f); //讀取密碼</p><p>  if(strcmp(f,"1111111111")==0)</p><p><b&

37、gt;  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  system("cls");</p><p><b>  face();</b></p>&l

38、t;p>  printf("請在0-7中選擇以回車鍵結(jié)束: ");</p><p>  scanf("%d",&j);</p><p>  system("cls");</p><p><b>  switch(j)</b></p><p><

39、;b>  {</b></p><p>  case 1: input();//調(diào)用輸入模塊</p><p><b>  break;</b></p><p>  case 2:print();//調(diào)用打印模塊</p><p><b>  break;</b></p>

40、<p>  case 3:search();//調(diào)用查詢模塊</p><p><b>  break;</b></p><p>  case 4:Delete();//調(diào)用刪除模塊</p><p><b>  break;</b></p><p>  case 5:Booking();//

41、調(diào)用訂票模塊</p><p><b>  break;</b></p><p>  case 6:Modify();//調(diào)用修改模塊</p><p><b>  break;</b></p><p>  case 7:Refund();//調(diào)用退票模塊</p><p><

42、;b>  break;</b></p><p>  case 0:goto end;</p><p><b>  }</b></p><p>  printf("\n按任意鍵繼續(xù)......");</p><p><b>  }</b></p>&

43、lt;p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  int yy;</b></p><p>  printf("

44、 輸入密碼錯誤!請檢查您的密碼是否正確! \n\n");</p><p>  printf(" 是否繼續(xù)輸密碼?按任意鍵繼續(xù),0結(jié)束!\n",m);</p><p>  scanf("%d",&y);//在此需輸入任意一個整數(shù)值數(shù)值,程序才能繼續(xù)執(zhí)行</p><

45、p><b>  if(y==0)</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  end:printf("

46、 (=^ ^=) 歡 迎 再 次 回 來 (=^ ^=)\n");</p><p>  printf(" 任意鍵退出系統(tǒng)!\n");</p><p><b>  int hp2;</b></p><p>  scanf("%d&

47、quot;,&hp2);</p><p><b>  }</b></p><p>  void input()</p><p><b>  {</b></p><p>  system("color 8f");</p><p>  printf(&

48、quot;請依次輸入航班信息(機票總數(shù)為0結(jié)束輸入): "</p><p>  "完成輸入信息請鍵入w以回車鍵結(jié)束 \n"); //打印提示信息</p><p>  printf("-------------------------------------------------------------------------- \n&qu

49、ot;);</p><p><b>  int y;</b></p><p>  for(i=k;i<N;i++)</p><p><b>  {</b></p><p>  printf("請輸入航班號: "); </p><p>  scanf

50、("%d",&s[i].num); //讀取航班號</p><p>  printf("請輸入起始站: ");</p><p>  scanf("%s",s[i].start);//讀取起始站</p><p>  printf("請輸入終點站: ");</p>

51、<p>  scanf("%s",s[i].over);//讀取終點站</p><p>  printf("請輸入時間(星期): ");</p><p>  scanf("%s",s[i].time);//讀取時間</p><p>  printf("請輸入總機票數(shù)(0結(jié)束): &q

52、uot;);</p><p>  scanf("%d",&s[i].count);//讀取機票數(shù)</p><p>  printf("請輸入已售機票數(shù): ");</p><p>  scanf("%d",&s[i].selled);//讀取機票數(shù)</p><p>  

53、m++;//飛機信息錄入計數(shù)</p><p><b>  k++;</b></p><p>  printf(" 第%d個信息已經(jīng)輸完是否繼續(xù)?按任意鍵繼續(xù)(0結(jié)束)\n",m);</p><p>  scanf("%d",&y);//在此需輸入任意一個整數(shù)值數(shù)值,程

54、序才能繼續(xù)執(zhí)行</p><p><b>  if(y==0)</b></p><p><b>  {</b></p><p>  save();//保持輸入數(shù)據(jù)</p><p><b>  break;</b></p><p><b>  }&

55、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void save()//保存模塊程序</p><p><b>  { </b></p><p>  if(s[0].count&g

56、t;0)</p><p><b>  {</b></p><p>  system("color 78"); </p><p>  FILE *fp;//定義文件指針</p><p>  if((fp=fopen("D:\\飛機票系統(tǒng)數(shù)據(jù)保存.txt","w+"

57、))==NULL)//打開文件并判斷是否出錯 </p><p><b>  {</b></p><p>  printf("文件打開失敗! ");//打印出錯提示</p><p><b>  }</b></p><p><b>  else</b><

58、/p><p><b>  {</b></p><p>  fprintf( fp,LB);</p><p>  fprintf( fp,"============================================================\n ");</p><p>  for(i

59、=0;i<m&&s[i].count>0;i++)</p><p><b>  {</b></p><p>  fprintf(fp,PRT);</p><p><b>  }</b></p><p><b>  }</b></p>&

60、lt;p>  fclose(fp);//關(guān)閉文件</p><p><b>  int hp;</b></p><p>  printf(" 信息保存到文件成功!任意鍵返回主菜單!\n\n");</p><p>  scanf("%d",&hp);&l

61、t;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  int k;</b></p><p>  printf("飛機票總數(shù)為

62、零!輸入結(jié)束!\n");</p><p>  printf(" 任意鍵返回主菜單!\n\n");</p><p>  scanf("%d",&k);</p><p><b>  }</b></p><p>&

63、lt;b>  }</b></p><p>  void read()//從文件讀取信息模塊</p><p><b>  {</b></p><p>  system("color E0");</p><p>  FILE *fp;//定義文件指針</p><p&g

64、t;  if((fp=fopen("D://飛機票系統(tǒng)數(shù)據(jù)保存.txt","r"))==NULL)//打開文件,并判斷是否出錯</p><p>  printf("創(chuàng)建文件失敗! ");//打印出錯提示</p><p><b>  else</b></p><p>  for(i=0;

65、i<m;i++)</p><p><b>  {</b></p><p>  fscanf(fp,"%-d%12s%12s%10s%12d%12d\n ",&s[i].num,s[i].start,s[i].over,s[i].time,&s[i].count,&s[i].selled );</p>&l

66、t;p>  printf(PRT);</p><p><b>  }</b></p><p>  fclose(fp);//關(guān)閉文件</p><p><b>  }</b></p><p>  void print()//打印模塊</p><p><b>  

67、{</b></p><p>  system("color 97");</p><p>  char w[10]; </p><p>  printf("\n 所有航班信息如下\n");</p><p>  printf(LB);&

68、lt;/p><p>  read();//調(diào)用讀取文件函數(shù)</p><p>  printf("\n\n 按任意鍵回車鍵結(jié)束返回上層菜單: \n\n");</p><p>  scanf("%s",w);</p><p><b>  }</b>

69、;</p><p>  void search()//查詢模塊</p><p><b>  {</b></p><p>  system("color 5E");</p><p>  char name1[20];</p><p>  char name2[20];</p

70、><p>  char ii[10];</p><p>  int n,no,flag=0;</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("請選擇查找方式:\n ");//打印查詢方式菜單

71、</p><p>  printf("1.按航班號查找\n "</p><p>  "2.按終點站查找\n "</p><p>  "3.按航線查找 \n"</p><p>  " 0.返回 \n");</p><p>  printf(&

72、quot;請在0-3中選擇:\n "</p><p>  "\n\n 按其他鍵以回車鍵結(jié)束返回主菜單:\n ");</p><p>  scanf("%d",&n);//讀取查找方式</p><p><b>  if(n==0)</b></

73、p><p><b>  break;</b></p><p><b>  switch(n)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  printf(&quo

74、t;請輸入航班號: ");</p><p>  scanf("%d",&no);//航班號</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  printf("請輸入終點站名稱: &

75、quot;);</p><p>  scanf("%s",name2);//讀取終點站</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  printf("請輸入起始站名稱: ");<

76、/p><p>  scanf("%s",name1);//讀取起始站</p><p>  printf("請輸入終點站名稱: ");</p><p>  scanf("%s",name2);//終點站</p><p><b>  break;</b></p&g

77、t;<p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  printf("\n 已經(jīng)存在的航班如下\n\n"

78、);</p><p>  printf(LB);</p><p>  read();//調(diào)用讀取函數(shù)</p><p>  for(i=0;i<m;i++)</p><p><b>  { </b></p><p>  if(strcmp(s[i].over,name1)==0&

79、&strcmp(s[i].over,name2)==0)//按終點站起始站判斷輸出條件</p><p><b>  {</b></p><p>  //printf("\n 查找航班信息成功!\n\n");</p><p>  printf("\n

80、 下面是你要查找的航班信息\n\n ");</p><p><b>  flag=1;</b></p><p>  printf(LB);</p><p>  printf(PRT);//打印信息</p><p><b>  break;</b></p>

81、;<p><b>  }</b></p><p>  if(strcmp(s[i].over,name2)==0)</p><p><b>  {</b></p><p>  printf("\n 下面是你要查找的航班信息\n\n "

82、;);</p><p><b>  flag=1;</b></p><p>  printf(LB);</p><p>  printf(PRT);//打印信息</p><p><b>  break;</b></p><p><b>  }</b>&l

83、t;/p><p>  if(s[i].num==no)//按航班號判斷輸出條件</p><p><b>  { </b></p><p>  printf("\n 下面是你要查找的航班信息\n\n ");</p><p><b>  f

84、lag=1;</b></p><p>  printf(LB);</p><p>  printf(PRT);//打印信息</p><p><b>  break;</b></p><p><b>  } </b></p><p><b>  }<

85、/b></p><p>  no=0;//將航班號賦值為0</p><p><b>  if(flag)</b></p><p>  {printf("\n 您需要的信息查找完畢:\n "</p><p>  "

86、 是否繼續(xù)查找?請鍵入yes或no以回車鍵結(jié)束\n ");</p><p>  scanf("%s",ii);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b

87、></p><p>  printf("\n 沒有您需要的信息:\n "</p><p>  " 是否繼續(xù)查找?請鍵入yes或no以回車鍵結(jié)束\n ");</p><p>  scanf("%s",ii)

88、;</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(strcmp(ii,"yes")==0);//判斷結(jié)束</p><p>  while(strcmp(ii,"no")==0)</p>

89、;<p><b>  break;</b></p><p><b>  }</b></p><p>  void Delete()//刪除模塊</p><p><b>  {</b></p><p>  system("color 1E");&

90、lt;/p><p>  char name1[20];</p><p>  char name2[20];</p><p>  char ii[10];</p><p>  char f[]="2010146104";//設(shè)置密碼</p><p>  int no,n,flag=0; </p>

91、;<p>  printf("請輸入密碼并以回車鍵結(jié)束: \n");</p><p>  scanf("%s",f);//讀取密碼</p><p>  if(strcmp(f,"2010146104")==0) //判斷密碼是否正確</p><p><b>  {</b&

92、gt;</p><p><b>  do </b></p><p><b>  {</b></p><p>  printf("請選擇刪除以方式回車鍵結(jié)束:\n ");//打印刪除方式菜單</p><p>  printf("*1.按航班號刪除 \n"<

93、/p><p>  " *2.按航線刪除\n "</p><p>  "*0.返回\n ");</p><p>  printf("\n\n 請在0-2中選擇以回車鍵結(jié)束: \n");</p><p>  scanf("%d&quo

94、t;,&n);//讀取刪除方式</p><p><b>  if(n==0)</b></p><p>  break; //跳出循環(huán)</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p&

95、gt;<b>  case 1:</b></p><p>  printf("請輸入航班號: ");</p><p>  scanf("%d",&no);//讀取航班號</p><p>  printf("\n 已經(jīng)存在的航班如下

96、\n\n");</p><p>  read();//調(diào)用讀取函數(shù)</p><p>  break;//跳出循環(huán)</p><p><b>  case 2:</b></p><p>  printf("請輸入起始站 名稱: "); </p><p>  scanf(&

97、quot;%s",name1);//讀取起始站</p><p>  printf("請輸入終點站名稱: ");</p><p>  scanf("%s",name2);//讀取終點站</p><p>  printf("\n 已經(jīng)存在的航班如下\n\

98、n");</p><p>  read();//調(diào)用讀取函數(shù)</p><p>  break;//跳出循環(huán)</p><p><b>  }</b></p><p>  printf("\n 刪除后的航班如下\n\n");//</

99、p><p>  for(i=0;i<m;i++)</p><p><b>  {</b></p><p>  if(s[i].num==no)//按航班號刪除</p><p><b>  {</b></p><p>  printf(LB);</p><

100、p><b>  flag=1;</b></p><p>  for(int j=i;j<m;j++)</p><p><b>  {</b></p><p>  s[j]=s[j+1]; </p><p><b>  }</b></p><p&g

101、t;<b>  m--;</b></p><p>  for(int i=0;i<m;i++)</p><p><b>  {</b></p><p>  printf(PRT);</p><p><b>  }</b></p><p><b

102、>  }</b></p><p>  if(strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)</p><p><b>  {</b></p><p><b>  flag=1;</b></p><p>

103、  printf(LB);</p><p>  for(int k=i;k<m;k++)</p><p><b>  {</b></p><p>  s[k]=s[k+1]; </p><p><b>  }</b></p><p><b>  m--;&

104、lt;/b></p><p>  for(int i=0;i<m;i++)</p><p><b>  {</b></p><p>  printf(PRT);</p><p><b>  }</b></p><p><b>  }</b>&

105、lt;/p><p><b>  }</b></p><p><b>  if(flag)</b></p><p>  {printf("\n 您需要的信息查找完畢:\n "</p><p>  "

106、 是否繼續(xù)查找?請鍵入yes或no以回車鍵結(jié)束\n ");</p><p>  scanf("%s",ii);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b&g

107、t;</p><p>  printf("\n 沒有您需要的信息:\n "</p><p>  " 是否繼續(xù)查找?請鍵入yes或no以回車鍵結(jié)束\n ");</p><p>  scanf("%s",ii);&

108、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  while(strcmp(ii,"yes")==0); //判斷結(jié)束</p><p>  while(strcmp(ii,"no")==0)</p>

109、;<p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\n 對不起密碼錯誤!您不是管理員,不能使用此項功能!\n ");&l

110、t;/p><p><b>  int q;</b></p><p>  scanf("%d",&q);</p><p><b>  }</b></p><p>  void Booking()//訂票模塊</p><p><b>  {<

111、;/b></p><p>  system("color 0E");</p><p><b>  int n;</b></p><p>  char a[10];</p><p><b>  do</b></p><p><b>  {&l

112、t;/b></p><p>  search();//調(diào)用查詢模塊</p><p>  printf("請輸入您要訂的機票數(shù)以回車鍵結(jié)束:\n ");</p><p>  scanf("%d",&n);//讀取所訂機票數(shù)</p><p>  if(n<0||s[i].count<

113、;n)</p><p><b>  {</b></p><p>  printf("請輸入有效的機票數(shù)! ");//判斷機票數(shù)是否出錯</p><p><b>  }</b></p><p>  if(s[i].count!=0&&s[i].count>=n

114、)//判斷是否出錯</p><p><b>  {</b></p><p>  s[i].selled=s[i].selled+n;</p><p>  save();//調(diào)用保存函數(shù)</p><p>  printf("訂票成功!\n\n ");</p><p><b&

115、gt;  }</b></p><p>  printf(" 是否繼續(xù)? 請輸入yes或no以回車鍵結(jié)束: \n");//判斷是否繼續(xù)訂票</p><p>  scanf("%s",a);</p><p>  }while(!strcmp(a,"yes"));/

116、/判斷結(jié)束</p><p>  while(!strcmp(a,"no"))</p><p>  break;//判斷結(jié)束</p><p><b>  }</b></p><p>  void Refund()//退票模塊</p><p><b>  {</b&

117、gt;</p><p>  system("color F0");</p><p><b>  int n;</b></p><p>  char a[10];</p><p><b>  do</b></p><p><b>  {</b

118、></p><p>  search();//調(diào)用查詢模塊</p><p>  printf("請輸入您要退的機票數(shù)目: ");</p><p>  scanf("%d",&n);//輸入所退票數(shù)</p><p>  if(n<0) //判斷票數(shù)是否有效</p><

119、;p>  printf("請輸入有效的機票數(shù)! ");</p><p><b>  else{</b></p><p>  s[i].selled=s[i].selled-n;</p><p>  save(); //調(diào)用保存模塊</p><p>  printf("退票成功! &qu

120、ot;);</p><p><b>  }</b></p><p>  printf("是否繼續(xù)? 請鍵入yes或no以回車鍵結(jié)束: ");//判斷是否繼續(xù)退票</p><p>  scanf("%s",a);</p><p>  }while(!strcmp(a,"ye

121、s"));//判斷并跳出循環(huán)</p><p><b>  }</b></p><p>  void Modify() //修改模塊</p><p><b>  {</b></p><p>  system("color 4E");</p><p&

122、gt;  struct modify //定義結(jié)構(gòu)體 </p><p><b>  {</b></p><p><b>  int mo;</b></p><p>  char start1[20];</p><p>  char over1[20];</p><p> 

123、 char time1[20];</p><p>  int count1;</p><p>  int selled1;</p><p><b>  }M[1];</b></p><p>  char j[10];</p><p>  char f[]="2010146104&quo

124、t;;//設(shè)置密碼</p><p><b>  int n;</b></p><p>  printf("請輸入密碼并以回車鍵結(jié)束: ");</p><p>  scanf("%s",f);//讀取密碼</p><p>  if(strcmp(f,"2010146104&

125、quot;)==0)//判斷是否出錯</p><p><b>  {</b></p><p>  printf(LB);</p><p>  read();//調(diào)用讀取模塊</p><p><b>  do</b></p><p><b>  {</b>

126、</p><p>  printf( "請選擇修改方式:\n "</p><p>  "*1:按航班號修改: \n"</p><p>  " *2:按航線修改:\n ");</p><p>  printf("請在1---2中修改以回車鍵結(jié)束: \n");<

127、/p><p>  scanf("%d",&n);//讀取修改方式</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:printf("請輸入航班號: ");</p>

128、<p>  scanf("%d",&M[0].mo);//讀取航班號</p><p><b>  break;</b></p><p>  case 2:printf("請輸入起始站: ");</p><p>  scanf("%s",M[0].start1);//

129、讀取起始站</p><p>  printf("請輸入終點站: ");</p><p>  scanf("%s",M[0].over1);//讀取終點站</p><p><b>  break;</b></p><p><b>  }</b></p>

130、;<p>  for(int i=0;i<m;i++)</p><p><b>  { </b></p><p>  if(strcmp(s[i].start,M[0].start1)==0&&strcmp(s[i].over,M[0].over1)==0)//判斷輸出條件</p><p><b&

131、gt;  {</b></p><p>  printf(" 航班號 起始站 終點站 時 間 機票總數(shù) 已售票數(shù) \n");</p><p>  printf(PRT);</p><p><b>  break;</b></p>&

132、lt;p><b>  }</b></p><p>  if(s[i].num==M[0].mo)//判斷輸出條件</p><p><b>  { </b></p><p>  printf(" 航班號 起始站 終點站 時 間 機票總數(shù)

133、已售票數(shù) \n");</p><p>  printf(PRT);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  M[0].mo=0;

134、 //將結(jié)構(gòu)體中的號為零</p><p>  printf("\n 請輸入新航班號、起始站、終點站、時間(星期幾)、機票總數(shù)、已售票數(shù):\n ");</p><p>  printf(" 航班號 起始站 終點站 時 間 機票總數(shù) 已售票數(shù) \n");&

135、lt;/p><p>  scanf("%d\t%s\t%s\t%s\t%d%d",&M[0].mo,M[0].start1,M[0].over1,M[0].time1,&M[0].count1,&M[0].selled1); //定義輸入格式</p><p>  s[i].num=M[0].mo;//替換航班號</p><p&g

136、t;  strcpy(s[i].start,M[0].start1);//替換其始站</p><p>  strcpy(s[i].over,M[0].over1);//替換終點站</p><p>  strcpy(s[i].time,M[0].time1);//替換時間</p><p>  s[i].count=M[0].count1;//替換機票數(shù)</p&g

137、t;<p>  s[i].selled=M[0].selled1;//替換機票數(shù)</p><p>  save();//調(diào)用保存模塊</p><p>  printf("是否繼續(xù)?請鍵入yes或no以回車鍵結(jié)束:\n ");</p><p>  scanf("%s",j);</p><p>

138、;  }while(strcmp(j,"yes")==0||strcmp(j,"no")==0); //判斷結(jié)束</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\n

139、 對不起密碼錯誤!您不是管理員,不能使用此項功能!\n\n ");</p><p><b>  int q;</b></p><p>  scanf("%d",&q);</p><p><b>  }</b></p><p>  以上即為我的源程代碼。</

140、p><p><b>  執(zhí)行結(jié)果:</b></p><p>  程序最終運行情況如所貼圖表。</p><p>  第一次運行程序(輸入初始數(shù)據(jù))</p><p>  首次進入程序要求輸入密碼方能進入系統(tǒng)!密碼錯誤后可以選擇是否繼續(xù)輸入密碼!進入成功后!界面提示輸入原始數(shù)據(jù):選擇操作1→請輸入航班號→請輸入起始站→請輸入終點站

141、→請輸入飛行時間→請輸入機票數(shù)→請輸入已售機票數(shù)。我按照提示一次輸入了4個航班信息后按提示輸入“0”則不再繼續(xù)輸入,系統(tǒng)顯示出了主菜單界面。接著按0退出程序,顯示“歡迎再次回來!?!?lt;/p><p>  圖表 1—主菜單界面</p><p><b>  航班信息的瀏覽</b></p><p>  退到主菜單后在提示中輸入“2” →瀏覽航班信息。

142、輸出如下航班信息(如圖表2)!</p><p>  圖表 2—顯示航班信息</p><p><b>  查詢航班信息</b></p><p>  在主菜單界面輸入3→選擇查詢方式1→輸入“20101461” →顯示出所查找的信息(如圖表3)</p><p>  圖表 3—查詢航班信息</p><p&g

143、t;<b>  航班刪除</b></p><p>  在主菜單界面輸入4→按照提示輸入“2”(按航班號從大到小排序)→顯示出排序后的航班信息(如圖表4)</p><p><b>  圖表 4—航班排序</b></p><p><b>  訂票業(yè)務(wù)</b></p><p>  在

144、主菜單輸入5→提示輸入航班號→選擇查詢方式1→輸入航班號20101462→顯示出已有航班信息和查找的航班信息→輸入“no”結(jié)束查詢進入訂票選擇并提示輸入訂票數(shù):輸入3→“訂票成功” (如圖表5)</p><p>  圖表 5—訂票業(yè)務(wù)1</p><p><b>  仍存在的問題:</b></p><p>  系統(tǒng)中有的地方并不完善,有的地方存在

145、漏洞,程序中過多的使用宏定義的字符,是程序在有的地方不夠直觀!</p><p><b>  心得體會:</b></p><p>  通過這次課程設(shè)計,使我了解到自己對知識的掌握和綜合運用情況,養(yǎng)成嚴謹?shù)目茖W(xué)態(tài)度和良好的程序設(shè)計習(xí)慣,也使我認識到自己的知識缺陷。雖然在設(shè)計的時候遇到過很多問題,但都一一克服了。學(xué)到了要運用綜合知識來分析、解決實際問題。這也提高了自己對學(xué)習(xí)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論