📄 427.cpp
字号:
while(i<m)
{
if(f[i].Flight_No==id)
break;
i++;
}
if(i==m)
{system("cls"); printf("\n\n\n\n\t\t\t\t不存在此航班号!\n");}
else
{
i=0;
j=0;
total_amount=0;
printf("\n\n 航班号%d的定票信息如下:\n\n",id);
printf(" --------------------------------------------------------------------------\n");
printf(" 编号 航班号 飞机号 起点 终点 起飞时间 票数 座位号 仓位价格\n");
printf(" --------------------------------------------------------------------------\n");
while(i<n)
{
if(c[i].NUM/1000==id)
{
printf(" %-5d%5d%12d%7s%7s 星期%s%7d%8d-%d%8d\n",c[i].NUM,c[i].Flight_No,c[i].Plane_No,c[i].Beg_Name,c[i].Des_Name,a[c[i].Week_Day-1],c[i].Amount,c[i].Fist_Seat,c[i].Last_Seat,c[i].Rank);
printf(" --------------------------------------------------------------------------\n");
total_amount=total_amount+c[i].Rank*c[i].Amount;
j++;
}
i++;
}
printf("\n\n\t\t\t 总有%d个顾客,总额数为(元):%d",j,total_amount);
}
getch();
}
int menu3()
{int id=5;
do{system("cls");
printf("\n\n\t ~~欢迎光临~~\n");
printf("\t ____________________________________________________\n");
printf("\t │ 1.查看全部航线 │ 2.查看单个航线 │ 3.返回目录 │\n");
printf("\t │_________________│________________│_____________│\n");
printf("\n\t 你可以有(1~3)种选择:");
scanf("%d",&id);
}while(id>3||id<1);
return id;
}
void air_manage()
{int k=1;
for(;;)
{
switch(menu1())
{ case 1:add_air();break; /*航线管理*/
case 2:delete_air();break; /*删除航线*/
case 3:check_air();break; /*查看航线*/
case 4:change_air();break; /*修改航线*/
default:k=0;save2();save(); /*返回主目录 */
}
if(k==0)
break;
}
}
void ticket_manage()
{int k=1;
for(;;)
{
switch(menu2())
{ case 1:add_ticket();break; /*订飞机票*/
case 2:delete_ticket();break; /*当前个人退票处理*/
case 3:check_ticket();break; /*查看当前个人已定票的具体情况*/
case 4:change_ticket();break; /*当前个人换票处理*/
default:k=0;save2();save();break; /*返回主目录 */
}
if(k==0)
break;
}
}
void ticket_in() /*补票办理*/
{char beg_name[10];
char end_name[10];
int id=1;
int ed,fd;
int k=1;
int total_amount=0;/*记录顾客的总票价*/
int t_beg,t_end; /*飞机的开始票位和终止票位(连续的)*/
int rank;
int t;
system("cls"); /*清屏*/
printf("\t------------------------------\n");
printf("\t 你是第%d个来订票:\n",n+1);
printf("\t------------------------------\n");
printf("\t\t输入起点:");
scanf("%s",beg_name);
printf("\t\t输入终点:");
scanf("%s",end_name);
for(j=0;j<m;j++)
{
if((strcmp(beg_name,f[j].beg_Name)==0)&&(strcmp(end_name,f[j].Des_Name)==0))/*比较输入的地方是否存在航线*/
{printf("\t\t此飞机上还有%d个空位!\n",f[j].Free_Amount);
printf("\n\t\t\t按任何键进入该航线订票信息");
getch();
break;}
}
if(j==m)
{system("cls");
printf("\n\n\n\n\t\t\t OH,sorry! 没有存在此航班...\n");
getch();
id=0;
}
else
{
system("cls");
total_amount=0;
i=0;
/*打印航线的信息*/
printf("\n\n 第%d航线定票信息如下:\n\n",j+1);
printf(" --------------------------------------------------------------------------\n");
printf(" 编号 航班号 飞机号 起点 终点 起飞时间 票数 座位号 仓位价格\n");
printf(" --------------------------------------------------------------------------\n");
while(i<n)/*打印有关该航线上的信息*/
{
if(c[i].NUM/1000==j+1)
{
printf(" %-5d%5d%12d%7s%7s 星期%s%7d%8d-%d%8d\n",c[i].NUM,c[i].Flight_No,c[i].Plane_No,c[i].Beg_Name,c[i].Des_Name,a[c[i].Week_Day-1],c[i].Amount,c[i].Fist_Seat,c[i].Last_Seat,c[i].Rank);
printf(" --------------------------------------------------------------------------\n");
total_amount=total_amount+c[i].Rank*c[i].Amount;
}
i++;
}
printf("\n\n\t\t\t 总额数为(元):%d\n",total_amount);
}
printf("\n\n 是否继续(0/1)……");
scanf("%d",&fd);
if(fd==1){
if(id==1) /*找到航线时*/
{f[j].peo+=1; /*购买该航线的票数(或人数)加一*/
c[n].NUM=f[j].peo+(j+1)*1000; /*给相应的航线加上编号,2002表示第二条航线的第二个订票的人的票的编号*/
strcpy(c[n].Beg_Name,beg_name);/*记录顾客的订票信息*/
strcpy(c[n].Des_Name,end_name);
c[n].Flight_No=f[j].Flight_No;
c[n].Plane_No=f[j].Plane_No;
printf(" --------------------------------------------------------\n");
printf("\t\t请输入名字:");
scanf("%s",c[n].Name);
printf("\t\t请输入证件号:");
scanf("%d",&c[n]. bianhao);
do{
printf("\t\t请输入座位号(a-b):");
scanf("%d%d",&t_beg,&t_end);
t=t_beg>t_end?t_beg:t_end;
if(t!=t_end)
{t_beg=t_end;
t_end=t;}
i=0;
while(i<n) /*查找订的座位起始号是否正确,正确时k=1,错误时k=0*/
{
if(c[i].NUM/1000==j+1)
{if(t_beg<c[i].Fist_Seat&&t_end<c[i].Last_Seat)
k=1;
else if(t_beg>c[i].Last_Seat&&t_end<=f[j]. Customer_Amount)
k=1;
else
{k=0;
break;}
}
i++;
}
if(k==0)
{
if(t_end>f[j]. Customer_Amount)
printf("\t\t最大的座位号不能超过%d",f[j]. Customer_Amount);
printf("\n\t\t输入有错,是否继续(0/1)……");
scanf("%d",&ed);
}
}while(k==0&&ed==1);
if(ed!=0)
{
c[n].Fist_Seat=t_beg;/*记录该顾客的起始座位号*/
c[n].Last_Seat=t_end;
c[n].Amount=t_end-t_beg+1;
printf("\t\t请输入仓位价(1-3):");
scanf("%d",&rank);
c[n].Rank=f[j].Price[rank-1];/*根据输入等级计算票价*/
c[n].Week_Day=f[j].Week_Day;
f[j].Free_Amount=f[j].Free_Amount-c[n].Amount;/*修正航线上的空位信息*/
n++;
}
}
}
}
void ticket_out() /*退票办理*/
{int id; /*接收编号*/
int fd;
int total_amount=0;
system("cls");
printf("\n\n\t请输入要退票的编号:");
scanf("%d",&id);
i=0;
j=0;
printf(" --------------------------------------------------------------------------\n");
printf(" 编号 航班号 飞机号 起点 终点 起飞时间 票数 座位号 仓位价格\n");
printf(" --------------------------------------------------------------------------\n");
while(i<n) /*查找编号*/
{ if(c[i].NUM==id)
{
printf(" %-5d%5d%12d%7s%7s 星期%s%7d%8d-%d%8d\n",c[i].NUM,c[i].Flight_No,c[i].Plane_No,c[i].Beg_Name,c[i].Des_Name,a[c[i].Week_Day-1],c[i].Amount,c[i].Fist_Seat,c[i].Last_Seat,c[i].Rank);
printf(" --------------------------------------------------------------------------\n");
total_amount=total_amount+c[i].Rank*c[i].Amount;
break;/*找到,则退出查找*/
}
i++;
}
printf("\n\n\t\t\t 总额数为(元):%d",total_amount);
if(i!=n)
{
printf("\n\n\t\t\t 是否要删除(0/1):");
scanf("%d",&fd); /*提示要不要删除此航线*/
if(fd==1)
{
while(c[i].Flight_No!=f[j].Flight_No)
{j++;}
f[j].Free_Amount=f[j].Free_Amount+c[i].Amount;
c[i]=c[n-1];
n--;
}
}
else
printf("\n\n\t\t\t 输入错误!\n\t\t\t按任何键返回!");
printf("\n\n\t\t\t完成操作,按任何键继续...");
getch();
save();
save2();
}
void if_exit()
{int id;
system("cls");
printf("\n\n\n\n\t\t\t 是否确定要退出系统(0/1)……");
scanf("%d",&id);
if(id==1)
{cover1();
exit(0);
}
else
{system("cls");
printf("\n\n\n\n\t\t\t 按任何键继续……");
getch();}
}
int menu4()
{int id;
do{
system("cls");
printf("\n\n\t ~~欢迎光临~~\n");
printf("\t ____________________________________________________\n");
printf("\t │ 1.退票处理 │ 2.补票办理 │ 3.返回目录 │\n");
printf("\t │_________________│________________│_____________│\n");
printf("\n\t 你可以有(1~3)种选择:");
scanf("%d",&id);
}while(id>3||id<1);
return id;
}
void ticket_move() /*补票退票入口*/
{int k=1;
for(;;)
{
switch(menu4())
{case 1:ticket_out();break; /*补票处理*/
case 2:ticket_in();break; /*退票处理*/
default:k=0; save();save2();break; /*返回主目录 */
}
if(k==0)
break;
}
}
void check_passenger()
{int k=1;
for(;;)
{
switch(menu3())
{case 1:customer_all();break; /*输出全部航线的顾客订票信息*/
case 2:customer_line();break; /*输出某个航线的顾客订票信息*/
default:k=0; break; /*返回主目录 */
}
if(k==0)
break;
}
}
void main()
{char l;
cover();
while(1)
{system("cls");
printf("\n\t\t\t是否是第一次启用本系统(Y/N):");
l=getchar();
if(l=='y'||l=='Y')
{ save();
save2();}
else
{read();
read2();
}
switch(menu())
{
case 1:air_manage();break; /*航线管理*/
case 2:ticket_manage();break; /*订票办理*/
case 3:ticket_move();break; /*退票补票办理*/
case 4:check_passenger();break; /*乘客管理*/
case 5:if_exit(); /*退出系统 */
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -