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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  1.系統(tǒng)需求分析0</p><p>  1.1 問題描述0</p><p>  1.2 功能要求0</p><p><b>  2.概要設(shè)計1</b></p><p>  2.1 系統(tǒng)總體設(shè)計1<

2、;/p><p>  2.2 各模塊的功能2</p><p>  2.3 相關(guān)數(shù)據(jù)結(jié)構(gòu)設(shè)計3</p><p><b>  3.詳細設(shè)計4</b></p><p>  3.1 采用C語言定義相關(guān)的數(shù)據(jù)類型4</p><p>  3.2 模塊設(shè)計5</p><p>  3.

3、2.1 主函數(shù)main()5</p><p>  3.2.2 航班信息輸入模塊8</p><p>  3.2.3 航班信息輸入模塊10</p><p>  3.2.4 航班信息輸出模塊11</p><p>  3.2.5 訂票預(yù)約模塊12</p><p>  3.2.6 退票模塊14</p>

4、<p>  3.2.7 航班信息的保存模塊16</p><p>  3.2.8 航班信息的退出模塊17</p><p>  4. 系統(tǒng)調(diào)試17</p><p>  5. 運行結(jié)果18</p><p>  6. 心得體會22</p><p><b>  7. 附錄23</b>&

5、lt;/p><p>  7.1 參考書目23</p><p>  7.2 源程序23</p><p><b>  1.系統(tǒng)需求分析</b></p><p><b>  1.1 問題描述</b></p><p>  假設(shè)某航空公司只有M架飛機,每架飛機每天飛行一趟。通過該系統(tǒng)來

6、實現(xiàn)機票的訂購問題。</p><p><b>  1.2 功能要求</b></p><p>  1、本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每趟航班的數(shù)據(jù)結(jié)構(gòu)應(yīng)當(dāng)包括:起飛地、目的地、 航班號、座位數(shù)、座次號碼(包括該航班擁有的全部座次)、座次訂出與否標記、訂座者的姓名和訂座者的身份證號碼。</p><p>  2、本系統(tǒng)顯示這樣的菜單:<

7、;/p><p><b>  (1)輸入航班信息</b></p><p><b>  (2)輸出航班信息</b></p><p>  (3)航班信息的保存</p><p><b>  (4)查找航班信息</b></p><p><b>  a.顯示空

8、座的數(shù)量</b></p><p><b>  b.顯示空座的信息</b></p><p>  c.顯示已訂座的信息</p><p><b>  d.起飛時間</b></p><p><b>  (5)訂票預(yù)約</b></p><p><

9、b>  (6)刪除訂票預(yù)約</b></p><p><b>  (7)退出系統(tǒng)</b></p><p>  3.本系統(tǒng)成功執(zhí)行菜單的每個信息,選項4)和5)將要求額外的輸入,并且它們都允許用戶收回其輸入。</p><p>  4.查找航班信息既可按線路查,也可按目的地查。</p><p>  5、在兩次

10、運行之間,數(shù)據(jù)被保存于一個文件里,當(dāng)本程序重新開</p><p>  始的時候,它首先從該文件讀入數(shù)據(jù)</p><p><b>  2.概要設(shè)計</b></p><p>  2.1 系統(tǒng)總體設(shè)計</p><p>  先對程序輸入航班信息,然后就可以對機票信息進行查詢;預(yù)訂;刪除等功能。一般客戶可以使用查詢;訂票;顯示;退

11、票等功能,在訂票時通過查詢找到所要航班號再輸入個人信息預(yù)訂機票,在退票時客戶身份證號碼通過驗證后可以成功退票。總的設(shè)計思路如下圖所示:</p><p>  圖2.1 系統(tǒng)總設(shè)計結(jié)構(gòu)圖</p><p>  2.2 各模塊的功能</p><p>  (1)在主菜單界面按1時,進入航班信息輸入模塊輸入所有航班信息。</p><p>  (2)在主

12、菜單界面按2時,進入航班信息輸出模塊,客戶可以瀏覽所有的航班信息。</p><p>  (3)在主菜單界面按3時,進入查詢模塊,客戶輸入查詢方式就可以查詢到顯示空座的數(shù)量、顯示空座的信息、顯示已訂座的信息、起飛時間等航班的信息。</p><p>  (4)在主菜單界面按4時, 進入訂票模塊,客戶訂票時輸入航班號、訂票數(shù)量、客戶姓名、身份證號碼,確定后可以成功訂票。</p>&

13、lt;p>  (5)在主菜單界面按5時,進入退票模塊,輸入客戶的航班號和身份證號碼就可以成功退票。</p><p>  (6)在主菜單界面按6時,進入信息保存模塊。</p><p>  (7)在主菜單界面按7時,退出系統(tǒng)。</p><p>  2.3 相關(guān)數(shù)據(jù)結(jié)構(gòu)設(shè)計</p><p>  (1)數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組</p>

14、;<p>  (2)數(shù)據(jù)庫結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫。</p><p>  struct airplant </p><p><b>  {</b></p><p>  char start[30];</p><p>  char over[30]; </p><p>

15、;  char time[20]; </p><p>  char airnum[10]; 、</p><p>  int lastseatnum; 、</p><p>  struct w seats[seatmax];</p><p><b>  }</b></p><p><b

16、>  表 2.1</b></p><p>  struct w </p><p><b>  {</b></p><p>  int mark; </p><p>  char name[10]; </p><p>  int IDca

17、rd[20]; </p><p><b>  } </b></p><p><b>  表 2.2</b></p><p><b>  3.詳細設(shè)計</b></p><p>  3.1 采用C語言定義相關(guān)的數(shù)據(jù)類型</p><p>  因為飛機票系統(tǒng)含有

18、各航班的各項數(shù)據(jù)信息,如航班號,航線,飛行時間,余票數(shù)目等必要信息,所以就決定用剛學(xué)不久的結(jié)構(gòu)體數(shù)組來存放航班的各項信息,根據(jù)題目要求定義如下結(jié)構(gòu)體類型:</p><p>  #include<stdio.h> //標準輸入、輸出頭文件</p><p>  #include<string.h> //包含字符串函數(shù)處理頭文件</p><

19、;p>  #include<stdlib.h> //包含動態(tài)存儲與釋放函數(shù)頭文件</p><p>  #define airnummax 6 //航班數(shù)最大值</p><p>  #define seatmax 18 //座位數(shù)最大值</p><p>  struct w //座位信息結(jié)構(gòu)體</p>

20、<p><b>  {</b></p><p>  int mark; //作為預(yù)定標記,已預(yù)定值為1,未預(yù)定值為0</p><p>  char name[10]; //訂票人姓名</p><p>  char IDcard[20]; //訂票人身份證號</p><p><b>

21、;  };</b></p><p>  struct airplant //定義結(jié)構(gòu)體數(shù)值</p><p><b>  {</b></p><p>  char start[30]; //起始站</p><p>  char over[30]; //終點站</p><p> 

22、 char time[20]; // 起飛時間</p><p>  char airnum[10]; //航班號</p><p>  int lastseatnum; //空座數(shù)量</p><p><b>  int num;</b></p><p>  struct w seats[seatmax]; /

23、/座位信息</p><p>  }a[airnummax];</p><p><b>  3.2 模塊設(shè)計</b></p><p>  3.2.1 主函數(shù)main()</p><p>  圖3.1主函數(shù)流程圖</p><p>  void main() //主函數(shù)</p>

24、;<p><b>  {</b></p><p>  int i,zws,js,t;</p><p>  for(i=0;i<airnummax;i++)//給座位信息賦初始值,解決二次運行時,讀取錯誤。</p><p><b>  {</b></p><p>  for(zws

25、=0;zws<seatmax;zws++)</p><p><b>  {</b></p><p>  a[i].seats[zws].mark=0;</p><p>  a[i].seats[zws].name[0]='0';</p><p>  a[i].seats[zws].IDcard[0]

26、='0';</p><p><b>  }</b></p><p><b>  }</b></p><p>  FILE *p; //創(chuàng)建文件</p><p>  p=fopen("飛機訂票系統(tǒng).dat","r");</p&g

27、t;<p>  if(p==NULL)</p><p><b>  {js=0;}</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  fscanf(p,"%d",&js);

28、</p><p>  for(i=0;i<js;i++)</p><p><b>  {</b></p><p>  fscanf(p,"%s %s %s %s %d %d",a[i].airnum,a[i].start,a[i].over,a[i].time,&a[i].num,&a[i].lasts

29、eatnum);</p><p>  for(zws=0;zws<seatmax;zws++)</p><p>  fscanf(p,"%d %s %s",&a[i].seats[zws].mark,a[i].seats[zws].name,a[i].seats[zws].IDcard);</p><p><b>  }&

30、lt;/b></p><p>  fclose(p);</p><p><b>  }</b></p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  printf("

31、 ********************************\n"); //輸出菜單</p><p>  printf(" -------請輸入你的選擇: ---------\n");</p><p>  printf(" -------1、輸入航班信息:---------\n&qu

32、ot;);</p><p>  printf(" -------2、查找航班信息:---------\n");</p><p>  printf(" -------3、輸出航班信息:---------\n");</p><p>  printf(" -------

33、4、訂票預(yù)約:-------------\n");</p><p>  printf(" -------5、刪除訂票預(yù)約:---------\n");</p><p>  printf(" -------6、航班信息的保存:-------\n");</p><p>  printf

34、(" -------7、退出系統(tǒng):-------------\n");</p><p>  printf(" ********************************\n");</p><p>  scanf("%d",&t);</p><p>  if(

35、t==1) //輸入模塊</p><p><b>  { }</b></p><p>  else if(t==2) //查詢模塊</p><p><b>  { }</b></p><p>  else if(t==3) //輸出模塊</p>&

36、lt;p><b>  { }</b></p><p>  else if(t==4) //訂票預(yù)約模塊</p><p><b>  { }</b></p><p>  else if(t==5) //刪除訂票預(yù)約</p><p><b>  { }</b>

37、</p><p>  else if(t==6) //航班信息的保存</p><p><b>  { }</b></p><p>  else if(t==7) //退出系統(tǒng)</p><p><b>  break;</b></p><p><b>  el

38、se </b></p><p>  printf("對不起,沒有該選項!");</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.2.2 航班信息輸入模塊</p><p>  圖3.2 航班

39、信息輸出流程圖 </p><p><b>  程序:</b></p><p>  if(t==1) //輸入模塊</p><p><b>  {</b></p><p>  for(i=js;i<airnummax;i++)</p><p><

40、b>  {</b></p><p><b>  char u;</b></p><p>  printf("請輸入航班號的信息\n");</p><p>  scanf("%s",a[i].airnum);</p><p>  printf("請輸入起始

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

42、gt;  printf("請輸入時間:"); //讀取飛機起飛時間</p><p>  scanf("%s",a[i].time);</p><p>  printf("請輸入座位數(shù)量:"); //讀取座位數(shù)量</p><p>  scanf("%d",&am

43、p;a[i].num);</p><p>  a[i].lastseatnum=a[i].num;</p><p>  printf("\n");</p><p><b>  js++; </b></p><p>  printf("是否要繼續(xù):Y或N\n"); <

44、;/p><p>  scanf("%c",&u);</p><p>  scanf("%c",&u);</p><p>  if(u!='y' && u!='Y') //判斷是否繼續(xù)</p><p><b>  break;<

45、/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3.2.3 航班信息輸入模塊</p><p>  圖3.3 查詢航班信息流程圖</p><p><b>  程序:</b></p>

46、;<p>  else if(t==2) //查詢模塊</p><p><b>  {</b></p><p><b>  int n=0;</b></p><p>  char h[20];</p><p>  printf("請輸入你要找的航班號:\n"

47、);//輸入需要查詢的航班號</p><p>  scanf("%s",h);</p><p>  for(i=0;i<js;i++)</p><p><b>  {</b></p><p>  if(strcmp(h,a[i].airnum)==0)</p><p>&

48、lt;b>  {</b></p><p>  printf("你要找的航班信息如下:\n");</p><p>  printf("%s %s %s %s %d %d",a[i].airnum,a[i].start,a[i].over,a[i].time,a[i].num,a[i].lastseatnum);</p>

49、<p>  printf("\n");</p><p><b>  n=1;</b></p><p><b>  break;</b></p><p>  } </p><p><b>  }</b></p>&l

50、t;p><b>  if(n=0)</b></p><p>  printf("沒有您要查找的航班!請輸入正確的航班號!");</p><p><b>  }</b></p><p>  3.2.4 航班信息輸出模塊</p><p>  圖3.4 航班信息輸出流程圖<

51、/p><p><b>  程序:</b></p><p>  else if(t==3) //輸出模塊</p><p><b>  {</b></p><p>  printf("航班信息如下:\n");</p><p>  for(i=0;i<

52、js;i++)</p><p><b>  {</b></p><p>  printf("起點站: ");printf("%s\n",a[i].start); //輸出起始站</p><p>  printf("終點站: ");printf("%s\n",a[i

53、].over); //輸出終點站</p><p>  printf("時間: ");printf("%s\n",a[i].time); //輸出起飛時間</p><p>  printf("座位數(shù)量: ");printf("%d\n",a[i].num);// 輸出座位數(shù)量</p>&

54、lt;p>  printf("空座數(shù)量: ");printf("%d\n",a[i].lastseatnum);//輸出空座數(shù)量</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b>&

55、lt;/p><p>  3.2.5 訂票預(yù)約模塊</p><p>  圖3.5 訂票預(yù)約流程圖</p><p><b>  程序:</b></p><p>  else if(t==4) //訂票預(yù)約模塊</p><p><b>  {</b></p><

56、;p><b>  int j,xz;</b></p><p>  char sf[10];</p><p>  printf("輸入要訂票的航班號:");</p><p>  scanf("%s",sf); //讀取訂票的航班號</p><p>  fo

57、r(i=0;i<js;i++)</p><p><b>  {</b></p><p>  if(strcmp(sf,a[i].airnum)==0)</p><p><b>  {</b></p><p>  printf("航班號:%s 起飛時間:%s 起飛地:%s 目的地:%s

58、 座位數(shù)量:%d 空座數(shù)量:%d\n",a[i].airnum,a[i].time,a[i].start,a[i].over,a[i].num,a[i].lastseatnum);</p><p>  if(a[i].seats==0)</p><p>  printf("對不起!該航班機票已售完。\n");</p><p><b

59、>  else</b></p><p><b>  {</b></p><p>  printf("1.預(yù)訂該航班機票\n2.取消\n");</p><p>  scanf("%d",&xz);</p><p>  if(xz==1)

60、 </p><p><b>  {</b></p><p>  for(zws=0;zws<seatmax;zws++)</p><p><b>  {</b></p><p>  if(a[i].seats[zws].mark==0)</p><p>  prin

61、tf("%d ",zws+1);</p><p><b>  }</b></p><p>  printf("\n");</p><p>  printf("請從以上選擇座位號:");</p><p>  scanf("%d",&j)

62、;</p><p>  printf("\n請輸入訂票人的姓名:");</p><p>  scanf("%s",a[i].seats[j-1].name); //讀取姓名</p><p>  printf("\n請輸入訂票人的身份證號碼:");</p><p>  

63、scanf("%s",a[i].seats[j-1].IDcard); //讀取身份證號碼</p><p>  printf("\n訂票成功!訂票信息如下:\n");</p><p>  printf("航班號:%s 起飛時間:%s 起飛地:%s 目的地:%s 座位數(shù)量:%d 空座數(shù)量:%d\n",a[i].airnum,a[i

64、].time,a[i].start,a[i].over,a[i].seats,a[i].lastseatnum);</p><p>  printf("祝您旅途愉快!");</p><p><b>  break;</b></p><p><b>  }</b></p><p>

65、<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3.2.6 退票模塊</p><p>  圖 3.6 退票流程圖&l

66、t;/p><p><b>  程序:</b></p><p>  else if(t==5) //刪除訂票預(yù)約</p><p><b>  {</b></p><p>  char g[10];</p><p>  char r[20];</p><p&g

67、t;  printf("請輸入你要退訂的航班號:");</p><p>  scanf("%s",g);</p><p>  printf("輸入退訂人身份證:");</p><p>  scanf("%s",r);</p><p>  for(i=0;i<

68、js;i++)</p><p><b>  {</b></p><p>  if(strcmp(g,a[i].airnum)==0)</p><p><b>  {</b></p><p>  for(zws=0;zws<seatmax;zws++)</p><p>&

69、lt;b>  {</b></p><p>  if(strcmp(r,a[i].seats[zws].IDcard)==0)</p><p><b>  {</b></p><p>  a[i].seats[zws].mark=0;</p><p>  a[i].lastseatnum++;</p

70、><p><b>  }</b></p><p><b>  }</b></p><p>  printf("操作成功,您已刪除預(yù)訂機票,歡迎再次乘坐。\n");</p><p><b>  break;</b></p><p><

71、b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3.2.7 航班信息的保存模塊</p><p>  圖 3.7 航班信息的保存流程圖</p><p><b>  程序:<

72、/b></p><p>  else if(t==6) //航班信息的保存</p><p><b>  {</b></p><p><b>  FILE *p;</b></p><p>  p=fopen("飛機訂票系統(tǒng).dat","w");<

73、;/p><p>  fprintf(p,"%d\n",js);</p><p>  for(i=0;i<js;i++)</p><p><b>  {</b></p><p>  fprintf(p,"%s %s %s %s %d %d\n",a[i].airnum,a[i].s

74、tart,a[i].over,a[i].time,a[i].num,a[i].lastseatnum);</p><p>  for(zws=0;zws<seatmax;zws++)</p><p>  fprintf(p,"%d %s %s\n",a[i].seats[zws].mark,a[i].seats[zws].name,a[i].seats[zws].

75、IDcard);</p><p><b>  }</b></p><p>  fclose(p);</p><p><b>  }</b></p><p>  3.2.8 航班信息的退出模塊</p><p>  else if(t==7) //退出系統(tǒng)</p>

76、<p><b>  break;</b></p><p><b>  4. 系統(tǒng)調(diào)試</b></p><p> ?。?)程序編寫過程中對函數(shù)調(diào)用不熟悉,子函數(shù)調(diào)用不到位,根據(jù)題設(shè)條件不斷改進才逐步完善。</p><p>  (2)結(jié)構(gòu)語句編寫錯誤,不能準確把握在哪里終止,但通過書上的例題可以掌握。</p&

77、gt;<p> ?。?)程序編寫時容易出現(xiàn)一些小錯誤,比如沒有分號、缺了大括號等等,需要編寫完后仔細檢查。</p><p> ?。?)程序運行雖然沒有錯誤,不能達到想要的效果,這時就需要借鑒大家的意見,共同商討最佳的答案。</p><p><b>  5. 運行結(jié)果</b></p><p><b>  (1) 主菜單:&

78、lt;/b></p><p><b>  圖5.1 主菜單</b></p><p><b>  (2)輸入界面:</b></p><p><b>  圖5.2 輸入界面</b></p><p><b>  (3)查找界面:</b></p>

79、<p><b>  圖5.3 查找界面</b></p><p><b>  (4)輸出界面:</b></p><p><b>  圖5.4 輸出界面</b></p><p>  (5)訂票預(yù)約界面:</p><p>  圖5.5 訂票預(yù)約界面</p>

80、<p>  (6)刪除訂票預(yù)約界面:</p><p>  圖5.6 刪除訂票預(yù)約界面</p><p>  (7)航班信息保存界面:</p><p>  圖5.7 航班信息保存界面</p><p>  (8)退出系統(tǒng)界面:</p><p>  圖5.8 退出系統(tǒng)界面</p><p>&

81、lt;b>  6. 心得體會</b></p><p>  在這為期兩周的C語言課程設(shè)計中,我不敢說我是完全靠自己第能力完成的,有借鑒過,不過我可以說大部分都是自己獨立完成的,當(dāng)然還會通過老師和同學(xué)的幫助,來使這個程序更加完善。在開始做課設(shè)之前,因為已經(jīng)接觸過類似的程序,所以做起來就像對比較簡單些,之前的程序設(shè)計中,我也是憑著自己僅僅知道的一點知識再加上詢問老師和同學(xué),讓我知道了更多有關(guān)于C設(shè)計時

82、的一些知識。</p><p>  通過這次課程設(shè)計,我覺得我對C語言又有了進一步的了解,因為這次課程設(shè)計,我得到了更多的上機操作機會,于此同時我對word文檔的使用也更加熟練了。制作圖表、繪制流程圖、版面的排版等都有了更深一步的了解。而在C語言程序設(shè)計方面呢,則是對VC++6.0這個軟件的操作更加熟練了。不過有一點不太好,就是我不會使用“調(diào)試”這個功能,應(yīng)該說基本上就不懂。再設(shè)計的過程中,我遇到了不少問題,有些因

83、為自己的疏忽,老是缺胳膊少腿的,最后導(dǎo)致程序的無法運行。經(jīng)過一翻整修之后,總算是完成了我想要的程序了。體會到了學(xué)習(xí)編程的辛苦,為了一個算法的實現(xiàn)而思考,為了一個小小的編譯錯誤而花時間去尋找,這需要很大的毅力和耐心,而且要有良好的思維,這才使得我完成這個任務(wù),也使我感到一分喜悅,畢竟自己完成了一個有模有樣的程序。于此,我也發(fā)現(xiàn)自己的一些不足,比如,對讀程序還不夠熟練,對有些語句還沒有掌握,再者,自己在指法上還不行,打字過慢而直接影響閱讀速

84、度,特別是在運行程序時所出現(xiàn)的錯誤很難順利的去找出來并加以糾正,等等。同時,良好的編程習(xí)慣的養(yǎng)成,堅定的毅力和耐心仍是我要加強的,同別人的交流也是必須的,這樣才能不斷使我進步。通</p><p><b>  7. 附錄</b></p><p><b>  7.1 參考書目</b></p><p>  [1]譚浩強著.C程序

85、設(shè)計(第四版).北京:清華大學(xué)出版,2010.6</p><p>  [2]譚浩強著.C程序設(shè)計學(xué)習(xí)輔導(dǎo)(第四版).北京:清華大學(xué)出版,2010.6</p><p><b>  7.2 源程序</b></p><p>  #include<stdio.h> //標準輸入、輸出頭文件</p><p> 

86、 #include<string.h> //包含字符串函數(shù)處理頭文件</p><p>  #include<stdlib.h></p><p>  #define airnummax 6 //航班數(shù)最大值</p><p>  #define seatmax 18 //座位數(shù)最大值</p><p>  str

87、uct w //座位信息結(jié)構(gòu)體</p><p><b>  {</b></p><p>  int mark; //作為預(yù)定標記,已預(yù)定值為1,未預(yù)定值為0</p><p>  char name[10]; //訂票人姓名</p><p>  char IDcard[20];

88、//訂票人身份證號</p><p><b>  };</b></p><p>  struct airplant //定義結(jié)構(gòu)體數(shù)值</p><p><b>  {</b></p><p>  char start[30]; //起始站</p><p>  char

89、over[30]; //終點站</p><p>  char time[20]; // 起飛時間</p><p>  char airnum[10]; //航班號</p><p>  int lastseatnum; //空座數(shù)量</p><p><b>  int num;</b></p>&l

90、t;p>  struct w seats[seatmax]; //座位信息</p><p>  }a[airnummax];</p><p>  void main() //主函數(shù)</p><p><b>  {</b></p><p>  int i,zws,js,t;</p>

91、<p>  for(i=0;i<airnummax;i++)//給座位信息賦初始值,解決二次運行時,讀取錯誤。</p><p><b>  {</b></p><p>  for(zws=0;zws<seatmax;zws++)</p><p><b>  {</b></p><

92、p>  a[i].seats[zws].mark=0;</p><p>  a[i].seats[zws].name[0]='0';</p><p>  a[i].seats[zws].IDcard[0]='0';</p><p><b>  }</b></p><p><b&

93、gt;  }</b></p><p>  FILE *p; //創(chuàng)建文件</p><p>  p=fopen("飛機訂票系統(tǒng).dat","r");</p><p>  if(p==NULL)</p><p><b>  {js=0;}</b></p&g

94、t;<p><b>  else</b></p><p><b>  {</b></p><p>  fscanf(p,"%d",&js);</p><p>  for(i=0;i<js;i++)</p><p><b>  {</b&

95、gt;</p><p>  fscanf(p,"%s %s %s %s %d %d",a[i].airnum,a[i].start,a[i].over,a[i].time,&a[i].num,&a[i].lastseatnum);</p><p>  for(zws=0;zws<seatmax;zws++)</p><p>

96、  fscanf(p,"%d %s %s",&a[i].seats[zws].mark,a[i].seats[zws].name,a[i].seats[zws].IDcard);</p><p><b>  }</b></p><p>  fclose(p);</p><p><b>  }</b&g

97、t;</p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  printf(" ********************************\n"); //輸出菜單</p><p>  printf(&

98、quot; -------請輸入你的選擇: ---------\n");</p><p>  printf(" -------1、輸入航班信息:---------\n");</p><p>  printf(" -------2、查找航班信息:---------\n");</p&g

99、t;<p>  printf(" -------3、輸出航班信息:---------\n");</p><p>  printf(" -------4、訂票預(yù)約:-------------\n");</p><p>  printf(" -------5、刪除訂票預(yù)約:--

100、-------\n");</p><p>  printf(" -------6、航班信息的保存:-------\n");</p><p>  printf(" -------7、退出系統(tǒng):-------------\n");</p><p>  printf("

101、 ********************************\n");</p><p>  scanf("%d",&t);</p><p>  if(t==1) //輸入模塊</p><p><b>  {</b></p><p>  for(i=js;

102、i<airnummax;i++)</p><p><b>  {</b></p><p><b>  char u;</b></p><p>  printf("請輸入航班號的信息\n");</p><p>  scanf("%s",a[i].airnu

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

104、"%s",a[i].over);</p><p>  printf("請輸入時間:"); //讀取飛機起飛時間</p><p>  scanf("%s",a[i].time);</p><p>  printf("請輸入座位數(shù)量:"); //讀取座位數(shù)量<

105、;/p><p>  scanf("%d",&a[i].num);</p><p>  a[i].lastseatnum=a[i].num;</p><p>  printf("\n"); js++;</p><p>  printf("是否要繼續(xù):Y或N\n"); &

106、lt;/p><p>  scanf("%c",&u);</p><p>  scanf("%c",&u);</p><p>  if(u!='y' && u!='Y') //判斷是否繼續(xù)</p><p><b>  break;&l

107、t;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(t==2) //查詢模塊</p><p><b>  {</b></p><p>  int n=0; cha

108、r h[20];</p><p>  printf("請輸入你要找的航班號:\n");//輸入需要查詢的航班號</p><p>  scanf("%s",h);</p><p>  for(i=0;i<js;i++)</p><p><b>  {</b></p>

109、<p>  if(strcmp(h,a[i].airnum)==0)</p><p><b>  {</b></p><p>  printf("你要找的航班信息如下:\n");</p><p>  printf("%s %s %s %s %d %d",a[i].airnum,a[i].st

110、art,a[i].over,a[i].time,a[i].num,a[i].lastseatnum);</p><p>  printf("\n");</p><p><b>  n=1;</b></p><p><b>  break;</b></p><p>  }

111、 </p><p><b>  }</b></p><p><b>  if(n=0)</b></p><p>  printf("沒有您要查找的航班!請輸入正確的航班號!");</p><p><b>  }</b></p><

112、;p>  else if(t==3) //輸出模塊</p><p><b>  {</b></p><p>  printf("航班信息如下:\n");</p><p>  for(i=0;i<js;i++)</p><p><b>  {</b></p

113、><p>  printf("起點站: ");printf("%s\n",a[i].start); //輸出起始站</p><p>  printf("終點站: ");printf("%s\n",a[i].over); //輸出終點站</p><p>  printf("時間

114、: ");printf("%s\n",a[i].time); //輸出起飛時間</p><p>  printf("座位數(shù)量: ");printf("%d\n",a[i].num);// 輸出座位數(shù)量</p><p>  printf("空座數(shù)量: ");printf("%d\n&q

115、uot;,a[i].lastseatnum);//輸出空座數(shù)量</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(t==4) //訂票預(yù)約模塊</p>

116、;<p><b>  {</b></p><p>  int j,xz; char sf[10];</p><p>  printf("輸入要訂票的航班號:");</p><p>  scanf("%s",sf); //讀取訂票的航班號</p><

117、;p>  for(i=0;i<js;i++)</p><p><b>  {</b></p><p>  if(strcmp(sf,a[i].airnum)==0)</p><p><b>  {</b></p><p>  printf("航班號:%s 起飛時間:%s 起飛地

118、:%s 目的地:%s 座位數(shù)量:%d 空座數(shù)量:%d\n",a[i].airnum,a[i].time,a[i].start,a[i].over,a[i].num,a[i].lastseatnum);</p><p>  if(a[i].seats==0)</p><p>  printf("對不起!該航班機票已售完。\n");</p><

119、p><b>  else</b></p><p><b>  {</b></p><p>  printf("1.預(yù)訂該航班機票\n2.取消\n");</p><p>  scanf("%d",&xz);</p><p>  if(xz==1)

120、 </p><p><b>  {</b></p><p>  for(zws=0;zws<seatmax;zws++)</p><p><b>  {</b></p><p>  if(a[i].seats[zws].mark==0)</p><p

121、>  printf("%d ",zws+1);</p><p><b>  }</b></p><p>  printf("\n");</p><p>  printf("請從以上選擇座位號:");</p><p>  scanf("%d&quo

122、t;,&j);</p><p>  printf("\n請輸入訂票人的姓名:");</p><p>  scanf("%s",a[i].seats[j-1].name); //讀取姓名</p><p>  printf("\n請輸入訂票人的身份證號碼:");</p>&

123、lt;p>  scanf("%s",a[i].seats[j-1].IDcard); //讀取身份證號碼</p><p>  printf("\n訂票成功!訂票信息如下:\n");</p><p>  printf("航班號:%s 起飛時間:%s 起飛地:%s 目的地:%s 座位數(shù)量:%d 空座數(shù)量:%d\n",a[i].

124、airnum,a[i].time,a[i].start,a[i].over,a[i].seats,a[i].lastseatnum);</p><p>  printf("祝您旅途愉快!");</p><p><b>  break;</b></p><p><b>  }</b></p>

125、<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(t==5)</p><p>&l

126、t;b>  {</b></p><p>  char g[10];</p><p>  char r[20];</p><p>  printf("請輸入你要退訂的航班號:");</p><p>  scanf("%s",g);</p><p>  printf

127、("輸入退訂人身份證:");</p><p>  scanf("%s",r);</p><p>  for(i=0;i<js;i++)</p><p><b>  {</b></p><p>  if(strcmp(g,a[i].airnum)==0)</p>

128、<p><b>  {</b></p><p>  for(zws=i;zws<js-1;zws++)</p><p><b>  {</b></p><p>  a[i].seats[zws].mark=0;</p><p>  a[zws].lastseatnum++; &

129、lt;/p><p><b>  }</b></p><p>  printf("操作成功,您已刪除預(yù)訂機票,歡迎再次乘坐。\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p>

130、;<b>  }</b></p><p><b>  }</b></p><p>  else if(t==6)</p><p><b>  {</b></p><p><b>  FILE *p;</b></p><p>  p

131、=fopen("飛機訂票系統(tǒng).dat","w");</p><p>  fprintf(p,"%d\n",js);</p><p>  for(i=0;i<js;i++)</p><p><b>  {</b></p><p>  fprintf(p,&q

132、uot;%s %s %s %s %d %d\n",a[i].airnum,a[i].start,a[i].over,a[i].time,a[i].num,a[i].lastseatnum);</p><p>  for(zws=0;zws<seatmax;zws++)</p><p>  fprintf(p,"%d %s %s\n",a[i].seats

133、[zws].mark,a[i].seats[zws].name,a[i].seats[zws].IDcard);</p><p><b>  }</b></p><p>  fclose(p);</p><p><b>  }</b></p><p>  else if(t==7)</p>

134、;<p><b>  break;</b></p><p><b>  else </b></p><p>  printf("對不起,沒有該選項!");</p><p><b>  }</b></p><p><b>  }<

溫馨提示

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

評論

0/150

提交評論