




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include #include #include typedef struct flightnodechar flight_num10; /char start_time10; /char end_time10; /char start_place20;/char end_place20; /int left; /float price; /float price_discount;/int isFull; /struct flightnode *next;/flightnode;/typedef struct passengernodechar name20; /char ID_num20; /char flight_num10;/int order_num; /int ticket_num; /struct passengernode *next;/passengernode;/typedef struct passengerListpassengernode *head;passengernode *rear;passengerList;void init_flight(flightnode *&h)/h,h=(flightnode *)malloc(sizeof(flightnode);/if(h=NULL) exit(0);h-next=NULL;/hvoid init_passengerList(passengerList *&pList)pList=(passengerList *)malloc(sizeof(passengerList);pList-head=(passengernode *)malloc(sizeof(passengernode);/pList-rear=pList-head;pList-rear-order_num=0;/0pList-head-next=NULL;void save_passenger(passengerList *PList)FILE* fp = fopen(passenger.dat,wb);if(fp=NULL)return;passengernode *temp=PList-head-next;while(temp!=NULL)fwrite(temp,sizeof(passengernode),1,fp);temp = temp-next;fclose(fp);void load_passenger(passengerList *PList)FILE* fp = fopen(passenger.dat,rb);if(fp=NULL)return;passengernode *q;int n;while(!feof(fp)q=(passengernode *)malloc(sizeof(passengernode);n =fread(q,sizeof(passengernode),1,fp);if(n!=1)break;PList-rear-next=q;PList-rear=q;PList-rear-next=NULL;fclose(fp);void save_flight(flightnode *h)FILE* fp = fopen(flightList.dat,wb);if(fp=NULL)return;flightnode *temp=h-next;while(temp!=NULL)fwrite(temp,sizeof(flightnode),1,fp);temp = temp-next;fclose(fp);void load_flight(flightnode *&h)flightnode *pt=h;FILE* fp = fopen(flightList.dat,rb);if(fp=NULL)return;flightnode *q;int n;while(!feof(fp)q=(flightnode *)malloc(sizeof(flightnode);n=fread(q,sizeof(flightnode),1,fp);if(n!=1)break;pt-next=q;pt=q;pt-next=NULL;fclose(fp);int find_same_flight(flightnode *h,char *flight_num)flightnode *t=h-next,*p=h-next;int mark=0;printf(%-8s%-12s%-12s%-10s%-10s%-8s%-6s%-10s%-8sn,);while(t!=NULL & strcmp(t-flight_num,flight_num)!=0) t=t-next;while(p!=NULL)if(strcmp(t-start_place,p-start_place)=0)&(strcmp(t-end_place,p-end_place)= 0)&(strcmp(t-flight_num,p-flight_num)!=0)printf(%-8s%-12s%-12s%-10s%-10s%-8.2f%-6.2f%-10d%-8dn,p-flight_num, p-start_place,p-end_place,p-start_time,p-end_time,p-price,p-price_discount,p-isFull,p-left);mark=1;p=p-next;if(mark=0)printf(tt!n);return 0;return 1;void insert_flight(flightnode *&h,char* flight_num,char* start_place,char* end_place,char* start_time,char* end_time,int left,float price,float price_discount,int isFull)/,flightnode *q;/qflightnode *p=h;q=(flightnode *)malloc(sizeof(flightnode);/qstrcpy(q-flight_num,flight_num);strcpy(q-start_place,start_place);strcpy(q-end_place,end_place);strcpy(q-start_time,start_time);strcpy(q-end_time,end_time);q-left=left;q-price=price;q-price_discount=price_discount;q-isFull=isFull;/strcpyqq-next=p-next;/qp-next=q;p=p-next;/void insert_passengerList(flightnode *&h,passengerList *&PList,char *name,char *ID_num,char *flight_num,int ticket_num)/flightnode *p=h-next;for(;p!=NULL;p=p-next)if(strcmp(p-flight_num,flight_num)=0)p-left=p-left-ticket_num;if(p-left=0)p-isFull=1;passengernode *q=(passengernode *)malloc(sizeof(passengernode);/strcpy(q-name,name);strcpy(q-ID_num,ID_num);strcpy(q-flight_num,flight_num);q-ticket_num=ticket_num;q-next=NULL;/PList-rear-next=q;q-order_num=PList-rear-order_num+1;/PList-rear=q;void delete_flight(flightnode *&h,passengerList *&PList)/flightnode *p,*pr;passengernode *q,*qr;char flight_num10;int mark=1;qr=PList-head;/prq=qr-next;/ppr=h;/prp=pr-next;/pprintf(tt:);scanf(%s,flight_num);while(p!=NULL)/,if(strcmp(flight_num,p-flight_num)=0)pr-next=p-next;/free(p);/printf(tt%s!n,flight_num);mark=0;p=NULL;if(pr-next!=NULL)pr=pr-next;p=pr-next;if(mark=1)printf(tt,!n);elsewhile(q!=NULL)/,if(strcmp(flight_num,q-flight_num)=0)qr-next=q-next;/free(q);q=NULL;if(qr-next!=NULL)qr=qr-next;q=qr-next;int delete_passenger(passengerList *&PList,flightnode *&h,char *name,char *ID_num)/,passengernode *p,*pr=PList-head;/prp=pr-next;while(p!=NULL)if(strcmp(name,p-name)=0&strcmp(ID_num,p-ID_num)=0)for(flightnode *f=h-next;f!=NULL;f=f-next)if(strcmp(p-flight_num,f-flight_num)=0)f-left=f-left+p-ticket_num;f-isFull=0;break;pr-next=p-next;free(p);printf(tt%s,%s!n,name,ID_num);return 1;pr=pr-next;p=pr-next;printf(tt,!n);return 0;void add_flight(flightnode *&h)/insert_flightflightnode *p=h;FILE *readfile;char file_addr20;char flight_num10,start_time10,end_time10,start_place20,end_place20;int left,isFull,mark=1;float price,price_discount;for(;p-next!=NULL;p=p-next)/,printf(n);scanf(%s,file_addr);readfile=fopen(file_addr,r);while(!feof(readfile)fscanf(readfile,%s,flight_num);fscanf(readfile,%s,start_place);fscanf(readfile,%s,end_place);fscanf(readfile,%s,start_time);fscanf(readfile,%s,end_time);fscanf(readfile,%f,&price);fscanf(readfile,%f,&price_discount);fscanf(readfile,%d,&left);fscanf(readfile,%d,&isFull);insert_flight(p,flight_num,start_place,end_place,start_time,end_time,left,price, price_discount,isFull);int flight_num_check(flightnode *h,char *flight_num)/flightnode *p=h;printf(%-8s%-12s%-12s%-10s%-10s%-8s%-6s%-10s%-8sn,);for(;p!=NULL;p=p-next)if(strcmp(p-flight_num,flight_num)=0)printf(%-8s%-12s%-12s%-10s%-10s%-8.2f%-6.2f%-10d%-8dn,p-flight_num, p-start_place,p-end_place,p-start_time,p-end_time,p-price,p-price_discount,p-isFull,p-left);return 1;printf(tt,%s!n,flight_num);return 0;int place_check(flightnode *h,char *start_place,char *end_place)/flightnode *p=h;int mark=0;printf(%-8s%-12s%-12s%-10s%-10s%-8s%-6s%-10s%-8sn,);for(;p!=NULL;p=p-next)if(strcmp(p-start_place,start_place)=0&strcmp(p-end_place,end_place)=0)printf(%-8s%-12s%-12s%-10s%-10s%-8.2f%-6.2f%-10d%-8dn,p-flight_num, p-start_place,p-end_place,p-start_time,p-end_time,p-price,p-price_discount,p-isFull,p-left);mark=1;if(mark=0)printf(tt,%s%s!n,start_place,end_place);return 0;return 1;void check_all_flight(flightnode *h)flightnode *p=h;int m=0;printf(%-8s%-12s%-12s%-10s%-10s%-8s%-6s%-10s%-8sn,);for(;p!=NULL;p=p-next)printf(%-8s%-12s%-12s%-10s%-10s%-8.2f%-6.2f%-10d%-8dn,p-flight_num, p-start_place,p-end_place,p-start_time,p-end_time,p-price,p-price_discount,p-isFull,p-left);m=1;if(m=0)printf(tt!n);void flight_check(flightnode *h)/flightnode *p=h-next;char flight_num10,start_place20,end_place20;char a;printf(tt:n);printf(tt1;n);printf(tt2;n);printf(tt3.ntt:);a=getch();printf(%cn,a);if(a=1)printf(tt:);scanf(%s,flight_num);flight_num_check(p,flight_num);else if(a=2)printf(tt:);scanf(%s,start_place);printf(tt:);scanf(%s,end_place);place_check(p,start_place,end_place);else if(a=3)check_all_flight(p);elsereturn;int ID_name_check(passengerList *PList,char *name,char *ID_num)passengernode *p=PList-head-next;int mark=0;printf(%-8s%-20s%-20s%-10s%-8s%n,);for(;p!=NULL;p=p-next)if(strcmp(p-ID_num,ID_num)=0&strcmp(p-name,name)=0)printf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-ID_num, p-flight_num,p-ticket_num);mark=1;if(mark=0)printf(tt,%s,%s!n,name,ID_num);return 0;return 1;int order_num_check(passengerList *PList,int order_num)passengernode *p=PList-head-next;printf(%-8s%-20s%-20s%-10s%-8s%n,);for(;p!=NULL;p=p-next)if(p-order_num=order_num)printf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-ID_num, p-flight_num,p-ticket_num);return 1;printf(tt,%d!n,order_num);return 0;void check_all_passenger(passengerList *PList)passengernode *p=PList-head-next;int m=0;printf(%-8s%-20s%-20s%-10s%-8s%n,);for(;p!=NULL;p=p-next)printf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-ID_num, p-flight_num,p-ticket_num);m=1;if(m=0)printf(tt!n);void passenger_check(passengerList *PList)char name20,ID_num15;int order_num;char a;printf(tt:n);printf(tt1;n);printf(tt2;n);printf(tt3.ntt:);a=getch();printf(%cn,a);if(a=1)printf(tt:);scanf(%s,name);printf(tt:);scanf(%s,ID_num);ID_name_check(PList,name,ID_num);else if(a=2)printf(tt:);scanf(%d,&order_num);order_num_check(PList,order_num);else if(a=3)check_all_passenger(PList);elsereturn;void modify_flight(flightnode *&h,passengerList *&PList)flightnode *p=h-next;char flight_num10,start_time10,end_time10;char a;printf(tt*n);printf(tt*n);printf(tt* -1 *n);printf(tt* -2 *n);printf(tt* -3 *n);printf(tt*n);printf(tt:);a=getch();printf(%cn,a);if(a=1)add_flight(h);else if(a=2)delete_flight(h,PList);else if(a=3)printf(tt:);scanf(%s,flight_num);if(flight_num_check(p,flight_num)=1)printf(tt:);scanf(%s,start_time);printf(tt:);scanf(%s,end_time);for(;p!=NULL;p=p-next)if(strcmp(flight_num,p-flight_num)=0)strcpy(p-start_time,start_time);strcpy(p-end_time,end_time);printf(tt%s!n,flight_num);elsereturn;int book(flightnode *&h,passengerList *&PList)char name20; /char ID_num20; /char flight_num10; /char start_place20;/char end_place20; /int ticket_num; /int k;flightnode *p=h-next;printf(tt:n);printf(tt:);scanf(%s,start_place);printf(tt:);scanf(%s,end_place);if(place_check(h,start_place,end_place)=1)printf(tt:);scanf(%s,flight_num);while(flight_num=NULL)printf(!n);printf(tt:);scanf(%s,flight_num);while(p!=NULL)if(strcmp(p-flight_num,flight_num)=0)printf(tt:);scanf(%s,name);printf(tt:);scanf(%s,ID_num);printf(tt:);scanf(%d,&ticket_num);while(name=NULL)printf(!n);printf(tt:);scanf(%s,name);while(ID_num=NULL)printf(!n);printf(tt:);scanf(%s,ID_num);while(ticket_num=0)printf(!n);printf(tt:);scanf(%d,&ticket_num);if(p-left0&p-left=ticket_num)insert_passengerList(h,PList,name,ID_num,flight_num,ticket_num);printf(tt%6.2f.n,p-price*p-price_discount* ticket_num/10);getch();printf(tt,!n);return 1;elseprintf(tt*!*n);printf(tt*-1ntt*-0*n);printf(tt:);scanf(%d,&k);if(k=1)printf(tt:n);if(find_same_flight(h,flight_num)=1)printf(tt:);scanf(%s,flight_num);insert_passengerList(h,PList,name,ID_num,flight_num, t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度专业农产品集市摊位租赁经营合同
- 2025年度汽车抵押融资平台服务协议
- 2025版国际贸易保险合同范本下载
- 分布式光伏与建筑一体化2025年市场推广挑战与技术突破创新路径研究报告
- 2025版教育培训机构信息服务合同范本
- 2025碧桂园物业用房施工与物业服务质量保证合同
- 2025年农业循环经济菜园大棚承包与资源利用合同
- 2025年度婚纱摄影作品居间代理服务合同
- 2025年度租赁合同样本(含特殊条款定制服务)
- 2025电梯品牌代理商授权与区域市场管理合同范本
- 梅毒专题知识讲座
- 70周岁以上老年人换长久驾照三力测试题库
- 斜视患者的护理
- GB/T 18492-2001信息技术系统及软件完整性级别
- 脓毒症诊断和治疗进展课件
- 急诊医学-中毒
- 欧体楷书特征及写法 完整版教学课件
- 现代农业技术讲座课件
- 学习《中小学教育惩戒规则(试行)》课件
- 初中数学教材解读人教八年级上册(2023年修订)第十三章轴对称等边三角形 导学案
- DB11-T1515-2018养老服务驿站设施设备配置规范
评论
0/150
提交评论