找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5047|回復(fù): 0
收起左側(cè)

C語言飛機(jī)訂票系統(tǒng)源代碼

[復(fù)制鏈接]
ID:773558 發(fā)表于 2020-6-9 09:40 | 顯示全部樓層 |閱讀模式
(需求分析):
任務(wù):通過此系統(tǒng)可以實現(xiàn)如下功能:
錄入: 可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中)
瀏覽:航班信息瀏覽功能需要提供顯示操作;
查詢:可提供按照航班號、起點(diǎn)站、終點(diǎn)站、飛行時間、查詢,可以查詢某個航線的情況(如,輸入航班號,起飛抵達(dá)城市,確定航班是否滿倉);另外要提供鍵盤式選擇菜單以實現(xiàn)功能選擇。
要求:根據(jù)以上功能說明,設(shè)計航班信息,訂票信息的存儲結(jié)構(gòu),設(shè)計程序完成功能�?梢越⒑桨嘟Y(jié)構(gòu)體,結(jié)構(gòu)體成員包括航班號、起點(diǎn)站、終點(diǎn)站、飛行時間、預(yù)售票總數(shù)、已售票數(shù)。

源代碼:
  1. #include<stdio.h>         /*頭文件包含命令*/
  2. #include<stdlib.h>
  3. #define N 50

  4. struct flight             /*結(jié)構(gòu)體存放航班信息的結(jié)構(gòu)*/
  5. {
  6.         int flight_no;
  7.         char startstation[20];
  8.         char endstation[20];
  9.         char flytime[10];
  10.         int plan_ticket;
  11.         int sell_ticket;
  12. }fly[N];/*定義結(jié)構(gòu)體變量*/

  13. FILE*  fp;
  14. void Browse();
  15. void printf_oneflight(int i);
  16. void menu();

  17. void input(i)      /* 把航班信息輸入到文件*/
  18. {
  19.         struct flight t;
  20.         printf("\nflight_no  startstation  endstation  flytime  plan_ticket  sell_ticket\n");
  21.         scanf("%d%s%s%s%d%d",&t.flight_no,t.startstation,t.endstation,t.flytime,&t.plan_ticket,&t.sell_ticket);
  22.         
  23.         fp=fopen("flydata.txt","ab");
  24.                   if(!fp){printf("can not open this file\n");exit(0);}
  25.           else fwrite(&t,sizeof(struct flight),1,fp);
  26.           fclose(fp);
  27. }


  28. void printf_oneflight(int i) /*輸出一個 航班信息*/
  29. {
  30.         printf("\n%5d%20s%20s%10s%4d%4d\n",fly[i].flight_no,fly[i].startstation,fly[i].endstation,fly[i].flytime,fly[i].plan_ticket,fly[i].sell_ticket);
  31. }


  32. void printf_face()    /*輸出文件內(nèi)容結(jié)構(gòu)*/
  33. {
  34.         printf("\n\tNO.          startstation  endstation         flytime  plan_ticket        sell_ticket\n");
  35. }


  36. int load()/*載入函數(shù)實現(xiàn)文件內(nèi)容載入程序,并返回飛機(jī)航班數(shù)值*/
  37. {
  38.         FILE *fp;
  39.         int i;
  40.         if((fp=fopen("flydata.txt","rb"))==NULL)
  41.         {
  42.                 printf("\nCan not open file\n");
  43.                 exit(0);
  44.         }
  45.         for(i=0;!feof(fp);i++)
  46.                 fread(&fly[i],sizeof(struct flight),1,fp);
  47.         fclose(fp);
  48.         return(i-1);
  49. }


  50. void printf_back()    /*返回退出函數(shù)實現(xiàn)程序退出、返回*/
  51. {
  52.         int w;
  53.         printf("\n\n\tSuccessful.^_^\n\n");
  54.         printf("What do you want to do?\n\n\t1).Browse all now\t2).back:[]\b\b");
  55.         scanf("%d",&w);
  56.         if(w==1)  Browse();
  57.         else menu();
  58. }


  59. void enter()/*航班信息錄入*/
  60. {
  61.         int i,n;
  62.         printf("How many flights do you want input? :[ ]\b\b");
  63.         scanf("%d",&n);
  64.         printf("\n Enter data now\n\n");
  65.         for(i=0;i<n;i++)
  66.         {
  67.                 printf("\n Input %dth float record.\n",i+1);
  68.                 input(i);
  69.         }
  70.         printf_back();
  71. }

  72. void Browse()
  73. {
  74.         int i,n;
  75.         n=load();
  76.         printf_face();
  77.         for(i=0;i<n;i++)
  78.         {
  79.                 if(i%10==0)
  80.                 {
  81.                 printf("\nPress any key to contiune ...");
  82.                 getchar();
  83.                 puts("\n\n");
  84.                 }
  85.                 puts("\n\n");
  86.                 printf_oneflight(i);
  87.         }
  88.         printf("\tThere are %d record.\n",n);
  89.         printf("\nPress any key to back ...\n");
  90.         getchar();  /*沒有返回植*/
  91.         menu();
  92. }

  93. void Search()/*查詢*/
  94. {
  95.         int m,i,flight_no,flag=0;
  96.         printf("Please input flight_no:\n");
  97.         scanf("%d",&flight_no);
  98.         m=load();
  99.         for(i=0;i<m;i++)
  100.         {
  101.                 if(flight_no==fly[i].flight_no)
  102.                 {
  103.                         flag=1;
  104.                         printf("\nThe flight message is:\n");
  105.                         printf_oneflight(i);
  106.                 }
  107.         }
  108.         if(flag==1)
  109.                 printf("Found!");
  110.         else
  111.                 printf("Not Found!");
  112.         printf_back();
  113. }


  114. void menu()
  115. {
  116.         int n,w;
  117.         do
  118.         {
  119.                 puts("\t\t***********************MENU***************************\n\n");
  120.                 puts("\t\t\t\t 1.enter new data");
  121.                 puts("\t\t\t\t 2.Browse all");
  122.                 puts("\t\t\t\t 3.Search");
  123.                 puts("\t\t\t\t 4.exit");
  124.                 puts("\n\n\t\t *******************************************************\n");
  125.                 printf("Choice your number(1-4): [ ]\b\b");
  126.                 scanf("%d",&n);
  127.                 if(n<1||n>4)
  128.                 {
  129.                         w=1;
  130.                         getchar();
  131.                 }
  132.                 else w=0;
  133.         }
  134.         while(w==1);
  135.         switch(n)
  136.         {
  137.                 case 1:enter();break;
  138.                 case 2:Browse();break;
  139.                 case 3:Search();break;
  140.                 case 4:exit(0);
  141.         }
  142. }
  143. /*********************************主函數(shù)***********************************/
  144. main()
  145. {
  146.         menu();/*菜單函數(shù)的功能是替主函數(shù)調(diào)用個功能模塊函數(shù)*/
  147. }
復(fù)制代碼

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

相關(guān)帖子

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表