?? 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 + -