📄 定票.c
字号:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<bios.h>
struct flight
{int num;
char start[20];
char arrv[20];
char city1[20];
char city2[20];
int price;
int discount;
int ticket;
int booked;
}f[20];
struct ticket
{char cname[10];
char cnum[20];
int fnum;
int tnum;
char code[10];
}t[100];
int n,m=0;
main()
{int k;
void input();
void search();
void order();
void cancel();
void modify();
textbackground(BLACK);
clrscr();
printf("|* order tickets system *|\n");
printf("------------*****************************------------\n");
printf("|* 1.input *|\n");
printf("|* 2.search *|\n");
printf("|* 3.order *|\n");
printf("|* 4.cancel *|\n");
printf("|* 5.modify *|\n");
printf("|* 6.exit *|\n");
printf("------------*****************************------------\n");
printf(" please input the number to enter:\n");
scanf("%d",&k);
switch(k)
{case 1:input();break;
case 2:search();break;
case 3:order();break;
case 4:cancel();break;
case 5:modify();break;
case 6:exit(0);break;
default:break;
}
}
void input()
{int i,j;
FILE *fp;
textbackground(BLACK);
clrscr();m=0;
printf(" welcome to the input system\n");
printf("-------------***************************-------------\n");
printf(" please input the number of flight:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("input the %d informiation\n",i+1);
printf("flight NO.:\n");
scanf("%d",&f[i].num);
printf("input start time\n");
scanf("%s",f[i].start);
printf("input arrive time\n");
scanf("%s",f[i].arrv);
printf("input start city\n");
scanf("%s",f[i].city1);
printf("input arrive city\n");
scanf("%s",f[i].city2);
printf("input price\n");
scanf("%d",&f[i].price);
printf("input ticketnumber\n");
scanf("%d",&f[i].ticket);
printf("input discount\n");
scanf("%d",&f[i].discount);
f[i].booked=0;
}
fp=fopen("d:\\fly.txt","w");
for(i=0;i<n;i++)
if(fwrite(&f[i],sizeof(struct flight),1,fp)!=1)
printf("file write error\n");
fclose(fp);
getch();main();}
void search()
{char c,r[20],q[20];
int i,p,k,h=0;
FILE *fp;
textbackground(BLACK);
clrscr();
if((fp=fopen("d:\\fly.txt","r"))==NULL)
{printf("can't open the file\n");exit(0);}
printf(" this is the serach system\n");
printf("-------------***************************-------------\n");
printf("1.search by flight number\n");
printf("2.search by start and arrive city\n");
printf(" please input the number to enter\n");
c=getch(); printf("%c\n",c);
if(c=='1')
{printf("input the flight NO.\n");
scanf("%d",&k);
for(i=0,p=0;i<n;i++)
{if(k==f[i].num) {p=1;break;}}
if(p==0) printf("sorry,there are no this plan");
for(i=0;i<n;i++)
{if(k==f[i].num)
{printf("\nstart time :%s",f[i].start);
printf("\narrive time :%s",f[i].arrv);
printf("\nstart city :%s",f[i].city1);
printf("\narrive city :%s",f[i].city2);
printf("\nflight price:%d",f[i].price);
printf("\nflight discount:%d",f[i].discount);
if(f[i].ticket>f[i].booked)
printf("\ntickets left :%d\n",f[i].ticket-f[i].booked);
if(f[i].ticket==f[i].booked)
printf("there is no flight NO.;%d\n",k);
break;
}
}
}
if(c=='2')
{h=0;
printf("\nstart city:");
scanf("%s",r);
printf("\narrive city:");
scanf("%s",q);
for(i=0;i<n;i++)
{if(strcmp(r,f[i].city1)==0&&strcmp(q,f[i].city2)==0)
{printf("\nflight NO. :%d",f[i].num);
printf("\nstart time :%s",f[i].start);
printf("\narrive time :%s",f[i].arrv);
printf("\nstart city :%s",f[i].city1);
printf("\narrive city :%s",f[i].city2);
printf("\nflight price:%d",f[i].price);
printf("\nflight discount:%d",f[i].discount);
if(f[i].ticket>f[i].booked)
printf("\ntickets left :%d\n",f[i].ticket-f[i].booked);
else
printf("\nthere is no ticket left\n");h=1;}}
if(h==0)printf("\nthere is no flight from %s to %s\n",r,q);}
printf("\ncontiue?y/n");
c=getch(); printf("%c",c);
if(c=='y')search();
if(c=='n'){fclose(fp);getch();main();}
}
void order()
{int k,p,i,j=0;
char r[20],q[20],c;
FILE *fp;
textbackground(BLACK);
clrscr();
if((fp=fopen("d:\\fly.txt","rb+"))==NULL)
{printf("can't open the file\n");exit(0);}
printf(" this is the order system\n");
printf("-------------***************************-------------\n");
printf("input flight NO.:\n");
scanf("%d",&k);
for(i=0;i<n;i++)
{
if(f[i].ticket>f[i].booked&&k==f[i].num)
{
printf("there are %d tickets left\n",f[i].ticket-f[i].booked);
printf("\nclient name:");
scanf("%s",t[m].cname);
printf("\nclient ID :");
scanf("%s",t[m].cnum);
printf("\nticket code:");
scanf("%s",t[m].code);
printf("\nticket number:");
scanf("%d",&t[m].tnum);
t[m].fnum=k;
if(t[m].tnum>f[i].ticket-f[i].booked) {printf("sorry,there are no enough ticket");
printf("\nyou can write you order your tickets number again \n");j=1;}
else{f[i].booked+=t[m].tnum;
if(fwrite(&t[m],sizeof(struct ticket),1,fp)!=1)
printf("file write error\n");m++;j=1;
printf("\nsucess to order\n");break; }
}}
if(j==0)
{printf("sorry,there are no tickets,please change another flight\n"); printf("continue?y/n"); c=getch();
if(c=='y') {
printf("\ninput start city:");
scanf("%s",r);
printf("\ninput arrive city:");
scanf("%s",q);
for(i=0;i<n;i++)
{if(strcmp(r,f[i].city1)==0&&strcmp(q,f[i].city2)==0&&f[i].ticket>f[i].booked)
{
printf("there are %d tickets left in flight NO.:%d\n",f[i].ticket-f[i].booked,f[i].num);
printf("\nclient name:");
scanf("%s",t[m].cname);
printf("\nclient ID :");
scanf("%s",t[m].cnum);
printf("\nticket code:");
scanf("%s",t[m].code);
printf("\nticket number:");
scanf("%d",&t[m].tnum);
t[m].fnum=f[i].num;
f[i].booked+=t[m].tnum;
if(fwrite(&t[m],sizeof(struct ticket),1,fp)!=1)
printf("file write error\n");m++;
printf("\nsucess to order\n");break;
}}
if(i==n)printf("\nnot ticket from city:%s to city:%s\n",r,q);} if(c=='n'){fclose(fp);getch();main();}}
printf("contiue?y/n");c=getch(); printf("%c",c);
if(c=='y')order();
if(c=='n'){fclose(fp);getch();main();}
}
void cancel()
{int k,p,i,j;
char c='n',r[10];
FILE *fp;
textbackground(BLACK);
clrscr();
if((fp=fopen("d:\\fly.txt","rb+"))==NULL)
{printf("can't open the file\n");exit(0);}
printf(" the cancel system\n");
printf("---------***************---------\n");
printf("please input flight NO. : \n");
scanf("%d",&k);
printf("please input the ticket code to cancel:");
scanf("%s",r);
for(i=0;i<m;i++)
{
if(t[i].fnum==k&&strcmp(t[i].code,r)==0)
{
printf("\nclient name :%s",t[i].cname);
printf("\nclient ID :%s",t[i].cnum);
printf("\nticket number :%d",t[i].tnum);
printf("\nticket number to cancel:(<=%d)",t[i].tnum);
scanf("%d",&j);if(j>t[i].tnum) {printf("\nsorry,your cancel wrong,must <=%d",t[i].tnum);
printf("do you want to continue?y/n");goto end;}
else {for(p=0;p<n;p++)
if(f[p].num==t[i].fnum)f[p].booked-=j;
if(j<t[i].tnum)t[i].tnum-=j;
else
{t[i]=t[m-1];
m-=1;}
c='y';
break;
}} }
if(c=='y')printf("sucess to cancel \n");
if(c=='n')printf("no the ticket\n");
printf("contiue?y/n");
end:c=getch(); printf("%c",c);
if(c=='y')cancel();
if(c=='n'){fclose(fp);getch();main();}
}
void modify()
{char c;
int k,i,j,h,r;
FILE *fp;
textbackground(BLACK);
clrscr();
if((fp=fopen("d:\\fly.txt","r+"))==NULL)
{printf("can't open the file\n");exit(0);}
printf(" the modify system\n");
printf("---------***************---------\n");
printf("1.modify one flight information\n");
printf("2.add a flight\n");
printf("3.cancel a flight\n");
printf("---------***************---------");
printf("\ninput the number to enter\n");
c=getch(); printf("%c",c);
if(c=='1')
{printf("input the flight number\n");
scanf("%d",&k);
for(i=0;i<n;i++)
{if(f[i].num==k)
{printf("find the flight\n");
printf("\nstart time : ");
scanf("%s",f[i].start);
printf("\narrive time :");
scanf("%s",f[i].arrv);
printf("\nflight price:");
scanf("%d",&f[i].price);
printf("\nflight discount:");
scanf("%d",&f[i].discount);
break;}
}
if(i==n)printf("can't find the flight\n");
}
if(c=='2')
{h=0;
printf("input the flight number\n");
scanf("%d",&f[n].num);
for(i=0;i<n;i++){if(f[n].num==f[i].num){h=1;break;}}
if(h==0)
{printf("\ninput start time:");
scanf("%s",f[n].start);
printf("\ninput arrive time:");
scanf("%s",f[n].arrv);
printf("\ninput start city:");
scanf("%s",f[n].city1);
printf("\ninput arrive city:");
scanf("%s",f[n].city2);
printf("\ninput price:");
scanf("%d",&f[n].price);
printf("\ninput ticketnumber:");
scanf("%d",&f[n].ticket);
printf("\ninput discount:");
scanf("%d",&f[n].discount);
f[n++].booked=0;
if(fwrite(&f[n-1],sizeof(struct flight),1,fp)!=1)
printf("file write error\n");
}
if(h==1)printf("the flight exist\n");}
if(c=='3')
{printf("input the flight number\n");
scanf("%d",&k);
h=0;
for(i=0;i<n;i++)
{if(f[i].num==k)
{printf("find the flight\n");
for(j=0;j<m;j++)
{if(t[j].fnum==k)
for(r=j;r<m-1;r++)t[r]=t[r+1];}
m-=f[i].booked;f[i]=f[n-1];
n--;h=1;
printf("cancel the flight\n");break;
}
}
if(h==0)printf("can't find the flight\n");
}
printf("contiue?y/n\n");
c=getch(); printf("%c",c);
if(c=='y')modify();
if(c=='n'){fclose(fp);getch();main();}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -