c語(yǔ)言課程設(shè)計(jì)(飛機(jī)訂票系統(tǒng)說(shuō)明書(shū))_第1頁(yè)
已閱讀1頁(yè),還剩20頁(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>  目 錄</b></p><p>  設(shè)計(jì)目的………………………………………………………1</p><p>  總體設(shè)計(jì)………………………………………………………1</p><p>  詳細(xì)設(shè)計(jì)………………………………………………………3</p><p>  調(diào)試與測(cè)試…………………………

2、…………………………4</p><p>  源程序代碼……………………………………………4</p><p>  程序運(yùn)行截圖…………………………………………16</p><p>  仍存在的問(wèn)題…………………………………………18</p><p>  心得體會(huì)………………………………………………………18</p><p&g

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

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

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

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

7、決定用結(jié)構(gòu)體數(shù)組比較合適,根據(jù)題目要求定義如下結(jié)構(gòu)體類(lèi)型:</p><p>  頭文件包含、全局變量定義和結(jié)構(gòu)體定義源代碼:</p><p>  #include<stdio.h>//標(biāo)準(zhǔn)輸入、輸出頭文件</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 " 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(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;//機(jī)票總數(shù)</p><p>  int selled;//已預(yù)定機(jī)票總數(shù)</p><p><b>  }

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

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

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

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

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

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

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

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

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

20、,然后main函數(shù)負(fù)責(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;//機(jī)票總數(shù)</p><p>  int selled;//已預(yù)定機(jī)票總數(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 " 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(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(" ★* 飛機(jī)票管理系統(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é)號(hào):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(" 飛 機(jī) 票 管 理 系 統(tǒng)\n\n");</p><p><b>  while(1){</b></p><p>  p

36、rintf(" 請(qǐng) 輸 入 密 碼 進(jìn) 入 系 統(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("請(qǐng)?jiān)?-7中選擇以回車(chē)鍵結(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、 輸入密碼錯(cuò)誤!請(qǐng)檢查您的密碼是否正確! \n\n");</p><p>  printf(" 是否繼續(xù)輸密碼?按任意鍵繼續(xù),0結(jié)束!\n",m);</p><p>  scanf("%d",&y);//在此需輸入任意一個(gè)整數(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、 (=^ ^=) 歡 迎 再 次 回 來(lái) (=^ ^=)\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;請(qǐng)依次輸入航班信息(機(jī)票總數(shù)為0結(jié)束輸入): "</p><p>  "完成輸入信息請(qǐng)鍵入w以回車(chē)鍵結(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("請(qǐng)輸入航班號(hào): "); </p><p>  scanf

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

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

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

53、m++;//飛機(jī)信息錄入計(jì)數(shù)</p><p><b>  k++;</b></p><p>  printf(" 第%d個(gè)信息已經(jīng)輸完是否繼續(xù)?按任意鍵繼續(xù)(0結(jié)束)\n",m);</p><p>  scanf("%d",&y);//在此需輸入任意一個(gè)整數(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:\\飛機(jī)票系統(tǒng)數(shù)據(jù)保存.txt","w+"

57、))==NULL)//打開(kāi)文件并判斷是否出錯(cuò) </p><p><b>  {</b></p><p>  printf("文件打開(kāi)失敗! ");//打印出錯(cuò)提示</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("飛機(jī)票總數(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://飛機(jī)票系統(tǒng)數(shù)據(jù)保存.txt","r"))==NULL)//打開(kāi)文件,并判斷是否出錯(cuò)</p><p>  printf("創(chuàng)建文件失敗! ");//打印出錯(cuò)提示</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 按任意鍵回車(chē)鍵結(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("請(qǐng)選擇查找方式:\n ");//打印查詢方式菜單

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

72、quot;請(qǐng)?jiān)?-3中選擇:\n "</p><p>  "\n\n 按其他鍵以回車(chē)鍵結(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;請(qǐng)輸入航班號(hào): ");</p><p>  scanf("%d",&no);//航班號(hào)</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  printf("請(qǐng)輸入終點(diǎn)站名稱: &

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

76、/p><p>  scanf("%s",name1);//讀取起始站</p><p>  printf("請(qǐng)輸入終點(diǎn)站名稱: ");</p><p>  scanf("%s",name2);//終點(diǎn)站</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)//按終點(diǎn)站起始站判斷輸出條件</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)//按航班號(hào)判斷輸出條件</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;//將航班號(hào)賦值為0</p><p><b>  if(flag)</b></p><p>  {printf("\n 您需要的信息查找完畢:\n "</p><p>  "

86、 是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(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 沒(méi)有您需要的信息:\n "</p><p>  " 是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(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("請(qǐng)輸入密碼并以回車(chē)鍵結(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("請(qǐng)選擇刪除以方式回車(chē)鍵結(jié)束:\n ");//打印刪除方式菜單</p><p>  printf("*1.按航班號(hào)刪除 \n"<

93、/p><p>  " *2.按航線刪除\n "</p><p>  "*0.返回\n ");</p><p>  printf("\n\n 請(qǐng)?jiān)?-2中選擇以回車(chē)鍵結(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("請(qǐng)輸入航班號(hào): ");</p><p>  scanf("%d",&no);//讀取航班號(hào)</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("請(qǐng)輸入起始站 名稱: "); </p><p>  scanf(&

97、quot;%s",name1);//讀取起始站</p><p>  printf("請(qǐng)輸入終點(diǎn)站名稱: ");</p><p>  scanf("%s",name2);//讀取終點(diǎn)站</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)//按航班號(hào)刪除</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ù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(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 沒(méi)有您需要的信息:\n "</p><p>  " 是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(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 對(duì)不起密碼錯(cuò)誤!您不是管理員,不能使用此項(xiàng)功能!\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("請(qǐng)輸入您要訂的機(jī)票數(shù)以回車(chē)鍵結(jié)束:\n ");</p><p>  scanf("%d",&n);//讀取所訂機(jī)票數(shù)</p><p>  if(n<0||s[i].count<

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

114、)//判斷是否出錯(cuò)</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ù)? 請(qǐng)輸入yes或no以回車(chē)鍵結(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("請(qǐng)輸入您要退的機(jī)票數(shù)目: ");</p><p>  scanf("%d",&n);//輸入所退票數(shù)</p><p>  if(n<0) //判斷票數(shù)是否有效</p><

119、;p>  printf("請(qǐng)輸入有效的機(jī)票數(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ù)? 請(qǐng)鍵入yes或no以回車(chē)鍵結(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("請(qǐng)輸入密碼并以回車(chē)鍵結(jié)束: ");</p><p>  scanf("%s",f);//讀取密碼</p><p>  if(strcmp(f,"2010146104&

125、quot;)==0)//判斷是否出錯(cuò)</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( "請(qǐng)選擇修改方式:\n "</p><p>  "*1:按航班號(hào)修改: \n"</p><p>  " *2:按航線修改:\n ");</p><p>  printf("請(qǐng)?jiān)?---2中修改以回車(chē)鍵結(jié)束: \n");<

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

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

129、讀取起始站</p><p>  printf("請(qǐng)輸入終點(diǎn)站: ");</p><p>  scanf("%s",M[0].over1);//讀取終點(diǎn)站</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(" 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(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(" 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(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)體中的號(hào)為零</p><p>  printf("\n 請(qǐng)輸入新航班號(hào)、起始站、終點(diǎn)站、時(shí)間(星期幾)、機(jī)票總數(shù)、已售票數(shù):\n ");</p><p>  printf(" 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(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;//替換航班號(hào)</p><p&g

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

137、t;<p>  s[i].selled=M[0].selled1;//替換機(jī)票數(shù)</p><p>  save();//調(diào)用保存模塊</p><p>  printf("是否繼續(xù)?請(qǐng)鍵入yes或no以回車(chē)鍵結(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、 對(duì)不起密碼錯(cuò)誤!您不是管理員,不能使用此項(xiàng)功能!\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>  程序最終運(yùn)行情況如所貼圖表。</p><p>  第一次運(yùn)行程序(輸入初始數(shù)據(jù))</p><p>  首次進(jìn)入程序要求輸入密碼方能進(jìn)入系統(tǒng)!密碼錯(cuò)誤后可以選擇是否繼續(xù)輸入密碼!進(jìn)入成功后!界面提示輸入原始數(shù)據(jù):選擇操作1→請(qǐng)輸入航班號(hào)→請(qǐng)輸入起始站→請(qǐng)輸入終點(diǎn)站

141、→請(qǐng)輸入飛行時(shí)間→請(qǐng)輸入機(jī)票數(shù)→請(qǐng)輸入已售機(jī)票數(shù)。我按照提示一次輸入了4個(gè)航班信息后按提示輸入“0”則不再繼續(xù)輸入,系統(tǒng)顯示出了主菜單界面。接著按0退出程序,顯示“歡迎再次回來(lái)!?!?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”(按航班號(hào)從大到小排序)→顯示出排序后的航班信息(如圖表4)</p><p><b>  圖表 4—航班排序</b></p><p><b>  訂票業(yè)務(wù)</b></p><p>  在

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

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

溫馨提示

  • 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)論