文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言如何实现飞机售票系统

2023-06-30 17:35

关注

本文小编为大家详细介绍“C语言如何实现飞机售票系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现飞机售票系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、项目简介

通过“航空售票系统”C语言课程设计的实践,掌握函数、数据的读取和存储。熟练链表的操作,为后期学习打下基础。

二、任务概述

(1) 将飞机坐位分为20排,每排4个位子。
(2) 系统可让乘客自己选座号和区域,直到乘客满意为止。
(3) 若无法满足的话,改乘另一个航班。
(4) 定上票的乘客需给出姓名和身份证号。
(5) 要求打印出乘客信息。

三、功能展示

C语言如何实现飞机售票系统

C语言如何实现飞机售票系统

C语言如何实现飞机售票系统

C语言如何实现飞机售票系统

四、思维导图

C语言如何实现飞机售票系统

五、程序源码

#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 100typedef struct plane{     char ID[10];      char BePlace[10];     char EnPlace[10];     char data[15];     int max;     int num;}PLANE;PLANE ti[N];typedef struct user{     char name[20];     int number;     char id[20];     char seat[3];         }USER;USER si[N];int n,n1;int e,r;void menu();void menu1();void input(int i) {     printf("请输入航班代号:\n");     scanf("%s",ti[i].ID);          printf("请输入起飞地点:\n");     scanf("%s",ti[i].BePlace);          printf("请输入降落地点:\n");     scanf("%s",ti[i].EnPlace);          printf("请输入起飞时间:\n");     scanf("%s",ti[i].data);          printf("请输入最大座位:\n");     scanf("%d",&ti[i].max);     ti[i].num=0;}void enter() {     int i;     system( "cls" );      n1=0;     n=n+n1;     printf("请输入航班的数目:");     scanf("%d",&n1);      printf("\n请输入数据(原已有%d趟航班)\n\n",n);     for(i=n;i<n+n1;i++)     {         printf("\n请输入第 %d 航班记录.\n",i+1);         input(i);      }     getchar();     menu();}void printf_one(int i) {     printf("\t%-8s %-8s %-8s %-8s %-8d %-8d ",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].max,ti[i].num);}void dele(int k) {     int i;     for(i=(k+1);i<N;i++){     strcpy(si[k].name,si[k+1].name);     si[k].number=si[k+1].number;     strcpy(si[k].id,si[k+1].id);}}int shanchu(struct plane a) {     int i;     for(i=0;i<N;i++)     {         if(strcmp(a.ID,si[i].id)==0)         {             dele(i);         }     }     return i;}int browse() {     int i;     r=0;     system( "cls" );     puts("\n\t------------------------------航班浏览------------------------------");     printf("\n\t航班代号 起飞地点 降落地点 起飞时间 最大乘客 已售票数\n");     for(i=0;i<n+n1;i++)     {         r=r+ti[i].num;     }     for(i=0;i<n+n1-r-2;i++)     {         printf_one(i);         printf("\n");     }     getchar();     getchar();     menu();     return i;}void search_time() {     int i,m=0;     struct plane s;     system( "cls" );     printf("\n\nEnter the time:");     scanf("%s",s.data);      puts("\n--------------------------------------------------------------------");     printf("\n\t航班代号 起飞地点 降落地点 起飞时间 最大乘客 已售票数\n");     for(i=0;i<n+n1;i++)     {         if(strcmp(s.data,ti[i].data)==0)         {            m++;            if((m!=0)&&(m%10==0))             {                printf("\n\nPress any key to contiune . . .");                getchar();                puts("\n\n");            }         printf_one(i);         printf("\n");          }     }     puts("\n--------------------------------------------------------------------");     getchar();      getchar();     menu1();}void serch_end() {     int i,m=0;     struct plane s;     system( "cls" );     printf("\n\nEnter the end Place:");     scanf("%s",s.EnPlace);      puts("\n--------------------------------------------------------------------");     printf("\n\t航班代号 起飞地点 降落地点 起飞时间 最大乘客 已售票数\n");     for(i=0;i<n+n1;i++)     {         if(strcmp(ti[i].EnPlace,s.EnPlace)==0)         {             m++;             if((m!=0)&&(m%10==0))              {                 printf("\n\nPress any key to contiune . . .");                 getchar();                 puts("\n\n");             }             printf_one(i);             printf("\n");          }     }     puts("\n--------------------------------------------------------------------");     getchar();      getchar();     menu1();}void menu1() {     int n,w1;     do    {        system( "cls" );         puts("\t\t\t\t 飞机售票操作!\n\n");        puts("\t\t*********************MENU*********************\n\n");        puts("\t\t\t\t1.按照时间查找航班");        puts("\t\t\t\t2.按照地点查找航班");        puts("\t\t\t\t3.返回主菜单");        puts("\n\n\t\t**********************************************\n");        printf("Choice your number(1-3): [ ]\b\b");        scanf("%d",&n);        if(n<1||n>3)         {           w1=1;           printf("your choice is not between 1 and 3,Please input again:");            getchar();           getchar();        }        else w1=0;     }     while(w1==1);      switch(n)    {        case 1:search_time();break;        case 2:serch_end();break;        case 3:menu();break;    }}int search() {     int i,k;     struct plane s;     k=-1;     printf("请输入要订票的起飞地点:\n");     scanf("%s",s.BePlace);      printf("请输入要订票的降落地点:\n");     scanf("%s",s.EnPlace);     printf("请输入要订票的起飞时间:\n");     scanf("%s",s.data);      for(i=0;i<n+n1;i++)      {        if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.data,ti[i].data)==0)        {           k=i;            strcpy(s.data,ti[i].data);           printf_one(k);           break;         }     }     if(k==-1)     {       printf("\n\nNO exist!");       return -1;     }     else     return k;}void book() {     int i;     system( "cls" );     r=0;     printf("欢迎进入售票窗口!\n");     printf("飞机上有20排座位,每排有4个座位,每排分为A,B,C,D。其中A,D靠窗户。\n19,20为吸烟区。座位选择按先选排序号再选座位号");     printf("\n\n\n请输入您的姓名:\n");      scanf("%s",si[e].name);     printf("请输入您的身份证号:\n");     scanf("%d",&si[e].number);     printf("请输入你想选的座位号:\n");     scanf("%s",si[e].seat);     i=search();     if(i!=-1)     {       if(ti[i].num>=ti[i].max)       {           printf("\n该趟航班票已售完!");       }       else       {           ti[i].num++;           strcpy(si[e].id,ti[i].ID);           e++;           printf("\n订票成功!\n");        }     }     else     {         printf("该航班不存在!\n");     }     getchar();     getchar();      menu();}void back() {     int i,k=-1;     struct plane s;     char name[20];     int number;      system( "cls" );     printf("欢迎进入退票窗口!\n");     printf("\n请输入您的姓名:\n");     scanf("%s",name);     printf("请输入您的身份证号:\n");     scanf("%d",&number);     printf("\n\n输入航班代号:");     scanf("%s",s.ID);      for(i=0;i<n+n1;i++)      {         if(strcmp(s.ID,ti[i].ID)==0)        {           k=i;            printf_one(k);           break;         }     }     if(k==-1)     {        printf("\n\nNO exist!");     }     else     {        ti[i].num--;        shanchu(s);// r--;        printf("\n退票成功!\n");     }     getchar();      getchar();      menu();}void watch() {     int i;     system( "cls" );     r=0;     for(i=0;i<n+n1;i++)     {     r=r+ti[i].num;     }     printf("\n\t-------------------已售信息-------------------\n");     printf("\n\t姓 名  身份证号   座位号  已买航班代号\n");     for(i=0;i<r;i++)     {     printf("\t%-6s %-8d %8s %5s\n",si[i].name,si[i].number,si[i].seat,si[i].id);     }     printf("\n\t----------------------------------------------\n");     getchar();     getchar();     menu();}void save() {    int w=1,m=1;    r=0;    FILE *fp,*fp1;    int i,j;    system( "cls" );    if((fp=fopen("ticket.txt","wb"))==NULL)     {        printf("\nCannot open file\n");        return ;    }    for(i=0;i<n+n1;i++)    if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1)    {       printf("file write error\n");       w=0;    }    if(w==1)    {       printf("ticket file save ok!\n");    }    fclose(fp);    if((fp1=fopen("sale.txt","wb"))==NULL)     {        printf("\nCannot open file\n");        return ;    }    for(i=0;i<n+n1;i++)    {        r=r+ti[i].num;    }    for(j=0;j<=r;j++)    if(fwrite(&si[j],sizeof(struct user),1,fp1)!=1)    {       printf("file write error\n");       m=0;    }    if(m==1)    {       printf("sale file save ok!\n");    }    fclose(fp1);    getchar();    getchar();    menu();}void load() {    FILE *fp,*fp1;    int i,w,j,m;    w=1;    m=1;    system( "cls" );    if((fp=fopen("ticket.txt","rb"))==NULL)    {       printf("\nCan not open file!\n");       w=0;       return;    }    n=0;    for(i=0;!feof(fp);i++)    {       fread(&ti[i],sizeof(struct plane),1,fp);       n++;    }    n=n-1;    fclose(fp);    if(w==1)    printf("Load ticket file ok!\n");    if((fp1=fopen("sale.txt","rb"))==NULL)    {        printf("\nCan not open file\n");        m=0;        return;    }    r=0;    for(j=0;!feof(fp1);j++)    {        fread(&si[j],sizeof(struct user),1,fp1);        n++;    }    r=r-1;    fclose(fp1);    if(m==1)    printf("Load sale file ok!");    getchar();    getchar();    menu();}void menu() {     int n,w1;     do     {        system( "cls" );         puts("\t\t\t\t 航空公司售票系统!\n\n");        puts("\t\t*********************MENU*********************\n\n");        puts("\t\t\t\t1. 输入新航班");        puts("\t\t\t\t2. 浏览航班 ");        puts("\t\t\t\t3. 航班查询");        puts("\t\t\t\t4. 订票");        puts("\t\t\t\t5. 退票");        puts("\t\t\t\t6. 浏览已售信息");        puts("\t\t\t\t7. 保存");        puts("\t\t\t\t8. 载入");        puts("\t\t\t\t9. 退出");        puts("\n\n\t\t**********************************************\n");        printf("Choice your number(1-9): [ ]\b\b");        scanf("%d",&n);        if(n<1||n>9)          {           w1=1;           printf("your choice is not between 1 and 9,Please input enter to choice again:");           getchar();           getchar();        }        else w1=0;     }     while(w1==1);      switch(n)     {        case 1:enter();break;         case 2:browse();break;         case 3:menu1();break;         case 4:book();break;         case 5:back();break;         case 6:watch();break;         case 7:save();break;         case 8:load();break;         case 9:exit(0);     }}int main()  {     menu();}

读到这里,这篇“C语言如何实现飞机售票系统”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯