参考一下 应该对你有用:
程序代码:
#include<stdio.h>
#include<string.h>
struct inf
{
char name[20];
long ID;
};
struct inf T[3232];
void main()
{
int c,d2,g,h,h2,i,j,k,n2,n3,x,y,z;
int n4,n9,n55,add1,add5,add6,add7,add9;
long ID2,d1;
int n[3][7];
int k2[4][8];
char s[15];
char s2[15],s3[15];
char a,d,f,add2,add3,add4,add8,add10;
int l[3232]={0},a3[100],a4[100],p3[100],a7[100],s22[100];
int n5[100],n6[100],t2[100],p2[100],a2[100],s33[100],t3[100];
int n7[10][10][10];
for(i=0;i<=2;i++)
for(j=0;j<=6;j++)
n[i][j]=100;
/************************************开头****************************************************/
loop2:
printf("\n***************************************\n");
printf(" 欢迎使用航空售票系统 \n");
printf("***************************************\n");
printf("\n1.订票\n2.退票\n3.查票\n4.查询\n5.退出\n");
printf("请输入您的选择(1-5):\n");
do{ scanf("%c",&a);}while(a!='1'&&a!='2'&&a!='3'&&a!='4'&&a!='5');
/********************************************订票*******************************************/
if(a=='1'){
loop1:
{printf("共有三个航班,请您输入您的选择(1-3):\n");
do{scanf("%d",&i);}while(i>3||i<1);
printf("请输入你旅行的周日代码(1-7):\n");
do{scanf("%ld",&j);}while(j>7||j<1);
printf("本航班当天余票为%d张!\n",n[i-1][j-1]);
printf("\n请输入您想订的座位号(1-100):\n");
do{scanf("%d",&k);}while(k>100||k<1);
h=i+4*j+32*k;
while(l[h]==1){
do{printf("该票已经被订,请重新输入:\n");
scanf("%d",&k);h=i+4*j+32*k;}while(k>100||k<1);}
printf("请输入您的姓名:\n");
scanf("%s",&T[h].name);
printf("\n请输入您的身份证号码:\n");
scanf("%ld",&T[h].ID);
do{
printf("\n请输入您的目的地(1-5):\n");
printf("1.天堂\n2.地狱\n3.猪七\n4.泗阳\n5.甘肃\n");
scanf("%d",&c);}while(c>5||c<1);
switch(c)
{
case 1:strcpy (s,"天津");break;
case 2:strcpy (s,"地狱");break;
case 3:strcpy (s,"猪七");break;
case 4:strcpy (s,"泗阳");break;
case 5:strcpy (s,"甘肃");break;
}
printf("\n您的订票信息如下:\n");
printf("姓名 身份证号 航班号 飞行时间 目的地\n");
printf("\n%s%10ld 偏见%d号 周%d%13s\n",T[h].name,T[h].ID,i,j,s);
printf("\n");
printf("\n 请再次检查您的信息。\n\n如果正确无误,请输入y.\n\n重新填写,请输入r.\n\n放弃订票,回主选单输入q。\n");
do{
scanf("%c",&d);
}while(d!='r'&&d!='q'&&d!='y');}
if(d=='y') {n[i-1][j-1]--;
l[h]=1;
printf("\n订票成功!!\n");
goto loop2;}
else if(d=='r') goto loop1;
else goto loop2;
}
/********************************************退票*******************************************/
if(a=='2'){
printf("\n请填写退票详细信息.\n");
printf("\n请输入航班号(1-3):\n");
do{scanf("%d",&x);
}while(x>3||x<1);
printf("\n请输入旅行周日(1-7):\n");
do{scanf("%d",&y);
}while(y>7||y<1);
printf("\n请输入座位号:\n");
do{scanf("%d",&z);
}while(z>100||z<1);
printf("\n请输入您的姓名:\n");
scanf("%s",&s2);
printf("\n请输入您的身份证号:\n");
scanf("%ld",&ID2);
h2=x+4*y+32*z;
if(T[h2].ID==0) {printf("\n该票没有被定出!\n");goto loop2;}
else{
if(T[h2].ID!=ID2||strcmp(s2,T[h2].name))
{printf("信息出现矛盾!无法退票!\n");goto loop2;}
else{printf("\n请输入y确认退票!回主选单请输入q!\n");
scanf("%c",&f);
while(f!='y'&&f!='q'){scanf("%c",&f);}
if(f=='y'){
printf("退票成功!\n");
l[h2]=0;
n[x-1][y-1]++;}
else goto loop2;}
}
goto loop2;}
/*************************************查票系统************************************************/
if(a=='3') {loop4:
printf("\n请输入查询方式:\n");
printf("\n1.输入身份证号查询。\n2.输入座位号码查询。\n3.输入姓名查询。\n4.返回。\n");
do{scanf("%d",&g);}while(g>4||g<1);
/******************身份证号查询**********************/
if(g==1){loop6:
printf("\n请您输入您要查询的身份证号:\n");
do{scanf("%ld",&d1);}while(d1==0);
n3=0;
i=36;
while(i<=3231){
if(T[i].ID==d1&&l[i]==1){n3++;a3[n3]=i;}
i++;}
if(n3==0){printf("\n没有找到您输入的身份证号!\n");goto loop4;}
else{
for(i=1;i<=n3;i++) {s33[i]=a3[i]/32;
t3[i]=(a3[i]-s33[i]*32)/4;
p3[i]=a3[i]-s33[i]*32-t3[i]*4;}
printf("\n您所查找的的信息为:\n");
printf("\n姓名 身份证号 航班号 座位号 飞行日\n");
for(i=1;i<=n3;i++)
printf("%s%10ld 偏见%d号%7d 周%d\n",T[a3[i]].name,T[a3[i]].ID,p3[i],s33[i],t3[i]);
}
printf("\n继续查找请输入y,返回输入q.\n");
do{scanf("%c",&add3);}while(add3!='y'&&add3!='q');
if(add3=='y') goto loop6;
else goto loop4;
}
/***********************名字查询***************************/
if(g==3){loop5:
printf("\n请您输入您要查询的名字:\n");
scanf("%s",&s3);
n2=0;
i=37;
while(i<=3231){
while(T[i].name==NULL) i++;
if(strcmp(T[i].name,s3)==0&&l[i]!=0){
a2[n2+1]=i;
n2++;
}
i++;
}
if(n2==0){printf("\n没有找到您输入的姓名!\n");
goto loop4;}
else{for(i=1;i<=n2;i++){
s22[i]=a2[i]/32;
t2[i]=(a2[i]-s22[i]*32)/4;
p2[i]=a2[i]-s22[i]*32-t2[i]*4;}
printf("\n您所查找的的信息为:\n");
printf("姓名 身份证号 航班号 座位号 飞行日\n");
for(i=1;i<=n2;i++)
printf("%s%10ld 偏见%d号%7d 周%d\n",s3,T[a2[i]].ID,p2[i],s22[i],t2[i]);}
printf("\n继续查找请输入y,返回输入q.\n");
do{scanf("%c",&add2);}while(add2!='y'&&add2!='q');
if(add2=='y') goto loop5;
else goto loop4;}
/************************座位号码查询*****************************/
if(g==2){loop7:
printf("\n请您输入您要查询的座位号:\n");
do{ scanf("%d",&d2);}while(d2<1||d2>100);
for(i=1;i<=3;i++)
for(j=1;j<=7;j++)
k2[i][j]=d2*32+4*j+i;
i=1;
n4=0;
while(i<=3){
j=1;
while(j<=7){
if(T[k2[i][j]].ID!=0&&l[k2[i][j]]!=0){
n4++;
n5[n4]=i;
n6[n4]=j;
n7[n4][n5[n4]][n6[n4]]=k2[i][j];
}
j++;
}
i++;
}
if(n4==0){printf("\n该座位号码没有被定出!\n");goto loop4;}
else{
printf("\n您所输入的座位号信息是:\n");
printf("姓名 身份证号 航班号 座位号 飞行日\n");
for(i=1;i<=n4;i++)
printf("%s%10ld 偏见%d号%7d 周%d\n",T[n7[i][n5[i]][n6[i]]].name,T[n7[i][n5[i]][n6[i]]].ID,n5[i],d2,n6[i]);
}
printf("\n继续查找请输入y,返回输入q.\n");
do{scanf("%c",&add4);}while(add4!='y'&&add4!='q');
if(add4=='q') goto loop4;
if(add4=='y') goto loop7;}
else goto loop2;
}
/*****************************************查询系统****************************************************/
if(a=='4'){loop8:
printf("\n1.查询特定航班的余票情况。\n2.查询特定航班的乘客情况。\n3.返回主选单。\n");
printf("\n请输入您的选择(1-3):\n");
do{scanf("%d",&add1);}while(add1>3||add1<1);
if(add1==3)goto loop2;
/*******************************查余票*****************************/
if(add1==1){loop9:
printf("\n请输入您要查询的航班号(1-3):\n");
do{scanf("%d",&add5);}while(add5>3||add5<1);
printf("\n请输入您要查询的飞行期(1-7):\n");
do{scanf("%d",&add6);}while(add6>7||add6<1);
i=37;
n55=0;
while(i<=3231){
if((T[i].ID==0||l[i]==0)&&(i-add5-add6*4)%32==0){
n55++;
a4[n55]=i;
}
i++;}
printf("\n第%d航班飞机周%d的余票情况是:\n",add5,add6);
i=0;
for(j=i+1;j<=n55;j++)
{
{ for(i=j;i<=j+9;i++)
printf("%5d",a4[i]/32);
}
printf("\n");j=i-1;
}
printf("\n继续查找请输入y,返回输入q.\n");
do{scanf("%c",&add8);}while(add8!='y'&&add8!='q');
if(add8=='y') goto loop9;
else goto loop8;}
/*******************查询已订票信息**********************/
if(add1==2){loop10:
printf("\n请输入您要查询的航班号(1-3):\n");
do{scanf("%d",&add7);}while(add7>3||add7<1);
printf("\n请输入您要查询的飞行期(1-7):\n");
do{scanf("%d",&add9);}while(add9>7||add9<1);
n9=0;
i=37;
while(i<=3231){
if(T[i].ID!=0&&(i-add7-add9*4)%32==0&&l[i]!=0){
n9++;
a7[n9]=i;
}
i++;}
if(n9==0)printf("\n该航班满票,没有被定出!\n");
if(n9!=0){
printf("\n第%d航班飞机周%d的订票情况是:\n",add7,add9);
printf("\n姓名 身份证号 航班号 座位号 飞行日\n");
for(i=1;i<=n9;i++)
printf("%S%10ld 偏见%d号%7d 周%d\n",T[a7[i]].name,T[a7[i]].ID,add7,(a7[i]-add7-4*add9)/32,add9);
}
printf("\n继续查找请输入y,返回输入q.\n");
do{scanf("%c",&add10);}while(add10!='y'&&add10!='q');
if(add10=='y') goto loop10;
else goto loop8;
}
}
}
截图:
图片附件: 游客没有浏览图片的权限,请
登录 或
注册