飞机订票系统 第 21 页 共 30 页
int i=0; Plane temp;
if((fp=fopen(\ {
printf(\出错,请检查文件是否存在,按任意键返回主菜单\出错提示
}
cout<<\请输入所要修改的航班号:\cin>>num;
while((fread(&temp,sizeof(Plane),1,fp))==1) { i++;
if(temp.num==num) {
cout<<\修改相应的航班信息:\cout<<\修改后航班号是:\cin>>temp.num; cout< cout<<\修改后的起飞时间是:\cin >>temp.Stime; cout< cout<<\修改后的抵达时间是:\cin>>temp.Etime; cout< cout<<\修改后的起点是:\cin>>temp.Start; cout< cout<<\修改后的终点是:\ cin>>temp.Ends; cout< cout<<\修改后的票价是:\cin>>temp.Price; cout< cout<<\修改后的票的折扣是:\cin>>temp.Discount; cout<<\修改后的准载人数:\ 21 飞机订票系统 第 22 页 共 30 页 cin>>temp.Msum; cout<<\ cout<<\修改完毕!\ cout< fseek(fp,0,0); } } fclose(fp); } struct airticket //乘客信息 { long int IDcard; //身份证件号 int Pnum; //定票的航班号 int day; //定票日期 int count; //定票数量 char Name[50];//定票人的姓名 airticket *next; }; airticket * head=NULL; airticket * Create()//创建航班票的链表 { airticket * ps; airticket * pEnd; ps=new airticket; cout<<\航班号:\ cin>>ps->Pnum; cout<<\定票的日期:\ cin>>ps->day; cout<<\定票人的姓名: \ cin>>ps->Name; cout<<\身份证号:\ cin>>ps->IDcard; 22 飞机订票系统 第 23 页 共 30 页 cout<<\票数: \cin>>ps->count; cout< while(ps->Pnum!=0) { if(head==NULL) else pEnd->next=ps; pEnd=ps; ps=new airticket; head=ps; cout<<\航班号(航班号位0结束输入):\cin>>ps->Pnum; /*cout<<\定票的日期: \ cin>>ps->day; cout<<\定票人的姓名: \ cin>>ps->Name; cout<<\身份证号:\cin>>ps->IDcard; cout<<\票数: \cin>>ps->count;*/ cout< pEnd->next=NULL; return head; } void save(airticket * head1)//保存信息 { if((fp=fopen(\ { } return; for(;head1;head1=head1->next) 23 飞机订票系统 第 24 页 共 30 页 fwrite(head1,sizeof(airticket),1,fp); fclose(fp); } void dingpiao()//功能1:订票 { airticket * head1=Create(); save(head1); cout<<\你已经成功完成订票!\} void tuipiao()//功能2:退票 { airticket *tail, *temp=new airticket; head=NULL; if((fp=fopen(\ { printf(\出错,请检查文件是否存在,按任意键返回主菜单\出错提示 getchar(); fn(); cout<<\恭喜你,你已经成功完成退票\ } while((fread(temp,sizeof(airticket),1,fp))==1) { } fclose(fp); int num; if(!head) { 24 if(head==NULL){head=tail=temp;head->next=NULL;} else { } temp=new airticket; temp->next=NULL; tail->next=temp; tail=temp; 飞机订票系统 第 25 页 共 30 页 } cout<<\数据为空!\\n\ temp=tail=head; cout<<\请输入想退机票的航班号:\cin>>num; for(;tail;tail=tail->next) { if(head->Pnum==num){head=tail->next;} else if(tail->Pnum==num) { temp->next=tail->next; cout<<\你已经成功完成退票\ } temp=tail; } if((fp=fopen(\ for(;head;head=head->next) fwrite(head,sizeof(airticket),1,fp); fclose(fp); } void watchT()//功能3:查看信息 { airticket *tail, *temp=new airticket; head=tail=NULL; int flag=1; if((fp=fopen(\ { printf(\出错,请检查文件是否存在,按任意键返回主菜单\\n\出错提示 main(); } while((fread(temp,sizeof(struct airticket),1,fp))==1) { if(head==NULL){head=tail=temp;head->next=NULL;} else { 25