📄 427.cpp
字号:
printf("\n\n\n\t\t\t\t该航线已经锁定!");
printf("\n 按任何键返回上一层!");
getch();
}
else
{system("cls");
printf("\n\n -----------------------------------------------------------------------------\n");
printf(" 航班号 飞机号 起点 终点 起飞时间 座位数 剩余 头等仓 中等仓 下等仓\n");
printf(" -----------------------------------------------------------------------------\n");
printf(" %-5d%10d%8s%7s 星期%s%8d%7d%7d%8d%7d\n",f[j].Flight_No,f[j].Plane_No,f[j].beg_Name,f[j].Des_Name,a[f[j].Week_Day-1],f[j].Customer_Amount,f[j].Free_Amount,f[j].Price[0],f[j].Price[1],f[j].Price[2]);
printf(" -----------------------------------------------------------------------------\n");
printf("确认要不要修改:(0/1)");
scanf("%d",&id);
if(id==1)
{
printf("\n\t\t----------------------------------------\n\n");
printf("\t\t以后的每一项,都可以按0退出该项的修改\n");
printf("\t\t----------------------------------------\n\n");
printf("\t\t要不要修改航班号:");
scanf("%d",&yn);
if(yn==1)
{printf("\t\t修改为:");
scanf("%d",&f[j].Flight_No);
yn=0;
}
printf("\t\t要不要修改飞机号:");
scanf("%d",&yn);
if(yn==1)
{printf("\t\t修改为:");
scanf("%d",&f[j].Plane_No);
yn=0;
}
printf("\t\t要不要修改起点:");
scanf("%d",&yn);
if(yn==1)
{printf("\t\t修改为:");
scanf("%s",&f[j].beg_Name);
yn=0;
}
printf("\t\t要不要修改终点:");
scanf("%d",&yn);
if(yn==1)
{printf("\t\t修改为:");
scanf("%s",&f[j].Des_Name);
yn=0;
}
printf("\t\t要不要修改时间:");
scanf("%d",&yn);
if(yn==1)
{printf("\t\t修改为(1~7):");
scanf("%d",&f[j].Week_Day);
yn=0;
}
printf("\t\t要不要修改座位数:");
scanf("%d",&yn);
if(yn==1)
{printf("\t\t修改为:");
scanf("%d",&f[j].Customer_Amount);
f[j].Free_Amount=f[j].Customer_Amount;
yn=0;
}
printf("\t\t要不要修改等仓价位(元):");
scanf("%d",&yn);
if(yn==1)
{printf("\t\t分别修改为:");
scanf("%d%d%d",&f[j].Price[0],&f[j].Price[1],&f[j].Price[2]);
yn=0;
}
}
}
}
int menu1() /*航线管理入口*/
{int id;
do{system("cls");
printf("\n\n ~~欢迎光临~~\n");
printf(" __________________________________________________________________________ \n");
printf(" │ 1.增加航线 │ 2.删除航线 │ 3.查看航线 │4.修改航线 │5.返回主目录│\n");
printf(" │_____________│_____________│______________│____________│____________│\n");
printf("\n 你可以有(1~5)种选择:");
scanf("%d",&id);
}while(id>5||id<1);
return id;
}
int menu2() /*订票管理入口*/
{int id;
system("cls");
printf("\n\n ~~欢迎光临~~\n");
printf(" _________________________________________________________________________ \n");
printf(" │ 1.定票手续 │ 2.退票办理 │ 3.查看航况 │4.修改当前航票 │5.返回主目录│\n");
printf(" │____________│____________│____________│_______________│____________│\n");
printf("\n 你可以有(1~5)种选择:");
do{
scanf("%d",&id);
}while(id>5||id<1);
return id;
}
void inf_input(int id) /*进行订票*/
{int ed;
int Rank;
system("cls");
j=0;
while(j<m)
{if(id==f[j].Flight_No)
break;
j++;
}
printf("\n 该航线上的信息如下:\n");
printf(" -----------------------------------------------------------------------------\n");
printf(" 航班号 飞机号 起点 终点 起飞时间 座位数 剩余 头等仓 中等仓 下等仓\n");
printf(" -----------------------------------------------------------------------------\n");
printf(" %-5d%10d%8s%7s 星期%s%8d%7d%7d%8d%7d\n",f[j].Flight_No,f[j].Plane_No,f[j].beg_Name,f[j].Des_Name,a[f[j].Week_Day-1],f[j].Customer_Amount,f[j].Free_Amount,f[j].Price[0],f[j].Price[1],f[j].Price[2]);
printf(" -----------------------------------------------------------------------------\n");
printf(" THE END\n");
if(f[j].Free_Amount<=0)
{system("cls");printf("\n\n\n\n\n\n\t\t\t Sorry!该航线座位已满!");
getch();}
else
{printf("\t------------------------------\n");
printf("\t 你是第%d个来订票:\n",n+1);
printf("\t------------------------------\n");
f[j].peo+=1;
c[n].NUM=f[j].peo+f[j].Flight_No*1000; /*给航线编号*/
printf("\t\t请输入名字:");
scanf("%s",c[n].Name);
printf("\t\t请输入证件号:");
scanf("%d",&c[n]. bianhao);
do
{printf("\t\t请输入票数:");
scanf("%d",&c[n].Amount);
if(c[n].Amount>f[j].Free_Amount)
{printf("\t\t座位不够,是否确定继续(0/1):");
scanf("%d",&ed);/*当输入为0时候跳出,1时继续输入到正确为止*/
}
else ed=2;
}while(ed==1);
if(ed!=0)
{
f[j].Free_Amount=f[j].Free_Amount-c[n].Amount;/*修改航线上的空座位数*/
c[n].Flight_No=f[j].Flight_No; /*从航线上拷贝信息*/
c[n].Plane_No=f[j].Plane_No;
c[n].Week_Day=f[j].Week_Day;
c[n].Fist_Seat=1; /*假设该航客的起始座位号为0*/
i=0;
while(i<n) /*查找该航线上已订票的人的座位情况,该航客的起始位置是已定座位的最大号加1*/
{
if(c[i].NUM/1000==f[j].Flight_No)
if(c[n].Fist_Seat<c[i].Last_Seat)
c[n].Fist_Seat=c[i].Last_Seat+1;
i++;
}
c[n].Last_Seat= c[n].Fist_Seat+c[n].Amount-1;/*该航客的最后一个座位号*/
printf("\t\t请选择仓位等级(1-3):");
scanf("%d",&Rank);
c[n].Rank=f[j].Price[Rank-1];
n=n+1; /*航客信息加1*/
}
printf("\n\t\t\t 订票成功……");
getch();
}
}
void add_ticket() /*定票手续*/
{
int h=0;
int id;
int k=0;
system("cls");
printf("\n\t欢迎你的到来!\n");
printf("\t----------------------------\n");
printf("\t\t请输入起点:");
scanf("%s",c[n].Beg_Name);
printf("\t\t请输入终点:");
scanf("%s",c[n].Des_Name);
system("cls");
for(j=0;j<m;j++) /*查找该航线上的信息*/
{
if((strcmp(c[n].Beg_Name,f[j].beg_Name)==0)&&(strcmp(c[n].Des_Name,f[j].Des_Name)==0))
{f[m+h]=f[j];
h++;
}
}
if(h==0) /*找不到该航线*/
{system("cls");
printf("\n\n\n\n\t\t\t OH,sorry! 没有存在此航班...");
getch();
}
else
{printf("\n\n ~这里存有[%d]条航线~\n",h);
printf(" -----------------------------------------------------------------------------\n");
printf(" 航班号 飞机号 起点 终点 起飞时间 座位数 剩余 头等仓 中等仓 下等仓\n");
printf(" -----------------------------------------------------------------------------\n");
for(i=m;i<m+h;i++)
{
printf(" %-5d%10d%8s%7s 星期%s%8d%7d%7d%8d%7d\n",f[i].Flight_No,f[i].Plane_No,f[i].beg_Name,f[i].Des_Name,a[f[i].Week_Day-1],f[i].Customer_Amount,f[i].Free_Amount,f[i].Price[0],f[i].Price[1],f[i].Price[2]);
printf(" -----------------------------------------------------------------------------\n");
}
printf(" THE END\n");
printf("\n\t\t\t请你输入需要订票的航班号(或0退出):");
do{
scanf("%d",&id);
for(i=m;i<m+h;i++)
if(id==f[i].Flight_No||id==0)
{k=1;break;}
}while(k==0);
if(id!=0)
inf_input(id);
}
}
void delete_ticket()/*删除当前订票人的信息*/
{
j=0;
system("cls");
while(c[n-1].Flight_No!=f[j].Flight_No)
{j++;}
f[j].Free_Amount=f[j].Free_Amount+c[n-1].Amount;/*删除后修改航线上空座位的数目*/
f[j].peo-=1;
n=n-1;
printf("\n\n\n\n\n\n\n\t\t 你的退票要求已经受理!欢迎下次惠顾....");
getch();
}
void check_ticket()/*输出当前个人订票信息*/
{
system("cls");
if(n!=0)
{printf("\n\n 定票信息如下\n");
printf(" 编号:%d\n",c[n-1].NUM);
printf(" --------------------------------------------------------------------\n");
printf(" 航班号 飞机号 起点 终点 起飞时间 票数 座位号 仓位价格\n");
printf(" --------------------------------------------------------------------\n");
printf(" %-5d%9d%7s%7s 星期%s%7d%8d-%d%8d\n",c[n-1].Flight_No,c[n-1].Plane_No,c[n-1].Beg_Name,c[n-1].Des_Name,a[c[n-1].Week_Day-1],c[n-1].Amount,c[n-1].Fist_Seat,c[n-1].Last_Seat,c[n-1].Rank);
printf(" --------------------------------------------------------------------\n");
}
printf("\n\n\t\t你好!飞机票总额为(元):%d",c[n-1].Rank*c[n-1].Amount);
printf("\n\n\n\t\t\t 按任何键退出...");
getch();
}
void change_ticket() /*修改订票信息*/
{int id;
int yn;
int Rank;
system("cls");
if(n!=0)
{printf("\n\n 定票信息如下\n");
printf(" 编号:%d\n",c[n-1].NUM);
printf(" --------------------------------------------------------------------\n");
printf(" 航班号 飞机号 起点 终点 起飞时间 票数 座位号 仓位价格\n");
printf(" --------------------------------------------------------------------\n");
printf(" %-5d%9d%7s%7s 星期%s%7d%8d-%d%8d\n",c[n-1].Flight_No,c[n-1].Plane_No,c[n-1].Beg_Name,c[n-1].Des_Name,a[c[n-1].Week_Day-1],c[n-1].Amount,c[n-1].Fist_Seat,c[n-1].Last_Seat,c[n-1].Rank);
printf(" --------------------------------------------------------------------\n");
}
printf("\n\n\t\t\t需要修改吗(0/1)...");
scanf("%d",&id);
if(id==1)
{printf("\n\t\t----------------------------------------\n\n");
printf("\t\t以后的每一项,都可以按0退出该项的修改\n");
printf("\t\t----------------------------------------\n\n");
j=0;
while(c[n-1].Flight_No!=f[j].Flight_No)
{j++;}
printf("\t\t要不要修改票数:");
scanf("%d",&yn);
if(yn==1)
{f[j].Free_Amount=f[j].Free_Amount+c[n-1].Amount;/*修改订票时修改航线的剩余票的信息*/
printf("\t\t修改为:");
scanf("%d",&c[n-1].Amount);
f[j].Free_Amount=f[j].Free_Amount-c[n-1].Amount;/*修改订票后修改航线的剩余票的信息*/
c[n-1].Last_Seat=f[j].Customer_Amount-f[j].Free_Amount;
c[n-1].Fist_Seat=c[n-1].Last_Seat-c[n-1].Amount+1;
yn=0;
}
printf("\t\t要不要修改仓价位:");
scanf("%d",&yn);
if(yn==1)
{printf("\t\t修改为(1-3):");
scanf("%d",&Rank);
c[n-1].Rank=f[j].Price[Rank-1];
}
printf("\n\n\t\t\t已修改成功");
}
else
printf("\n\n\t\t\t按任何键继续...");
getch();
}
void customer_all() /*输出顾客的全部信息*/
{int total_amount=0;
system("cls");
printf("\n\n 已经有%d位顾客订票",n);
printf("\n 所有定票信息如下:\n\n");
printf(" --------------------------------------------------------------------------\n");
printf(" 编号 航班号 飞机号 起点 终点 起飞时间 票数 座位号 仓位价格\n");
printf(" --------------------------------------------------------------------------\n");
for(i=0;i<n;i++)
{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;
}
printf("\n\t\t\t 总额数为(元):%d",total_amount);
getch();
}
void customer_line()/*输出某航班号航线的顾客信息*/
{int total_amount;
int id;
system("cls");
printf(" 请输入航班号:");
scanf("%d",&id);
i=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -