民航票务管理系统(C语言实现)

#include <stdio.h>
#include <stdlib.h>
typedef struct date{
    long long int Non;//航班号
    char takeOffTime[20];//起飞时间
    char landingTime[20];//降落时间
    char startCity[40];//起飞城市
    char endCity[40];//降落城市
    float price;//飞机票价
    float discount;//票价折扣
    int seat;//座位数量
}Date;
typedef struct sfdate{
    long long int sfz;//身份证号
    char name[40];//姓名
    int number;//购票数量
    long long int Nno;//航班号
}Sfdate;
void enter(int x,Date* date){
    //录入航班信息
    for(int i=0;i<x;i++){
        printf("航班号:");
        scanf("%lld",&date[i].Non);

        printf("起飞城市:");
        scanf("%s",&date[i].startCity);
        printf("起飞时间:");
        scanf("%s",&date[i].takeOffTime);

        printf("降落城市:");
        scanf("%s",&date[i].endCity);
        printf("降落时间:");
        scanf("%s",&date[i].landingTime);

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

        printf("剩余座位:");
        scanf("%d",&date[i].seat);

    }
}
void inquire(int x,Date* date){
    long long int a;
    printf("请输入要查询的航班号:");
    scanf("%lld",&a);
    for(int i=0;i<x;i++){
        if(a==date[i].Non){
            printf("起飞城市:%s\n",date[i].startCity);
            printf("起飞时间:%s\n",date[i].takeOffTime);
            printf("降落城市:%s\n",date[i].endCity);
            printf("降落时间:%s\n",date[i].landingTime);
            printf("飞机票价:%f\n",date[i].price);
            printf("票价折扣:%f\n",date[i].discount);
            printf("剩余座位:%d\n",date[i].seat);
            return;
        }
    }
    printf("无相关航班");
}
void inquire2(int x,Date* date){
    char start[40];
    char end[40];
    printf("出发地点:");
    scanf("%s",start);
    printf("到站地点:");
    scanf("%s",end);
    for(int i=0;i<x;i++){
            int a=strcmp(date[i].startCity,start);
            int b=strcmp(date[i].endCity,end);
        if( a==0&& b==0 ){
            printf("航班号:%lld\n",date[i].Non);
            printf("起飞时间:%s\n",date[i].takeOffTime);
            printf("降落时间:%s\n",date[i].landingTime);
            printf("飞机票价:%f\n",date[i].price);
            printf("票价折扣:%f\n",date[i].discount);
            printf("剩余座位:%d\n",date[i].seat);
            printf("----------------------------------------------------");
            printf("\n");
        }else{
            printf("无相关航班");
        }
    }
}
void ticket(int x,int* count,Sfdate* sfdate,Date* date){
    printf("请输入姓名:");
    scanf("%s",&sfdate[*count].name);
    printf("请输入身份证号:");
    scanf("%lld",&sfdate[*count].sfz);
    printf("购票数量:");
    scanf("%d",&sfdate[*count].number);
    printf("请输入要购买航班的航班号:");
    scanf("%lld",&sfdate[*count].Nno);
    for(int i=0;i<x;i++){
        if(sfdate[*count].Nno==date[i].Non){
            date[i].seat=date[i].seat+sfdate[i].number;
            printf("购票成功");
            *count=*count+sfdate[*count].number;
            return;
        }
    }
    printf("没有该航班");
}
void refundTicket(int x,int* count,Sfdate* sfdate,Date* date){
    printf("请输入要退票航班的航班号:");
    long long int a;
    scanf("%lld",&a);
    int b=0;
    int c=0;
    printf("请输入要退票的数目");
    scanf("%d",&b);
    for(int i=0;i<*count;i++){
                if(a==sfdate[i].Nno){
                 c=sfdate[i].number-b;
                if(c>=0){
                         for(int i=0;i<x;i++){
                    if(a==date[i].Non){
                        date[i].seat=date[i].seat+b;
                        *count=*count-b;
                        printf("退票成功");
                        return;
                    }else{printf("输入退票数目错误");return;}
                }

                }
        }
    }
    printf("没有该航班购买信息");
}
void dateChange(int x,Date* date){
    printf("请输入要更改航班信息的航班号:");
    long long int a;
    scanf("%lld",&a);
    for(int i=0;i<x;i++){
        if(a==date[i].Non){

        printf("起飞城市:");
        scanf("%s",&date[i].startCity);
        printf("起飞时间:");
        scanf("%s",&date[i].takeOffTime);

        printf("降落城市:");
        scanf("%s",&date[i].endCity);
        printf("降落时间:");
        scanf("%s",&date[i].landingTime);

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

        printf("剩余座位:");
        scanf("%d",&date[i].seat);
        printf("信息修改成功");
            return;
        }
    }
    printf("没有该航班信息");
}
int main()
{
    Date *date;
	date=(Date *)malloc(100*sizeof(Date));
	Sfdate *sfdate;
	sfdate=(Sfdate *)malloc(100000*sizeof(Sfdate));
	int count=0;//记录买票人数
    int x;
    printf("请输入要录入的航班数量:");
    scanf("%d",&x);
    enter(x,date);//录入航班信息
    //inquire(x,a,date);
    int j;
while(1)
{
system("cls");//清屏
printf("\n\n\n\t\t\t 欢迎使用民航票务管理系统\n\n\n");
printf("\t\t\t***************************\n");
printf("\t\t\t*          主菜单         *\n");
printf("\t\t\t***************************\n\n\n");
printf("\t\t         1 航班号查找航班信息   2 出发地--抵达地查询\n\n");
printf("\t\t         3 订票   4 退票\n\n");
printf("\t\t         5 修改航班信息 6 退出系统  \n\n");
printf("\t\t         请选择[1/2/3/4/5/6]:\n");
scanf("%d",&j);
switch(j)
{
case 1:printf("\t\t\t请输入航班号:\n");inquire(x,date);break;
case 2:printf("\t\t\t请输入出发地和目的地\n");inquire2(x,date);break;
case 3:printf("\t\t\t\n");ticket(x,&count,sfdate,date);break;
case 4:printf("\t\t\t\n");refundTicket(x,&count,sfdate,date);break;
case 5:printf("\t\t\t\n");dateChange(x,date);break;
case 6:printf("\t\t\t退出系统\n");exit(0);
default:printf("\t\t\t输入错误,请重新输入\n");break;
}
getch();
}
free(date);
free(sfdate);
return 0;
}

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外太空的莫扎特

在校生穷逼一个,呜呜呜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值