概述:
我的课程设计题目为民航票务管理系统,其目的是为了便利人们购买飞机票的过程为广大人民群众提供便利,本系统主要为订票者提供订票服务以及相关的信息服务。同时增加了我对于程序设计的理解以及对于 C 语言的熟练度。
- 录入:可以录入已知航班情况;
- 查询:可以查询某个航班情况:
- 通过航班号查询;
- 通过起飞城市查询;
- 通过抵达城市查询;
然后显示航班信息(航班号,航班的起降时间、起飞抵达城市、航班票 价、票价折扣、 以及所剩余的票数);
3.订票:通过起飞城市和抵达城市选择合适的航班并生成订单编号,如果该航班已经无票可 订,系统会提示选择其他航班并提供相关信息;
4.退票:退票时要求客户提供姓名、证件号,并返回该退票航班现航班信息(航班号,航班的起降时间、起飞抵达城市、航班票价、票价折扣、以及所剩余的票数);
5.修改:修改航班的数据信息:
- 修改航班的起飞时间;
- 修改航班的降落时间;
- 修改航班的起飞城市;
- 修改航班的降落城市;
- 修改航班的机票价格;
- 修改航班的票价折扣;
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;//购票数量文章来源:https://www.toymoban.com/news/detail-532395.html
int number;//航班号
到了这里,关于民航票务管理系统-C语言--录入,查询,订票,退票,修改航班信息以及主菜单和子菜单。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!