工控论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12|回复: 0

C语言飞机订票系统源代码

[复制链接]

190

主题

191

帖子

24

积分

初级会员

Rank: 2

工控币
24
发表于 2020-6-9 22:03:56 | 显示全部楼层 |阅读模式
任务:通过此系统可以实现如下功能:
录入: 可以录入航班情况(数据可以存储在一个数据文件中)
浏览:航班信息浏览功能需要提供显示操作;
查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。

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

  4. struct flight             /*结构体存放航班信息的结构*/
  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];/*定义结构体变量*/

  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()    /*输出文件内容结构*/
  33. {
  34.         printf("\n\tNO.          startstation  endstation         flytime  plan_ticket        sell_ticket\n");
  35. }


  36. int load()/*载入函数实现文件内容载入程序,并返回飞机航班数值*/
  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()    /*返回退出函数实现程序退出、返回*/
  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. /*********************************主函数***********************************/
  144. main()
  145. {
  146.         menu();/*菜单函数的功能是替主函数调用个功能模块函数*/
  147. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

免责声明: 工控技术网(www.eleok.com)所有内容均为网友自行发布,不代表网站立场。如有版权纠纷,请联系本站删除:1370723259@qq.com

QQ|小黑屋|手机版|工控技术网 |网站地图

GMT+8, 2020-7-11 00:22

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表