課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)程序設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩22頁(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>  高級(jí)語(yǔ)言程序設(shè)計(jì)</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題目: 飛機(jī)訂票系統(tǒng)程序設(shè)計(jì) </p><p>  專 業(yè) : </p><p>  班 級(jí) :

2、</p><p>  學(xué) 號(hào) : </p><p>  姓 名 : </p><p><b>  指導(dǎo)教師 : </b></p><p><b>  日 期: </b></p><p>  1、程序基本功能要求</p><p>

3、;  本程序首先輸入用戶名、密碼進(jìn)入系統(tǒng);從菜單中選擇可以輸入機(jī)票信息對(duì)機(jī)票信息進(jìn)行瀏覽、修改、查詢、退訂票等功能并可以通過(guò)其內(nèi)部各類方</p><p>  式或菜單內(nèi)選項(xiàng)了解航班更細(xì)的信息。</p><p>  (1)航班信息用文件保存,因而要提供文件的輸入輸出操作。 </p><p>  (2)航班信息的錄入,其中包括了航班信息中的航班號(hào)、起始站、終點(diǎn)站、預(yù)售機(jī)

4、票數(shù) 、已售機(jī)票數(shù)。 </p><p>  (3)航班信息瀏覽功能且提供顯示操作。</p><p>  (4)可以查詢航線,查詢方式有按航班號(hào)查詢、按起點(diǎn)站查詢、按終點(diǎn)站查詢按航線查詢、按飛行時(shí)間查詢五種,可從各個(gè)方面進(jìn)行查詢,方便快捷。</p><p>  (5)承辦訂票和退票業(yè)務(wù),可顯示剩余票數(shù)和已買(mǎi)票數(shù)。當(dāng)票數(shù)被訂或被退時(shí)票數(shù)會(huì)隨之變化,統(tǒng)計(jì)較為

5、靈活。</p><p>  (6)提供鍵盤(pán)式選擇菜單以實(shí)現(xiàn)功能選擇。</p><p><b>  2、總體設(shè)計(jì).</b></p><p>  編寫(xiě)一個(gè)飛機(jī)訂票系統(tǒng)的程序使該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)航班信息的錄入、瀏覽、修改、查詢以及訂票、退票的功能。根據(jù)課程設(shè)計(jì)要求和本組人員的增補(bǔ),首先要通過(guò)一個(gè)用戶登錄界面進(jìn)入系統(tǒng),其次要制作一個(gè)主菜單顯示出各個(gè)操作

6、的提示可供用戶選擇進(jìn)而一步步地深入操作。根據(jù)主菜單的內(nèi)容再進(jìn)一步編制具體操作的函數(shù),各個(gè)功能均用專門(mén)編制的函數(shù)來(lái)完成。因?yàn)轱w機(jī)訂票系統(tǒng)含有各航班的各項(xiàng)信息如航班號(hào)、航線、飛行時(shí)間、機(jī)票數(shù)目等必要信息所以就決定用剛學(xué)不久的結(jié)構(gòu)體數(shù)組來(lái)存放航班的各項(xiàng)信息,這就是看到題目后的最初的思路。</p><p>  在整個(gè)程序中,含有多種類型的頭文件,包括了標(biāo)準(zhǔn)輸入、輸出頭文件、字符串函數(shù)處理頭文件、動(dòng)態(tài)存儲(chǔ)與釋放函數(shù)頭文

7、件;在結(jié)構(gòu)體數(shù)組中也對(duì)不同類型的數(shù)組進(jìn)行不同的定義,例如: int flightno、int totalticket、char start[10]等;在各類信息的顯示操作中,本系統(tǒng)在執(zhí)行瀏覽、查詢和退訂票是充分利用函數(shù)的調(diào)用,利用switch()語(yǔ)句進(jìn)行,簡(jiǎn)便實(shí)用;在此系統(tǒng)中,函數(shù)相互嵌套,形成了一個(gè)完整的系統(tǒng)。</p><p>  本次設(shè)計(jì)需要編制初始化、建立數(shù)據(jù)文件、數(shù)據(jù)文件保存、增加航班信息、訂票、退票業(yè)務(wù)

8、等內(nèi)容。首先需要設(shè)立一個(gè)初始化函數(shù)來(lái)得到航班信息。具體設(shè)計(jì)是第一次運(yùn)行程序時(shí)自動(dòng)生成保存航班信息的文件,并輸入初始航班信息,待第二次開(kāi)始就可以直接讀取該文件獲得已有的航班信息并可直接使用。運(yùn)用了access函數(shù)判斷文件是否存在。系統(tǒng)初始化后,沒(méi)有尋找到數(shù)據(jù)文件則進(jìn)行新建數(shù)據(jù)文件。此函數(shù)的作用就是進(jìn)行新建文件數(shù)據(jù)的錄入,運(yùn)用到了文件指針的定義FILE *fp文件的打開(kāi)fopen和關(guān)閉fclose、成塊讀寫(xiě)函數(shù)中的fwrite運(yùn)用for

9、循環(huán)進(jìn)行各組數(shù)據(jù)的輸入,用m++記錄下輸入的航班數(shù)量并運(yùn)用if語(yǔ)句判斷是否輸入下一條航班信息,若不繼續(xù)則返回主界面。系統(tǒng)初始化之后若原始數(shù)據(jù)文件存在則進(jìn)行文件內(nèi)航班信息的讀取以供接下來(lái)程序中的各個(gè)函數(shù)來(lái)使用。在該函數(shù)中同樣運(yùn)用到了文件指針FILE *fp、文件的打開(kāi)fopen和關(guān)閉fclose、成塊讀寫(xiě)函數(shù)中的fread、文件結(jié)束檢測(cè)函數(shù)feof同時(shí)配合while語(yǔ)句控制文件的讀取,m++記錄下讀取到的航班數(shù)量等。因?yàn)樵陲w機(jī)訂票系

10、統(tǒng)中涉及到飛機(jī)的訂票和退票業(yè)務(wù)還有按航班</p><p>  只做稍稍修改就行退票成功是用.。</p><p>  將航班的剩余票數(shù)加上去以顯示即時(shí)航班信息。</p><p><b>  模塊分工:</b></p><p>  進(jìn)入系統(tǒng)菜單 、輸出航班信息、訂票信息由劉妍負(fù)責(zé)</p><p>  

11、輸入航班信息、保存航班信息、讀取航班信息由龔媛負(fù)責(zé)</p><p>  查詢航班信息、退票信息、修改信息部分由郭勇艷負(fù)責(zé)</p><p><b>  3、詳細(xì)設(shè)計(jì)</b></p><p>  系統(tǒng)程序結(jié)構(gòu)(流程圖)</p><p><b>  錄入信息系統(tǒng)流程圖</b></p><

12、;p>  航班信息瀏覽函數(shù):[流程圖]顯示信息</p><p>  查詢模塊:[流程圖]</p><p><b>  ..</b></p><p>  4、程序運(yùn)行結(jié)果(截圖)</p><p>  登陸系統(tǒng)時(shí)需輸入用戶信息</p><p><b>  圖1</b><

13、;/p><p>  進(jìn)入系統(tǒng)后出現(xiàn)菜單供選擇,選擇需要進(jìn)入的窗口</p><p><b>  圖2</b></p><p><b>  航班信息的錄入</b></p><p><b>  圖3</b></p><p><b>  瀏覽航班信息<

14、;/b></p><p><b>  圖4</b></p><p><b>  航班信息的修改</b></p><p><b>  圖5</b></p><p><b>  查詢菜單</b></p><p><b>

15、  圖6</b></p><p>  通過(guò)航班號(hào)和時(shí)間進(jìn)行查詢</p><p><b>  圖7</b></p><p><b>  系統(tǒng)訂票</b></p><p><b>  圖8</b></p><p><b>  退票系統(tǒng)&

16、lt;/b></p><p><b>  圖9</b></p><p><b>  退出系統(tǒng)</b></p><p><b>  圖10</b></p><p>  5、源程序代碼(代碼中注明每段代碼的完成人)</p><p>  /*用戶名:di

17、anke 密碼:12345*/</p><p>  #include<stdio.h> //標(biāo)準(zhǔn)輸入、輸出頭文件</p><p>  #include<string.h> //包含字符串函數(shù)處理頭文件</p><p>  #include<stdlib.h> //包含

18、動(dòng)態(tài)存儲(chǔ)與釋放函數(shù)頭文件</p><p>  #include<conio.h> //包含字符串的輸入、輸出頭文件</p><p>  #define N 10000 </p><p>  struct flight //定義結(jié)構(gòu)體數(shù)組</p><p><b>  {&l

19、t;/b></p><p>  int flightno;</p><p>  char start[10];</p><p>  char end[10];</p><p>  char day[10];</p><p>  int totalticket;</p><p>  int

20、sellticket;</p><p><b>  }</b></p><p><b>  s[N];</b></p><p><b>  int i;</b></p><p><b>  int m=0;</b></p><p>

21、  #define PRINT "%-d%14s%13s%12s%12d%16d\n",s[i].flightno,s[i].start,s[i].end,s[i].day,s[i].totalticket,s[i].sellticket //定義輸出格式</p><p>  void menu(); //進(jìn)入系統(tǒng)菜單</p><p>

22、;  void print(); //輸出航班信息 </p><p>  void booking(); //訂票信息</p><p>  void input(); //輸入航班信息</p><p>  void save(); /

23、/保存航班信息 </p><p>  void read(); //讀取航班信息</p><p>  void search(); //查詢航班信息</p><p>  void back(); //退票信息 </p>

24、;<p>  void correct(); //修改信息</p><p>  void menu() </p><p><b>  {</b></p><p><b>  int j;</b></p><p>  printf("

25、 歡迎進(jìn)入飛機(jī)訂票管理系統(tǒng)!\n"); </p><p>  printf("======================================================================\n");</p><p><b>  do</b></p><p>

26、;<b>  {</b></p><p>  printf(" 1.錄入航班信息 \n");</p><p>  printf(" 2.瀏覽航班信息 \n");</p><p&g

27、t;  printf(" 3.修改航班信息 \n");</p><p>  printf(" 4.查詢航班信息 \n");</p><p>  printf(" 5.

28、訂票信息 \n");</p><p>  printf(" 6.退票信息 \n");</p><p>  printf(" 0.退出航班信息管理系統(tǒng) \n");</p>&l

29、t;p>  printf("======================================================================\n");</p><p>  printf("請(qǐng)?jiān)?-6中選擇以回車(chē)鍵結(jié)束:\n");</p><p>  scanf("%d",&j);</

30、p><p><b>  switch(j)</b></p><p><b>  {</b></p><p>  case 1: input(); //調(diào)用輸入模塊</p><p><b>  break;</b></p><p>  

31、case 2:print(); //調(diào)用打印模塊</p><p><b>  break;</b></p><p>  case 3:correct(); //調(diào)用修改模塊</p><p><b>  break;</b></p><p>  case

32、 4:search(); //調(diào)用查詢模塊</p><p><b>  break;</b></p><p>  case 5:booking(); //調(diào)用訂票模塊</p><p><b>  break;</b></p><p>  case 6:b

33、ack(); //調(diào)用退票模塊</p><p><b>  break;</b></p><p><b>  case 0:;</b></p><p><b>  break;</b></p><p><b>  }</b>&l

34、t;/p><p>  }while(j!=0); //判斷結(jié)束</p><p>  printf("謝謝使用,再見(jiàn)!\n");</p><p>  } //主函數(shù)結(jié)束</p><p>  void main()

35、 //打印主函數(shù)程序信息</p><p><b>  {</b></p><p>  int i,k,part1,part2;</p><p>  char name[10]="dianke",password[10]={"\0"};</p>

36、<p>  char person[10], c[10]="12345";</p><p>  printf ("\t\t ********** 歡迎進(jìn)入飛機(jī)訂票管理系統(tǒng)!**********\n\n"); //打印提示信息</p><p>  printf ("\t\t ~本系統(tǒng)由 、 、 編寫(xiě)

37、完成~ \n\n");</p><p>  printf ("\t\t ~(*^__^*)~ \n\n");</p><p>  printf ("\t\t\t 用 戶 登 錄\n\n");</p><p>  for(k=0;k!=3;)

38、 //打開(kāi)文件并判斷</p><p><b>  {</b></p><p>  printf("\t\t\t\t 用戶名:"); //打印用戶名</p><p>

39、  gets(person);</p><p>  part1=strcmp(person,name);</p><p>  printf("\t\t\t\t 密碼:"); //打印密碼</p><p>  for(i=0;i<5;i++) <

40、/p><p><b>  { </b></p><p>  c[i]=getch(); </p><p>  printf("*"); </p><p><b>  } </b></p><p><b>  gets(c);

41、</b></p><p>  part2=strcmp(c,password);</p><p>  if(part1==0 && part2==0)</p><p><b>  {</b></p><p>  printf("\t\t\t\t 登陸成功!\n\n");

42、</p><p><b>  menu();</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {&

43、lt;/b></p><p>  printf ("\t\t\t 用戶名或密碼錯(cuò)誤!\n\n");</p><p>  printf ("\t\t\t 請(qǐng)注意:您還剩%d次機(jī)會(huì)!\n\n",2-k);</p><p><b>  k++;</b></p><p

44、><b>  }</b></p><p><b>  }</b></p><p><b>  if (k=3)</b></p><p>  printf ("對(duì)不起,由于您輸入的用戶名或密碼3次有誤,已被強(qiáng)制退出。\n");</p><p><b

45、>  }</b></p><p>  void input() //打印模塊程序</p><p><b>  {</b></p><p><b>  int y;</b></p><p>  pri

46、ntf("請(qǐng)依次輸入航班信息:\n"); //打印提示信息</p><p>  printf("完成輸入信息請(qǐng)鍵入w以回車(chē)鍵結(jié)束\n"); </p><p>  printf("-----------------------------------------------------------

47、---------------\n");</p><p>  for(i=0;i<N;i++)</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入航班號(hào):\n"); </p><p>  scanf("%d",&s[i].f

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

49、;/p><p>  scanf("%s",s[i].end); //讀取終點(diǎn)站</p><p>  printf("請(qǐng)輸入時(shí)間:\n");</p><p>  scanf("%s",s[i].day); //讀取時(shí)間</p>

50、<p>  printf("請(qǐng)輸入預(yù)售票總數(shù):\n");</p><p>  scanf("%d",&s[i].totalticket); //讀取預(yù)售票數(shù) </p><p>  printf("請(qǐng)輸入已售票總數(shù):\n",m);</p><p>  scanf(&

51、quot;%d",&s[i].sellticket); //讀取已售票總數(shù)</p><p><b>  m++; </b></p><p>  printf("第%d個(gè)信息已經(jīng)輸完是否繼續(xù)?按任意數(shù)字鍵繼續(xù),按0結(jié)束",m);</p><p>  scanf("%d",&

52、amp;y);</p><p><b>  if(y==0)</b></p><p><b>  {</b></p><p>  save(); //將結(jié)構(gòu)體信息存盤(pán)</p><p>  print();

53、 //輸出輸入的航班信息</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void

54、save() //保存模塊程序</p><p><b>  {</b></p><p>  FILE *fp,*fp1; //定義文件指針</p><p>  if((fp=fopen("

55、;chen.dat","wb"))==NULL) //打開(kāi)文件并判斷是否出錯(cuò) </p><p><b>  {</b></p><p>  printf("創(chuàng)建文件失敗!\n\n"); //打印出錯(cuò)提示</p><p>  getchar();</p&g

56、t;<p><b>  return;</b></p><p><b>  }</b></p><p>  if((fp1=fopen("hao.dat","wb"))==NULL) //打開(kāi)文件并判斷是否出錯(cuò) </p><p><b>  {<

57、/b></p><p>  printf("創(chuàng)建文件失敗!\n\n"); //打印出錯(cuò)提示</p><p>  getchar();</p><p><b>  return;</b></p><p><b>  }</b></p>

58、<p>  for(i=0;i<m;i++)</p><p>  if(fwrite(&s[i],sizeof(struct flight),1,fp)==0) //向文件寫(xiě)入數(shù)據(jù),并判斷是否出錯(cuò)</p><p>  printf("向文件輸入數(shù)據(jù)失敗!\n\n");</p><p>  fprintf(fp1,&qu

59、ot;%d",m);</p><p>  fclose(fp); //關(guān)閉文件</p><p>  fclose(fp1); //關(guān)閉文件</p><p><b>  }</b></p

60、><p>  void read() //從文件讀取信息模塊</p><p><b>  {</b></p><p>  FILE *fp,*fp1; //定義文件指針</p><p&g

61、t;  if((fp=fopen("chen.dat","rb"))==NULL) //打開(kāi)文件,并判斷是否出錯(cuò)</p><p><b>  {</b></p><p>  printf("出錯(cuò),請(qǐng)檢查文件是否存在,按任意鍵返回住菜單");//打印出錯(cuò)提示</p><p>  get

62、char();</p><p><b>  }</b></p><p>  if((fp1=fopen("hao.dat","rb"))==NULL) //打開(kāi)文件并判斷是否出錯(cuò) </p><p><b>  {</b></p><p>  printf

63、("創(chuàng)建文件失敗!\n\n"); //打印出錯(cuò)提示</p><p>  getchar();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  fscanf(fp1,"%d&q

64、uot;,&m);</p><p>  fclose(fp1); //關(guān)閉文件</p><p>  for(i=0;i<m;i++) </p><p><b>  { </b></p><p>  fread(&s[i],

65、sizeof(flight),1,fp); //從文件中讀取信息</p><p><b>  }</b></p><p>  fclose(fp); //關(guān)閉文件</p><p><b>  }</b></p>&l

66、t;p>  void print() //打印模塊</p><p><b>  {</b></p><p>  char w[10];</p><p>  read();

67、 //調(diào)用讀取文件函數(shù)</p><p>  printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 預(yù)售票總數(shù) 已售票總數(shù)\n");</p><p>  for(i=0;i<m;i++)</p><p><b>  {</b></p><p> 

68、 printf(PRINT); //打印信息</p><p><b>  }</b></p><p>  printf("請(qǐng)按任意鍵回車(chē)鍵結(jié)束返回上層菜單以:\n");</p><p>  scanf("%s",w);</p>

69、;<p><b>  }</b></p><p>  void search() //查詢模塊</p><p><b>  {</b></p><p>  char startname[10];</p>&l

70、t;p>  char endname[10];</p><p>  char day[10];</p><p>  char p[10];</p><p><b>  int n,no;</b></p><p><b>  do</b></p><p><b>

71、;  {</b></p><p>  printf("請(qǐng)選擇查詢方式:\n"); //打印查詢方式菜單</p><p>  printf("1.按航班號(hào)查詢\n");</p><p>  printf("2.按起點(diǎn)站查詢\n");</p><p&g

72、t;  printf("3.按終點(diǎn)站查詢\n");</p><p>  printf("4.按航線查詢\n");</p><p>  printf("5.按飛行時(shí)間查詢\n");</p><p>  printf("0.返回\n");</p><p>  prin

73、tf("請(qǐng)?jiān)?-5中選擇:\n");</p><p>  printf("按其他鍵以回車(chē)鍵結(jié)束返回主菜單:\n");</p><p>  scanf("%d",&n); //讀取查找方式</p><p><b>  if(n==

74、0)</b></p><p><b>  break;</b></p><p><b>  switch(n)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p

75、>  printf("請(qǐng)輸入航班號(hào):\n");</p><p>  scanf("%d",&no); //航班號(hào)</p><p><b>  break;</b></p><p><b>  case 2:</b>&l

76、t;/p><p>  printf("請(qǐng)輸入起點(diǎn)站名稱:\n");</p><p>  scanf("%s",&startname);</p><p><b>  break;</b></p><p><b>  case 3:</b></p>

77、<p>  printf("請(qǐng)輸入終點(diǎn)站名稱:\n");</p><p>  scanf("%s",endname); //讀取終點(diǎn)站</p><p><b>  break;</b></p><p><b>  case 4:</b&

78、gt;</p><p>  printf("請(qǐng)輸入起始站名稱:\n");</p><p>  scanf("%s",startname); //讀取起始站</p><p>  printf("請(qǐng)輸入終點(diǎn)站名稱:\n");</p><p>  sca

79、nf("%s",endname); //終點(diǎn)站</p><p><b>  break; </b></p><p><b>  case 5:</b></p><p>  printf("請(qǐng)輸入飛行時(shí)間:\n");</p>&l

80、t;p>  scanf("%s",&day);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  read(); //調(diào)用讀取函數(shù)</p>

81、<p>  for(i=0;i<m;i++)</p><p><b>  {</b></p><p>  if(strcmp(s[i].end,startname)==0||strcmp(s[i].end,endname)==0)//按終點(diǎn)站起始站判斷輸出條件</p><p><b>  {</b><

82、;/p><p>  printf("\n查詢航班信息成功!\n");</p><p>  printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 預(yù)售票總數(shù) 已售票總數(shù)\n");</p><p>  printf(PRINT);

83、 //打印信息</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(s[i].flightno==no) //按航班號(hào)判斷輸出條件</p><p><b>  { </b></

84、p><p>  printf("\n查詢航班信息成功!\n");</p><p>  printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 預(yù)售票總數(shù) 已售票總數(shù)\n");</p><p>  printf(PRINT);

85、 //打印信息</p><p><b>  break;</b></p><p><b>  } </b></p><p>  if(strcmp(s[i].day,day)==0)</p><p><b>  {</b></p><p>  pri

86、ntf("\n查詢航班信息成功!");</p><p>  printf("\n航班號(hào) 起始站 終點(diǎn)站 時(shí)間 剩余機(jī)票數(shù) 預(yù)售機(jī)票數(shù)\n");</p><p>  printf(PRINT);//打印信息</p><p><b>  break;

87、</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  no=0; //將航班號(hào)賦值為0</p><p>  printf("沒(méi)有您需要的信息

88、或查找完畢:\n\n"</p><p>  "是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束\n");</p><p>  scanf("%s",p);</p><p>  }while(strcmp(p,"yes")==0); //判斷結(jié)束<

89、/p><p><b>  }</b></p><p>  void booking() //訂票模塊</p><p><b>  {</b></p><p><b>  int n;</b><

90、;/p><p>  char f[10];</p><p><b>  do</b></p><p><b>  {</b></p><p>  search(); //調(diào)用查詢模塊</p><p>  p

91、rintf("請(qǐng)輸入您要訂的機(jī)票數(shù)以回車(chē)鍵結(jié)束:\n");</p><p>  scanf("%d",&n); //讀取所訂機(jī)票數(shù)</p><p><b>  if(n<0)</b></p><p><b>  {</

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

93、mp;s[i].totalticket>=n) //判斷是否出錯(cuò)</p><p><b>  {</b></p><p>  s[i].totalticket=s[i].totalticket-n;</p><p>  s[i].sellticket=s[i].sellticket+n;</p><p>  sa

94、ve(); //調(diào)用保存函數(shù)</p><p>  printf("訂票成功!\n\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(s

95、[i].totalticket<n) //判斷是否出錯(cuò)</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入有效的機(jī)票數(shù):\n");</p><p><b>  break; </b></p><p&

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

97、 //判斷結(jié)束</p><p><b>  }</b></p><p>  void back() //退票模塊</p><p><b>  {</b></p><p>

98、<b>  int n;</b></p><p>  char f[10];</p><p><b>  do</b></p><p><b>  { </b></p><p>  search(); /

99、/調(diào)用查詢模塊</p><p>  printf("請(qǐng)輸入您要退的機(jī)票數(shù)目:\n");</p><p>  scanf("%d",&n); //輸入所退票數(shù)</p><p>  if(n<0)

100、 //判斷票數(shù)是否有效</p><p>  printf("請(qǐng)輸入有效的機(jī)票數(shù)!\n");</p><p>  s[i].totalticket=s[i].totalticket+n;</p><p>  s[i].sellticket=s[i].sellticket-n;</p><p>  save();

101、 //調(diào)用保存模塊</p><p>  printf("退票成功!\n\n");</p><p>  printf("是否繼續(xù)? 請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束:\n\n");//判斷是否繼續(xù)退票</p><p>  scanf("%s&quo

102、t;,f);</p><p>  }while(!strcmp(f,"yes")); //判斷并跳出循環(huán)</p><p>  getchar();</p><p><b>  }</b></p><p>  void correct()

103、 //修改模塊</p><p><b>  {</b></p><p>  struct cor //定義結(jié)構(gòu)體 </p><p><b>  { </b></p>

104、<p><b>  int no;</b></p><p>  char startname[10];</p><p>  char endname[10];</p><p>  char day[10];</p><p>  int totalticket;</p><p>  i

105、nt sellticket;</p><p><b>  }x[1];</b></p><p>  char j[10];</p><p><b>  int n;</b></p><p><b>  {</b></p><p>  read();

106、 //調(diào)用讀取模塊</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf( "請(qǐng)選擇修改方式:\n");</p><p>  printf( &q

107、uot;*1,按航班號(hào)修改:\n");</p><p>  printf( "*2,按航線修改: \n");</p><p>  printf("請(qǐng)?jiān)?---2中修改以回車(chē)鍵結(jié)束:\n");</p><p>  scanf("%d",&n);

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

109、no); //讀取航班號(hào)</p><p><b>  break;</b></p><p>  case 2:printf("請(qǐng)輸入起始站:\n");</p><p>  scanf("%s",x[0].startname); //讀取起始站&l

110、t;/p><p>  printf("請(qǐng)輸入終點(diǎn)站:\n");</p><p>  scanf("%s",x[0].endname); //讀取終點(diǎn)站</p><p><b>  break;</b></p><p><b>  }</b&g

111、t;</p><p>  for(i=0;i<m;i++)</p><p><b>  { </b></p><p>  if(strcmp(s[i].end,x[0].startname)==0&&strcmp(s[i].end,x[0].endname)==0) //判斷輸出條件</p><

112、;p><b>  {</b></p><p>  printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 預(yù)售票總數(shù) 已售票總數(shù)\n");</p><p>  printf(PRINT);</p><p><b>  break;</b></

113、p><p><b>  }</b></p><p>  if(s[i].flightno==x[0].no) //判斷輸出條件</p><p><b>  { </b></p><p>  printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間

114、 預(yù)售票總數(shù) 已售票總數(shù)\n");</p><p>  printf(PRINT);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p

115、>  x[0].no=0; //將結(jié)構(gòu)體中的號(hào)為零</p><p>  printf("請(qǐng)輸入新航班號(hào)、起始站、終點(diǎn)站、時(shí)間(星期幾)、預(yù)售票總數(shù)、已售票總數(shù):\n");</p><p>  scanf("%d%s%s%s%d%d",&x[0].no,x[0].startname,x[

116、0].endname,x[0].day,&x[0].totalticket,&x[0].sellticket); //定義輸入格式</p><p>  s[i].flightno=x[0].no; //替換航班號(hào)</p><p>  strcpy(s[i].start,x[0].startname); /

117、/替換其始站</p><p>  strcpy(s[i].end,x[0].endname); //替換終點(diǎn)站</p><p>  strcpy(s[i].day,x[0].day); //替換時(shí)間</p><p>  s[i].totalticket=x[0].totalticket; /

118、/替換預(yù)售票總數(shù)</p><p>  s[i].sellticket=x[0].sellticket; //替換已售票總數(shù)</p><p>  save(); //調(diào)用保存模塊</p><p>  printf("是否繼續(xù)?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束:\n\n"

119、;);</p><p>  scanf("%s",j);</p><p>  }while(strcmp(j,"yes")==0); //判斷結(jié)束</p><p><b>  }</b></p><p><b>  }</

120、b></p><p><b>  6、個(gè)人體會(huì)</b></p><p>  歷經(jīng)整整一個(gè)星期的課程設(shè)計(jì)終于結(jié)束了,在這一個(gè)星期內(nèi),我們小組三個(gè)同學(xué)從最開(kāi)始的空白到現(xiàn)在的程序運(yùn)行成功。整個(gè)過(guò)程中,我領(lǐng)會(huì)了很多,也學(xué)到了很多,我了解到自己哪些知識(shí)點(diǎn)掌握的比較好,哪些知識(shí)點(diǎn)運(yùn)用的還不夠熟練。通過(guò)這次課程設(shè)計(jì)使我明白了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的

121、,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才是真正的知識(shí),才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程遇到了各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過(guò)這次課程設(shè)計(jì),把以前所學(xué)過(guò)的大部分知識(shí)重新溫故,鞏固了所學(xué)的知識(shí)。</p><p>  整個(gè)過(guò)程中,我們對(duì)程序輸入、瀏覽、功能排版、菜單顯示等各個(gè)功能進(jìn)行了編寫(xiě),用了很多

122、方法找可用的資料 ,將找到的資料進(jìn)行整合嵌套。由于對(duì)程序的不熟悉和知識(shí)的局限性,剛開(kāi)始將各功能整合時(shí)錯(cuò)誤百出,各種修改最后也運(yùn)行不了,當(dāng)時(shí)的心情十分沉悶,總會(huì)想到要放棄,經(jīng)過(guò)同學(xué)的鼓勵(lì)和幫助,最終我們小組的程序終于運(yùn)行成功。</p><p>  此次程序能運(yùn)行成功的很大原因是小組同學(xué)的合作,大家分工合作,效率很快,準(zhǔn)確率也很高。所以我覺(jué)得此次程序設(shè)計(jì)很成功,在能力、知識(shí)、復(fù)習(xí)等各個(gè)方面都有涉及,收獲頗豐。<

溫馨提示

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