航班管理系统代码区.docx
《航班管理系统代码区.docx》由会员分享,可在线阅读,更多相关《航班管理系统代码区.docx(15页珍藏版)》请在冰点文库上搜索。
![航班管理系统代码区.docx](https://file1.bingdoc.com/fileroot1/2023-5/15/b33a7d31-ab3e-4e47-92b6-1e9b4a595244/b33a7d31-ab3e-4e47-92b6-1e9b4a5952441.gif)
航班管理系统代码区
第一部分:
源程序
#include
#include
#include
#defineN1000
typedefstructplane
{
charID[10];/*航班代号*/
charBePlace[10];/*飞机起飞地点*/
charEnPlace[10];/*飞机降落终点*/
chardata[15];/*飞机起飞时间*/
intmax;/*飞机最大乘客人数*/
intprice;/*飞机票价*/
intnum;/*飞机已售票数*/
}PLANE;
PLANEti[N];
intn;/*当前的航班数目*/
voidmenu();
voidmenu1();
voidinput(inti)
{
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);
printf("请输入航班的票价:
\n");
scanf("%d",&ti[i].price);
ti[i].num=0;
}
voidenter()
{
inti;
system("cls");
printf("请输入航班的数目(0-%d)?
:
",N);
scanf("%d",&n);/*要输入的记录个数*/
printf("\n请输入数据\n\n");
for(i=0;i{
printf("\n请输入第%d航班记录.\n",i+1);
input(i);/*调用输入函数*/
}
getchar();
menu();
}
voidprintf_one(inti)/*显示一个记录的函数*/
{
printf("%11s%6s%10s%6s%6d%6d%6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);
}
voidbrowse()
{
inti;
system("cls");
puts("\n--------------------------------------------------------------------");
printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");
for(i=0;i{
printf_one(i);
printf("\n");
}
getchar();
getchar();
menu();
}
voidorder()/*排序模块(按平均成绩)*/
{
inti,j;
structplanes;
system("cls");
for(i=0;i{
for(j=i+1;jif(strcmp(ti[i].data,ti[j].data)>0)
{
s=ti[i];
ti[i]=ti[j];
ti[j]=s;}
}
browse();
}
voidsearch_time()
{
inti,m=0;
structplanes;
system("cls");
printf("\n\nEnterthetime:
");
scanf("%s",s.data);/*输入出发的时间*/
puts("\n--------------------------------------------------------------------");
printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");
for(i=0;i{
if(strcmp(s.data,ti[i].data)==0)
{
m++;
if((m!
=0)&&(m%10==0)/*目的是分屏显示*/
{
printf("\n\nPressanykeytocontiune...");
getchar();
puts("\n\n");
}
printf_one(i);
printf("\n");
/*调用显示一个记录的函数*/
}
}
puts("\n--------------------------------------------------------------------");
getchar();/*按任意健*/
getchar();
menu1();
}
voidserch_end()
{
inti,m=0;
structplanes;
system("cls");
printf("\n\nEntertheendPlace:
");
scanf("%s",s.EnPlace);/*输入要到达的地方*/
puts("\n--------------------------------------------------------------------");
printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");
for(i=0;i{
if(strcmp(ti[i].EnPlace,s.EnPlace)==0)
{
m++;
if((m!
=0)&&(m%10==0))/*目的是分屏显示*/
{
printf("\n\nPressanykeytocontiune...");
getchar();
puts("\n\n");
}
printf_one(i);
printf("\n");
/*调用显示一个记录的函数*/
}
}
puts("\n--------------------------------------------------------------------");
getchar();/*按任意健*/
getchar();
menu1();
}
voidmenu1()
{
intn,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("\n\n\t\t**********************************************\n");
printf("Choiceyournumber(1-4):
[]\b\b");
scanf("%d",&n);
if(n<1||n>4)/*对选择的数字作判断*/
{
w1=1;
printf("yourchoiceisnotbetween1and4,Pleaseinputagain:
");
getchar();
getchar();
}
elsew1=0;
}while(w1==1);
/*选择功能*/
switch(n)
{
case1:
order();break;
case2:
search_time();break;
case3:
serch_end();break;
case4:
menu();break;
}
}
intsearch()/*查找模块*/
{
inti,k;
structplanes;
k=-1;
system("cls");
printf("\n\n请输入要订票的起飞地点:
");
scanf("%s",s.BePlace);/*输入要到达的地方*/
printf("\n\n请输入要订票的降落地点:
");
scanf("%s",s.EnPlace);
printf("\n\n请输入要订票的起飞时间:
");
scanf("%s",s.data);/*输入出发的时间*/
for(i=0;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;/*找到要修改的记录*/
printf_one(k);
break;/*调用显示一个记录的函数*/
}
}
if(k==-1)
{
printf("\n\nNOexist!
");
return-1;
}
else
returnk;
}
voidbook()
{
inti;
system("cls");
printf("欢迎进入售票窗口!
\n");
i=search();
if(i!
=-1)
{
if(ti[i].num>=ti[i].max)
{
printf("\n该趟航班票已售完!
");
}
else
{
ti[i].num++;
printf("\n订票成功!
\n");
}
}
else
printf("该航班不存在!
\n");
getchar();
getchar();/*按任意健*/
menu();
}
voidback()
{
inti,k=-1;
structplanes;
system("cls");
printf("欢迎进入退票窗口!
\n");
printf("\n\n输入航班代号:
");
scanf("%s",s.ID);/*输入要到达的地方*/
for(i=0;i{
if(strcmp(s.ID,ti[i].ID)==0)
{
k=i;/*找到要修改的记录*/
printf_one(k);
break;/*调用显示一个记录的函数*/
}
}
if(k==-1)
{
printf("\n\nNOexist!
");
}
else
{
ti[i].num--;
printf("\n退票成功!
\n");
}
getchar();/*按任意健*/
getchar();/*按任意健*/
menu();
}
voidsave()
{
intw=1;
FILE*fp;
inti;
system("cls");
if((fp=fopen("D:
\\我的文档\\桌面\\ticket.txt","wt"))==NULL)/*以输出打开方式,在此前的记录被覆盖*/
{
printf("\nCannotopenfile\n");
return;
}
for(i=0;iif(fwrite(&ti[i],sizeof(structplane),1,fp)!
=1)
{
printf("filewriteerror\n");
w=0;
}
if(w==1)
{
printf("filesaveok!
\n");
}
fclose(fp);
getchar();
getchar();
menu();
}
voidload()
{
FILE*fp;
inti,w;
w=1;
system("cls");
if((fp=fopen("D:
\\我的文档\\桌面\\ticket.txt","rt"))==NULL)
{
printf("\nCannotopenfile\n");
w=0;
return;
}
n=0;
for(i=0;!
feof(fp);i++)
{
fread(&ti[i],sizeof(structplane),1,fp);
n++;
}
n=n-1;
fclose(fp);
if(w==1)
printf("Loadfileok!
");
getchar();
getchar();
menu();
}
voidmenu()
{
intn,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("\n\n\t\t**********************************************\n");
printf("Choiceyournumber(1-8):
[]\b\b");
scanf("%d",&n);
if(n<1||n>8)/*对选择的数字作判断*/
{
w1=1;
printf("yourchoiceisnotbetween1and8,Pleaseinputentertochoiceagain:
");
getchar();
getchar();
}
elsew1=0;
}while(w1==1);
/*选择功能*/
switch(n)
{
case1:
enter();break;/*输入
case2:
browse();break;/*浏
case3:
menu1();break;/*查找
case4:
book();break;/*订票
case5:
back();break;/*退票
case6:
save();break;/*保存case7:
load();break;/*加载case8:
exit(0);
}
}
voidmain()
{menu();}