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

下載本文檔

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

文檔簡介

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

2、…………………………5</p><p>  核心源程序清單和執(zhí)行結(jié)果…………………………………5</p><p>  源程序代碼……………………………………………5</p><p>  截圖……………………………………………………13</p><p>  仍存在的問題…………………………………………15</p><p>

3、;  心得體會………………………………………………………15</p><p>  設(shè)計進(jìn)度表……………………………………………………16</p><p>  參考文獻(xiàn)………………………………………………………17</p><p><b>  正文</b></p><p><b>  設(shè)計目的:</b>

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

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

6、對航班信息的錄入、瀏覽、排序、查詢以及訂票、退票的功能。根據(jù)題目要求,首先要制作一個主菜單顯示出各個操作的提示可供用戶選擇,進(jìn)而一步步地深入操作。根據(jù)主菜單的內(nèi)容再進(jìn)一步編制具體操作的函數(shù),各個功能均用專門編制的函數(shù)來完成。這就是看到題目后的最初的思路。</p><p>  在這附上總體模塊設(shè)計圖:</p><p>  因為飛機(jī)訂票系統(tǒng)含有各航班的各項信息,如航班號、航線、飛行時間、機(jī)票數(shù)

7、目等必要信息,所以就決定用剛學(xué)不久的結(jié)構(gòu)體數(shù)組來存放航班的各項信息,根據(jù)題目要求定義如下結(jié)構(gòu)體類型:</p><p>  頭文件包含、全局變量定義和結(jié)構(gòu)體定義源代碼:</p><p>  #include<stdio.h>//標(biāo)準(zhǔn)輸入、輸出頭文件</p><p>  #include<string.h>//包含字符串函數(shù)處理頭文件&l

8、t;/p><p>  #include<process.h>//包含access函數(shù)的頭文件</p><p>  #define N 1000 //定義最多的航班數(shù)</p><p>  #define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].

9、over,s[i].time,s[i].count //宏定義輸出格式</p><p>  struct air //定義結(jié)構(gòu)體數(shù)組</p><p><b>  {</b></p><p>  int num;//定義航班號</p><p>  char start[20];//航班起始

10、站</p><p>  char over[20];//航班終點站</p><p>  char time[10];//飛行時間</p><p>  int count;//機(jī)票數(shù)量</p><p><b>  }s[N];</b></p><p>  int i,m=0;/

11、/定義全局變量,記錄下航班信息的數(shù)量</p><p>  char ii[10];//用來選擇是否繼續(xù)的變量</p><p>  以上就是我的總體設(shè)計思路。</p><p><b>  詳細(xì)設(shè)計:</b></p><p>  在本次的課程設(shè)計中我負(fù)責(zé)編制的是初始化、建立數(shù)據(jù)文件、數(shù)據(jù)文件讀取、數(shù)據(jù)文件保存、增加航班

12、信息、訂票、退票業(yè)務(wù)函數(shù)的編寫。以下是我的負(fù)責(zé)部分的詳細(xì)設(shè)計內(nèi)容:</p><p><b>  定義系統(tǒng)初始化函數(shù)</b></p><p>  模塊功能:設(shè)立一個初始化函數(shù)來得到航班信息。具體設(shè)計是第一次運行程序時自動生成保存航班信息的文件,并輸入初始航班信息,待第二次開始就可以直接讀取該文件獲得已有的航班信息并可直接使用。運用了access函數(shù)判斷文件是否存在。該函

13、數(shù)源代碼為:</p><p>  void chushihua()//初始化函數(shù)</p><p><b>  {</b></p><p>  if(access("hangban.dat",0))</p><p><b>  build();</b></p>

14、<p><b>  else</b></p><p><b>  read();</b></p><p><b>  }</b></p><p>  定義建立新數(shù)據(jù)文件的函數(shù)</p><p>  系統(tǒng)初始化后,沒有尋找到數(shù)據(jù)文件,則進(jìn)行新建數(shù)據(jù)文件,此函數(shù)的作用就是

15、進(jìn)行新建文件數(shù)據(jù)的錄入。運用到了文件指針的定義FILE *fp,文件的打開fopen和關(guān)閉fclose、成塊讀寫函數(shù)中的fwrite;運用for循環(huán)進(jìn)行各組數(shù)據(jù)的輸入,用m++記錄下輸入的航班數(shù)量,并運用if語句判斷是否輸入下一條航班信息,若不繼續(xù)則返回主界面。該函數(shù)的源代碼為:</p><p>  定義讀取文件內(nèi)航班信息的函數(shù)</p><p>  系統(tǒng)初始化之后,若原始數(shù)據(jù)文件存在,則進(jìn)

16、行文件內(nèi)航班信息的讀取,以供接下來程序中的各個函數(shù)來使用。在該函數(shù)中同樣運用到了文件指針FILE *fp、文件的打開fopen和關(guān)閉fclose、成塊讀寫函數(shù)中的fread、文件結(jié)束檢測函數(shù)feof同時配合while語句控制文件的讀??;m++記錄下讀取到的航班數(shù)量等。</p><p><b>  定義保存函數(shù)</b></p><p>  因為在飛機(jī)訂票系統(tǒng)中涉及到飛機(jī)

17、的訂票和退票業(yè)務(wù),還有按航班號的排序功能,所以我就定義了這個保存函數(shù)來保存下每次運行系統(tǒng)后對整個訂票系統(tǒng)涉及到的資料的修改。為了簡便程序,我就準(zhǔn)備將此函數(shù)放在整個系統(tǒng)得推出選項中,這樣就只在每次退出系統(tǒng)的時候進(jìn)行一次保存,將此次對文件修改的所有新信息都一次保存下來。這樣就實現(xiàn)了整個系統(tǒng)運行時進(jìn)行一次讀取,推出時一次保存的設(shè)計,大大簡便了文件的調(diào)用和讀取。保存函數(shù)運用到的知識點與讀取函數(shù)大致相同。此函數(shù)的源代碼為:</p>

18、<p>  有關(guān)文件讀取、寫入和保存的函數(shù)定義完了就開始設(shè)計與題目要求直接相關(guān)的函數(shù)了。</p><p><b>  定義訂票業(yè)務(wù)函數(shù)</b></p><p>  在這個函數(shù)中首先調(diào)用了search函數(shù)查找需要訂票的航班。運用if語句實現(xiàn)訂票時的多種情況:訂票數(shù)輸入不正確、飛機(jī)票數(shù)不足等情況。訂票成功時運用s[i].count=s[i].count-n;將已

19、被訂的機(jī)票數(shù)減去,以顯示新的即時航班信息</p><p><b>  定義退票業(yè)務(wù)函數(shù):</b></p><p>  與訂票函數(shù)相類似,只做稍稍修改就行退票成功是用s[i].count=s[i].count+n; 將航班的剩余票數(shù)加上去以顯示即時航班信息。</p><p><b>  定義主函數(shù)</b></p>

20、<p>  主函數(shù)主要就是提供系統(tǒng)的主菜單界面供用戶選擇。運行主函數(shù)時首先調(diào)用chushihua函數(shù)判定數(shù)據(jù)文件是否存在、是否要進(jìn)行初始航班信息輸入;若已存在則進(jìn)入主界面菜單供用戶選擇,運用swich語句對用戶的不同選擇來調(diào)用各功能的函數(shù)。并用do…while語句循環(huán)實現(xiàn)能夠讓用戶進(jìn)行多次的選擇。</p><p><b>  調(diào)試與測試</b></p><p

21、>  調(diào)試過程中曾經(jīng)遇到過一些問題,但是也不多,遇到過:訂票或退票的時候不能將剩余的票數(shù)加上和減去。后來經(jīng)過詳細(xì)的檢查與對照課本知識點找出了相應(yīng)的錯誤點,經(jīng)過修改加入票數(shù)加減語句,再經(jīng)過與保存函數(shù)的配合后實現(xiàn)了題目要求的功能。調(diào)試成功。</p><p>  核心源程序清單和執(zhí)行結(jié)果:</p><p><b>  源程序清單:</b></p><

22、;p>  #include<stdio.h>//標(biāo)準(zhǔn)輸入、輸出頭文件</p><p>  #include<string.h>//包含字符串函數(shù)處理頭文件</p><p>  #include<process.h>//包含access函數(shù)的頭文件</p><p>  #define N 1000//定義最多

23、的航班數(shù)</p><p>  #define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定義輸出格式</p><p>  struct air //定義結(jié)構(gòu)體數(shù)組</p><p>

24、<b>  {</b></p><p>  int num;//定義航班號</p><p>  char start[20];//航班起始站</p><p>  char over[20];//終點站</p><p>  char time[10];//飛行時間</p><p&

25、gt;  int count;//機(jī)票數(shù)量</p><p><b>  }s[N];</b></p><p>  int i,m=0;//定義全局變量</p><p>  char ii[10];</p><p>  void add();//函數(shù)聲明增加航班信息函數(shù)</p><p

26、>  void print(); //顯示航班信息</p><p>  void search();//查找航班信息</p><p>  void dingpiao();//訂票業(yè)務(wù)</p><p>  void tuipiao();//退票</p><p>  void read();//讀取文件</p&g

27、t;<p>  void save();//保存文件</p><p>  void output();//輸出格式</p><p>  void paixu();//航班排序</p><p>  void chushihua();//系統(tǒng)初始化</p><p>  void build();//建立數(shù)據(jù)文件&l

28、t;/p><p>  void paixu1();//按航班號從小到大排序</p><p>  void paixu2();//從大到小</p><p>  void main()//主函數(shù)</p><p><b>  {</b></p><p><b>  int j; &l

29、t;/b></p><p>  chushihua();//系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件</p><p>  printf(" O(^_^)O歡迎使用天鑫飛機(jī)訂票系統(tǒng)(*^__^*)\n");//打印出系統(tǒng)主界面</p><p><b>  do</b></p>

30、<p><b>  {</b></p><p>  printf("================================================================================ "); </p><p>  printf("1.增加航班信息\n"</p&

31、gt;<p>  "\t2.瀏覽航班信息\n"</p><p>  "\t\t3.查找航班信息(按航班號)\t\t╮(╯_╰)╭\n"</p><p>  "\t\t\t4.航班排序(按航班號)\n"</p><p>  "\t\t\t\t5.訂票業(yè)務(wù)\n" </p&

32、gt;<p>  "\to(︶︿︶)o\t\t\t6.退票業(yè)務(wù)\n"</p><p>  "\t\t\t\t\t\t0.退出\n");</p><p>  printf("==============================================================================

33、== "); </p><p>  printf("請在0-6中選擇以回車鍵結(jié)束: ");</p><p>  scanf("%d",&j);</p><p><b>  switch(j)</b></p><p><b>  {</b>&

34、lt;/p><p>  case 1: add();//調(diào)用增加航班函數(shù)</p><p><b>  break;</b></p><p>  case 2:print();//調(diào)用顯示模塊</p><p><b>  break;</b></p><p>  case

35、3:search();//調(diào)用查找模塊</p><p><b>  break;</b></p><p>  case 4:paixu();//調(diào)用排序函數(shù)</p><p><b>  break;</b></p><p>  case 5:dingpiao();//調(diào)用訂票模塊</p

36、><p><b>  break;</b></p><p>  case 6:tuipiao();//調(diào)用退票模塊</p><p><b>  break; </b></p><p>  case 0://退出系統(tǒng)</p><p><b>  save();&

37、lt;/b></p><p>  printf("謝謝使用,再見! ");</p><p><b>  break;</b></p><p><b>  }</b></p><p>  }while(j!=0);//判斷是否調(diào)用其他函數(shù)</p><p

38、><b>  }</b></p><p>  void chushihua()//定義系統(tǒng)初始化函數(shù)</p><p><b>  {</b></p><p>  if(access("hangban.dat",0))</p><p><b>  {</

39、b></p><p><b>  build();</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  read();</b></p><p><b

40、>  }</b></p><p>  void build()//定義建立數(shù)據(jù)文件函數(shù)</p><p><b>  {</b></p><p>  FILE *fp;//定義文件指針</p><p>  if((fp=fopen("hangban.dat","wb

41、"))==NULL)//打開文件并判定是否出錯 </p><p><b>  {</b></p><p>  printf("創(chuàng)建文件失敗! ");//打印出錯提示</p><p>  getchar();</p><p><b>  return;</b>&

42、lt;/p><p><b>  }</b></p><p>  printf("請依次輸入航班信息(以回車鍵結(jié)束):\n"); //打印提示信息</p><p>  printf("----------------------------------------------------------------

43、---------- \n");</p><p>  for(i=0;i<N;i++)</p><p><b>  {</b></p><p>  printf("請輸入航班號: "); </p><p>  scanf("%d",&s[i].num);

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

45、,s[i].over);//輸入終點站</p><p>  printf("請輸入時間(星期幾): ");</p><p>  scanf("%s",s[i].time);//輸入時間</p><p>  printf("請輸入機(jī)票數(shù): ");</p><p>  scanf

46、("%d",&s[i].count);//輸入機(jī)票數(shù)</p><p>  fwrite(&s[i],sizeof(struct air),1,fp);</p><p><b>  m++;</b></p><p>  printf("添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結(jié)束:")

47、;</p><p>  scanf("%s",ii);</p><p>  if(strcmp(ii,"y")!=0)//判斷是否繼續(xù)添加航班信息</p><p><b>  {</b></p><p>  fclose(fp);//關(guān)閉文件</p>&l

48、t;p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void read()//定義讀取文件函數(shù)</p>

49、;<p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("hangban.dat","r"))==NULL)</p><p><b>  {</b></p>

50、<p>  printf("創(chuàng)建文件失敗! ");</p><p>  getchar();</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  i=0;</b></p&

51、gt;<p>  while(!feof(fp))</p><p><b>  {</b></p><p>  fread(&s[i],sizeof(struct air),1,fp);//逐塊讀取數(shù)據(jù)</p><p><b>  i++;</b></p><p>  m+

52、+;//計算存在航班數(shù)</p><p><b>  }</b></p><p><b>  m--;</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void save()//定義保

53、存函數(shù)</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("hangban.dat","wb"))==NULL) </p><p><b>  {</

54、b></p><p>  printf("創(chuàng)建文件失敗! ");</p><p>  getchar();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  for(i=0;i<m;

55、i++)//逐塊保存數(shù)據(jù)</p><p>  fwrite(&s[i],sizeof(struct air),1,fp);</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void add()//定義增加航班信息函數(shù)</p><

56、p><b>  {</b></p><p><b>  do{</b></p><p>  printf("請依次輸入您要增加的航班信息(以回車鍵結(jié)束): \n"); //打印提示信息</p><p>  printf("---------------------------

57、----------------------------------------------- \n");</p><p>  printf("請輸入航班號: "); </p><p>  scanf("%d",&s[m].num);//讀取航班號</p><p>  printf("請輸入起

58、始站: ");</p><p>  scanf("%s",s[m].start);//讀取起始站</p><p>  printf("請輸入終點站: ");</p><p>  scanf("%s",s[m].over);//讀取終點站</p><p>  prin

59、tf("請輸入時間: ");</p><p>  scanf("%s",s[m].time);//讀取時間</p><p>  printf("請輸入機(jī)票數(shù): ");</p><p>  scanf("%d",&s[m].count);//讀取機(jī)票數(shù)</p>

60、<p><b>  m++;</b></p><p>  printf("添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結(jié)束:");</p><p>  scanf("%s",ii);</p><p>  }while(!strcmp(ii,"y"));//判斷是否繼續(xù)添

61、加</p><p><b>  }</b></p><p>  void output()//定義輸出格式函數(shù)</p><p><b>  {</b></p><p>  printf("航班號\t\t起始站\t\t終點站\t\t時間\t\t機(jī)票數(shù)\n");//信息標(biāo)題&

62、lt;/p><p>  for(i=0;i<m;i++)</p><p>  printf(PRINT);//打印出信息</p><p><b>  }</b></p><p>  void print()//定義顯示航班信息函數(shù)</p><p><b>  {</b>

63、;</p><p>  printf("\n目前我們有如下航班:\n");</p><p>  output();//調(diào)用輸出格式函數(shù)</p><p>  printf("\n請按回車鍵返回上層菜單 ");</p><p>  getchar();</p><p>  ge

64、tchar();</p><p><b>  }</b></p><p>  void search()//定義查詢函數(shù)</p><p><b>  {</b></p><p><b>  int n;</b></p><p><b> 

65、 do</b></p><p><b>  {</b></p><p>  printf("\n請輸入航班號: ");</p><p>  scanf("%d",&n);//輸入查詢的航班號</p><p>  for(i=0;i<m;i++)<

66、/p><p><b>  { </b></p><p>  if(s[i].num==n)//按航班號判定輸出條件</p><p><b>  { </b></p><p>  printf("\n您所查找的航班信息為:\n ");</p><p>  p

67、rintf("航班號\t\t起始站\t\t終點站\t\t時間\t\t機(jī)票數(shù) \n\n");</p><p>  printf(PRINT);//顯示信息 </p><p>  printf("\n查詢完畢,按回車鍵繼續(xù)");</p><p>  getchar();</p><p>  getcha

68、r();</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("\n對不起,沒有您需要的信息!\n ");</p><p&g

69、t;  printf("是否重新查找?請鍵入y或n以回車鍵結(jié)束 ");</p><p>  scanf("%s",ii);</p><p>  }while(!strcmp(ii,"y"));//判定是否重新查找</p><p><b>  } </b></p><

70、p>  void dingpiao()//定義訂票業(yè)務(wù)函數(shù)</p><p><b>  {</b></p><p><b>  int n;</b></p><p>  char a[10]="y";</p><p><b>  do</b><

71、;/p><p><b>  {</b></p><p>  search();//調(diào)用查詢模塊</p><p>  if(!strcmp(ii,"n"))</p><p><b>  {</b></p><p>  printf("對不起!沒有找到

72、您所需要的航班,所以不能訂票。\n");//未查找到所需航班</p><p>  printf("\n請按回車鍵返回上層菜單 ");</p><p>  getchar();</p><p>  getchar();</p><p>  strcpy(ii,"n");</p>

73、<p><b>  break;</b></p><p><b>  }</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("請輸入您要訂的機(jī)票數(shù)(以回車鍵結(jié)束)

74、: ");</p><p>  scanf("%d",&n);//輸入所訂機(jī)票數(shù)</p><p>  if(n<=0)//判定機(jī)票數(shù)是否出錯</p><p><b>  {</b></p><p>  printf("輸入錯誤!至少需訂1張機(jī)票。\n&quo

75、t;);</p><p><b>  }</b></p><p>  else if(s[i].count==0)//判定機(jī)票是否售完</p><p><b>  {</b></p><p>  printf("對不起,你所選擇的航班的機(jī)票已售完!\n");</p>

76、<p><b>  break;</b></p><p><b>  }</b></p><p>  else if(s[i].count!=0&&s[i].count>=n)//判定機(jī)票數(shù)是否大于等于訂票數(shù)</p><p><b>  {</b></p>

77、;<p>  s[i].count=s[i].count-n;</p><p>  printf("訂票成功! ");</p><p><b>  break;</b></p><p><b>  }</b></p><p>  else if(s[i].count

78、<n)//判定機(jī)票數(shù)是否小于訂票數(shù)</p><p><b>  { </b></p><p>  printf("對不起,你所選擇的航班只剩 %d張機(jī)票\n", s[i].count);</p><p>  printf("是否需要重新輸入機(jī)票數(shù)?請輸入y或n以回車鍵結(jié)束: ");//判定是否重新輸

79、入訂票數(shù)</p><p>  scanf("%s",a);</p><p><b>  }</b></p><p>  }while(!strcmp(a,"y"));</p><p>  printf("是否需要訂其他航班的機(jī)票?請輸入y或n以回車鍵結(jié)束: ")

80、;</p><p>  scanf("%s",a);</p><p>  }while(!strcmp(a,"y"));//判定是否繼續(xù)訂票</p><p><b>  }</b></p><p>  void tuipiao()//定義退票函數(shù)</p>&l

81、t;p><b>  {</b></p><p><b>  int n;</b></p><p>  char a[10];</p><p><b>  do</b></p><p><b>  {</b></p><p> 

82、 search();//調(diào)用查詢函數(shù)</p><p>  if(!strcmp(ii,"n"))</p><p><b>  {</b></p><p>  printf("對不起!沒有找到您所需要的航班,所以不能退票。\n");</p><p>  printf("

83、\n請按回車鍵返回上層菜單 ");</p><p>  getchar();</p><p>  getchar();</p><p>  strcpy(ii,"n");</p><p><b>  break;</b></p><p><b>  }<

84、;/b></p><p>  printf("請輸入您要退的機(jī)票數(shù)目: ");</p><p>  scanf("%d",&n);//輸入所退票數(shù)</p><p>  if(n<=0)//判定票數(shù)是否有效</p><p>  printf("輸入錯誤!至少需退1張機(jī)

85、票。 ");</p><p><b>  else </b></p><p><b>  {</b></p><p>  s[i].count=s[i].count+n;</p><p>  printf("退票成功! ");</p><p>&

86、lt;b>  }</b></p><p>  printf("是否繼續(xù)? 請鍵入y或n以回車鍵結(jié)束: ");//判定是否繼續(xù)退票</p><p>  scanf("%s",a);</p><p>  }while(!strcmp(a,"y"));//判定并跳出循環(huán) </p

87、><p><b>  }</b></p><p>  void paixu()//定義排序函數(shù)</p><p><b>  {</b></p><p><b>  int n;</b></p><p>  printf("\n*********

88、*********************************************************************** "); </p><p>  printf("1.按航班號從小到大排序\n"</p><p>  "\t2.按航班號從大到小排序\n");</p><p>  pri

89、ntf("******************************************************************************** "); </p><p>  printf("請在1-2中選擇以回車鍵結(jié)束: ");</p><p>  scanf("%d",&n);//輸入排

90、序方式</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:paixu1();//調(diào)用從小到大排序函數(shù)</p><p><b>  break;</b></p><p>  c

91、ase 2:paixu2();//調(diào)用從大到小排序函數(shù)</p><p><b>  break;</b></p><p><b>  }</b></p><p>  printf("排序后的航班信息為:\n");</p><p>  output();//顯示排序后航班信息

92、</p><p>  printf("\n請按回車鍵返回上層菜單 ");</p><p>  getchar();</p><p>  getchar();</p><p><b>  }</b></p><p>  void paixu1()//定義從小到大排序函數(shù)<

93、;/p><p><b>  {</b></p><p><b>  int k,j;</b></p><p>  struct air t;</p><p>  for(i=0;i<m;i++)//選擇法排序</p><p><b>  {</b>&

94、lt;/p><p><b>  k=i;</b></p><p>  for(j=i+1;j<m;j++)</p><p>  if(s[k].num>s[j].num)</p><p><b>  k=j;</b></p><p><b>  if(i!=

95、k)</b></p><p><b>  {</b></p><p><b>  t=s[k];</b></p><p>  s[k]=s[i];</p><p><b>  s[i]=t;</b></p><p><b>  }&

96、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void paixu2()//定義從大到小排序函數(shù)</p><p><b>  {</b></p><p><b>  

97、int k,j;</b></p><p>  struct air t;</p><p>  for(i=0;i<m;i++)</p><p><b>  {</b></p><p><b>  k=i;</b></p><p>  for(j=i+1;j&

98、lt;m;j++)</p><p>  if(s[k].num<s[j].num)</p><p><b>  k=j;</b></p><p><b>  if(i!=k)</b></p><p><b>  {</b></p><p><

99、b>  t=s[k];</b></p><p>  s[k]=s[i];</p><p><b>  s[i]=t;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b&g

100、t;  }</b></p><p>  以上即為我們的源程序清單。</p><p><b>  執(zhí)行結(jié)果:</b></p><p>  程序最終運行情況如所貼圖表。</p><p>  第一次運行程序(輸入初始數(shù)據(jù))</p><p>  界面提示輸入原始數(shù)據(jù):請輸入航班號→請輸入起始站

101、→請輸入終點站→請輸入飛行時間→請輸入機(jī)票數(shù)。我按照提示一次輸入了4個航班信息后按提示輸入“n”則不再繼續(xù)輸入,系統(tǒng)顯示出了主菜單界面。接著按0退出程序,顯示“謝謝使用,再見?!?lt;/p><p>  圖表 1—主菜單界面</p><p>  第二次運行程序(進(jìn)行航班信息的瀏覽)</p><p>  運行程序就不再顯示輸入航班信息了,而是直接顯示出了主菜單界面(如圖表

102、1)。在提示中輸入“2” →顯示航班信息。輸出如下航班信息(如圖表2),確實顯示出輸入的4個航班信息。</p><p>  圖表 2—顯示航班信息</p><p><b>  查詢航班信息</b></p><p>  在主菜單界面輸入3→請輸入航班號→輸入“1010” →顯示出所查找的信息(如圖表3)</p><p> 

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

104、;/b></p><p>  在主菜單輸入5→提示輸入航班號→輸入1010→顯示出該航班信息并提示輸入訂票數(shù):輸入3→“訂票成功” (如圖表5)</p><p>  圖表 5—訂票業(yè)務(wù)1</p><p>  票數(shù)不足情況(如圖表6):</p><p>  圖表 6—訂票業(yè)務(wù)2</p><p><b> 

105、 仍存在的問題:</b></p><p>  系統(tǒng)只是按照題目的要求做的,雖然是很好地完成了題目要求的所有模塊,但是在整個編程過程中我們也曾嘗試增加我們感興趣的功能,但是失敗了。</p><p><b>  心得體會:</b></p><p>  經(jīng)過此次的課程設(shè)計,可以很明確的了解到自己哪些知識點掌握的比較好,哪些知識點運用的還不

106、夠熟練。通過此次課程設(shè)計也學(xué)會綜合運用理論知識來分析和解決實際問題的能力、養(yǎng)成嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的程序設(shè)計習(xí)慣,實現(xiàn)由知識向智能的初步轉(zhuǎn)化;學(xué)會遵循軟件開發(fā)過程的基本規(guī)范,運用結(jié)構(gòu)化程序設(shè)計的方法,按照課程設(shè)計的題目要求,并與同組成員共同完成設(shè)計、編寫、調(diào)試和測試應(yīng)用程序及編寫文檔的任務(wù)。</p><p><b>  指導(dǎo)教師(簽字):</b></p><p>  

107、教研室主任(簽字):</p><p>  批準(zhǔn)日期: 年 月 日課程設(shè)計進(jìn)度表</p><p><b>  二、參考文獻(xiàn)</b></p><p>  [1]胡建平,《C語言程序設(shè)計》,清華大學(xué)出版社</p><p>  [2]胡建平、刑振祥,《C語言程序設(shè)計學(xué)習(xí)指導(dǎo)》,清華大學(xué)出版社</p&g

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論