民航票务管理系统-C语言--录入,查询,订票,退票,修改航班信息以及主菜单和子菜单。

这篇具有很好参考价值的文章主要介绍了民航票务管理系统-C语言--录入,查询,订票,退票,修改航班信息以及主菜单和子菜单。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述:

我的课程设计题目为民航票务管理系统,其目的是为了便利人们购买飞机票的过程为广大人民群众提供便利,本系统主要为订票者提供订票服务以及相关的信息服务。同时增加了我对于程序设计的理解以及对于 C 语言的熟练度。

  1. 录入:可以录入已知航班情况;
  2. 查询:可以查询某个航班情况:
    1. 通过航班号查询;
    2. 通过起飞城市查询;
    3. 通过抵达城市查询;

         然后显示航班信息(航班号,航班的起降时间、起飞抵达城市、航班票 价、票价折扣、                 以及所剩余的票数);

    3.订票:通过起飞城市和抵达城市选择合适的航班并生成订单编号,如果该航班已经无票可 订,系统会提示选择其他航班并提供相关信息;

    4.退票:退票时要求客户提供姓名、证件号,并返回该退票航班现航班信息(航班号,航班的起降时间、起飞抵达城市、航班票价、票价折扣、以及所剩余的票数);

    5.修改:修改航班的数据信息:

  1. 修改航班的起飞时间;
  2. 修改航班的降落时间;
  3. 修改航班的起飞城市;
  4. 修改航班的降落城市;
  5. 修改航班的机票价格;
  6. 修改航班的票价折扣;

     6.退出:退出民航票务管理系统;

 全部代码的实现:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>//注意所写函数需要的头函数;
#define N 10//n为航班数;
void Menu();//总菜单;
void input();//录入航班信息;
void seek();//查寻航班信息;
void booking();//订票
void refund();//退票
void revamp();//修改航班信息;
void exit();//退出程序;
int n,i;
struct Flight
{
    int number;//航班号
    char departureTime[20];//起飞时间
    char landingTime[20];//降落时间
    char takeoffCity[40];//起飞城市
    char arriveCity[40];//降落城市
    int price;//飞机票价
    float discount;//票价折扣
    int seat;//座位数量
} fly[N];
struct Flight t;
typedef struct idcard
{
    long long int sfz;//身份证号
    char name[20];//姓名
    int count;//购票数量
    int number;//航班号
} idcard;

int main()
{
    printf("请输入当前航班总数:");
    scanf("%d",&n);
    int *p;
    p=(int *)malloc(n*sizeof(int));
    if(p==NULL)exit(0);
    else while(1)
        {
            Menu();
        }
    system("pause");
    free(p);
    return 0;
}
void Menu()//总菜单;
{
    printf("\n");
    printf("\t欢迎来到民航票务管理系统\n\n");
    printf("\t    民航主系统菜单 \n");
    printf("\t   1.录入航班信息\n");
    printf("\t   2.查询航班信息\n");
    printf("\t   3.航班订票    \n");
    printf("\t   4.航班退票    \n");
    printf("\t   5.修改航班信息\n");
    printf("\t   6.退出航班系统\n");
    printf("\n");
    printf("请输入你所需要的菜单编号:");
    printf("\n");
    int menu;
    scanf("%d",&menu);
    switch(menu)
    {
    case 1:
        input();
        break;
    case 2:
        seek();
        break;
    case 3:
        booking();
        break;
    case 4:
        refund();
        break;
    case 5:
        revamp();
        break;
    case 6:
        printf("即将退出程序\n");
        exit(0);
        break;
    default:
        printf("请在1-6之间选择正确的菜单编号!\n");
    }
}
void input()//录入全部航班信息;
{

    for(i=0; i<n; i++)
    {
        printf("录入的第%d趟航班的信息\n",i+1);

        printf("航班号:");
        scanf("%d",&fly[i].number);

        printf("起飞时间:");
        scanf("%s",fly[i].departureTime);

        printf("降落时间:");
        scanf("%s",fly[i].landingTime);

        printf("起飞城市:");
        scanf("%s",fly[i].takeoffCity);

        printf("降落城市:");
        scanf("%s",fly[i].arriveCity);

        printf("飞机票价:");
        scanf("%d",&fly[i].price);

        printf("票价折扣:");
        scanf("%f",&fly[i].discount);

        printf("剩余座位:");
        scanf("%d",&fly[i].seat);
        printf("\n");
    }
    printf("\n");
    system("pause");
}
void booking()//订票
{
    char x[20];
    char y[20];
    int k=0;
    long long int m;
    printf("请输入你的航班起飞城市\n");
    scanf("%s",x);
    printf("请输入你的航班抵达城市\n");
    scanf("%s",y);
    for(i=0; i<n; i++)
    {
        if(strcmp(fly[i].takeoffCity,x)&&strcmp(fly[i].arriveCity,y))
        {
            i=i-1;
            printf("订票成功");
            m=202215060123+i;
            printf("你的订单编号为:%lld\n",m);//当整数较大时输入要用long long
            printf("你选择的航班信息为\n");
            fly[i].seat=fly[i].seat-1;
            printf(" 航班编号为:%d \n 航班起飞时间为:%s \n 航班降落时间为:%s \n 航班起飞城市为:%s \n 航班降落城市为: %s \n 航班票价为:%d \n 航班票价折扣为:%f \n 航班剩余位置为:%d \n",fly[i].number,fly[i].departureTime,fly[i].landingTime,
                   fly[i].takeoffCity,fly[i].arriveCity,fly[i].price,fly[i].discount,fly[i].seat);
            k=1;
            break;
        }
    }
    if(k==0)
    {
        printf("没有合适航班,请耐心等待或选择其他航班");
    }
    system("pause");
}
void refund()//退票
{
    int g;
    int k;
    char h[20];
    long long int j;
    printf("请输入你的航班班号\n");
    scanf("%d",&g);
    for(i=0; i<n; i++)
    {
        if(fly[i].number==g)
        {
            printf("请输入你的资料");
            printf("姓名:");
            scanf("%s",h);
            printf("身份证号:");
            scanf("%lld",&j);
            fly[i].seat=fly[i].seat+1;
            printf("你所要退订的航班信息现在为\n");
            printf("航班编号为:%d \n 航班起飞时间为:%s \n 航班降落时间为:%s \n 航班起飞城市为:%s \n 航班降落城市为: %s \n 航班票价为:%d \n 航班票价折扣为:%f \n 航班剩余位置为:%d \n",fly[i].number,fly[i].departureTime,fly[i].landingTime,
                   fly[i].takeoffCity,fly[i].arriveCity,fly[i].price,fly[i].discount,fly[i].seat);
            printf("退票成功!");
            k=1;
            break;
        }
    }
    if(k==0)
    {
        printf("请输入正确的航班班号!");
    }
    system("pause");
}

void seek()//查询航班信息;
{
    int m;
    int k=0;
    int a;
    char b[20];
    char c[20];
    printf("------------查询航班信息--子菜单----------\n");
    printf("-----------1.通过航班的航班号查询-----------\n");
    printf("-----------2.通过航班起飞城市查询-----------\n");
    printf("-----------3.通过航班抵达城市查询-----------\n");
    printf("-----------4.退出航班信息子菜单-----------\n");
    printf("请输入你所需要的子菜单编号:");
    scanf("%d",&m);
    switch(m)
{

    case 1:
        printf("请输入待查询的航班号:");
        scanf("%d",&a);
        for(i=0; i<n; i++)
        {
            if(fly[i].number==a)
            {
                printf("航班编号为:%d \n 航班起飞时间为:%s \n 航班降落时间为:%s \n 航班起飞城市为:%s \n 航班降落城市为: %s \n 航班票价为:%d \n 航班票价折扣为:%f \n 航班剩余位置为:%d \n",fly[i].number,fly[i].departureTime,fly[i].landingTime,
    fly[i].takeoffCity,fly[i].arriveCity,fly[i].price,fly[i].discount,fly[i].seat);
                k=1;
                break;
            }
        };
        if(k==0)
        {
            printf("该航班号不存在,请重新输入!\n");
        }
        break;
    case 2:
        printf("请输入航班起飞城市:");
        scanf("%s",b);
        for(i=0; i<n; i++)
        {
            if(strcmp (fly[i].takeoffCity,b)==0)//要注意int型和char型的比较方法完全不同;
            {
                printf("航班编号为:%d \n 航班起飞时间为:%s \n 航班降落时间为:%s \n 航班起飞城市为:%s \n 航班降落城市为: %s \n 航班票价为:%d \n 航班票价折扣为:%f \n 航班剩余位置为:%d \n",fly[i].number,fly[i].departureTime,fly[i].landingTime,
                       fly[i].takeoffCity,fly[i].arriveCity,fly[i].price,fly[i].discount,fly[i].seat);
            }
        };
        if(k==0)
        {

            printf("该航班起飞城市不存在,请重新输入!\n");
        }
        break;
    case 3:
        printf("请输入航班抵达城市:");
        scanf("%s",c);
        for(i=0; i<n; i++)
        {
            if(strcmp (fly[i].arriveCity,c)==0)//要注意int型和char型的比较方法完全不同;
            {
                printf("航班编号为:%d \n 航班起飞时间为:%s \n 航班降落时间为:%s \n 航班起飞城市为:%s \n 航班降落城市为: %s \n 航班票价为:%d \n 航班票价折扣为:%f \n 航班剩余位置为:%d \n",fly[i].number,fly[i].departureTime,fly[i].landingTime,
                       fly[i].takeoffCity,fly[i].arriveCity,fly[i].price,fly[i].discount,fly[i].seat);
                k=1;
                break;
            }
        };
        if(k==0)
        {
            printf("该航班抵达城市不存在,请重新输入!\n");
        }
        break;

    case 4:
        break;
    default:
        printf("请在1-6之间选择正确的菜单编号!\n");

    }
    system("pause");
}
void revamp()//修改航班信息;
{
    int t,a;
    int k=0;
    char s[20];
    char q[20];
    char l[20];
    char w[20];
    float p;
    int b;
    printf("请输入你想要修改航班信息的航班号:");
    scanf("%d",&b);
    for(i=0; i<n; i++)
    {
        if(fly[i].number==b)
        {

            printf("-------------修改航班信息--子菜单------------\n");
            printf("-------------1.修改航班的起飞时间------------\n");
            printf("-------------2.修改航班的降落时间------------\n");
            printf("-------------3.修改航班的起飞城市------------\n");
            printf("-------------4.修改航班的降落城市------------\n");
            printf("-------------5.修改航班的机票价格------------\n");
            printf("-------------6.修改航班的票价折扣------------\n");
            printf("-------------7.退出航班信息子菜单------------\n");

            while(a!=7)
            {
                printf("请输入你所需要的子菜单序号:");
                scanf("%d",&a);
                switch(a)
                {

                case 1:
                    printf("请输入所要替换的起飞时间:");
                    scanf("%s",s);
                    strcpy( fly[i].departureTime,s);
                    printf("修改成功");
                    break;
                case 2:
                    printf("请输入所要替换的降落时间:");
                    scanf("%s",q);
                    strcpy(fly[i].landingTime,q);
                    printf("修改成功");
                    break;
                case 3:
                    printf("请输入所要替换的起飞城市:");
                    scanf("%s",l);
                    strcpy( fly[i].takeoffCity,l);
                    printf("修改成功");
                    break;
                case 4:
                    printf("请输入所要替换的降落城市:");
                    scanf("%s",w);
                    strcpy(fly[i].departureTime,w);
                    printf("修改成功");
                    break;
                case 5:
                    printf("请输入所要替换的机票价格:");
                    scanf("%d",&t);
                    fly[i].discount=t;
                    printf("修改成功");
                    break;
                case 6:
                    printf("请输入所要替换的机票折扣:");
                    scanf("%f",&p);
                    fly[i].discount=p;
                    printf("修改成功");
                    break;
                case 7:
                    printf("即将退出航班信息子菜单");
                    break;
                default:
                    printf("请正确输入你所需要的选项!\n");

                }
                k=1;
            }
            break;
        }
    }
    if(k==0)
    {
        printf("请输入正确的航班信息!\n");
    }
    system("pause");
}

ADM的定义:

int number;//航班号文章来源地址https://www.toymoban.com/news/detail-532395.html

char departureTime[20];//起飞时间

char landingTime[20];//降落时间

char takeoffCity[40];//起飞城市

char arriveCity[40];//降落城市

int price;//飞机票价

float discount;//票价折扣

int seat;//座位数量

long long int sfz;//身份证号

char name[20];//姓名

int count;//购票数量

int number;//航班号

到了这里,关于民航票务管理系统-C语言--录入,查询,订票,退票,修改航班信息以及主菜单和子菜单。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包