为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

航空订票系统

2017-10-07 20页 doc 41KB 18阅读

用户头像

is_212655

暂无简介

举报
航空订票系统航空订票系统 #include #include #include #include typedef struct plane_info { int number,seat_now,seat_total,price; char time_go[16],time_to[16],place_go[20],place_to[20]; float discount; struct plane_info * next; }p_info; typedef struct cust_info { char name...
航空订票系统
航空订票系统 #include #include #include #include typedef struct plane_info { int number,seat_now,seat_total,price; char time_go[16],time_to[16],place_go[20],place_to[20]; float discount; struct plane_info * next; }p_info; typedef struct cust_info { char name[20]; int numb_id,amount_t,numb_p,numb_ord; struct cust_info * next; }c_info; void luru(); void xiugai(); void chaxun(); void dingpiao(); void tuipiao(); p_info * read_p(); c_info * read_c(); void write_p(p_info *); void write_c(c_info *); void free_p(p_info *); void free_c(c_info *); ///*****************主界面函数******************///// void welcome() { int choice,i=0; system("cls"); do { printf("\t\t**************航空订票系统**************\n"); printf("\t\t* *\n"); printf("\t\t* ? 1.录入航班 *\n"); printf("\t\t* *\n"); printf("\t\t* ? 2.查询航班 *\n"); printf("\t\t* *\n"); printf("\t\t* ? 3.修改航班 *\n"); printf("\t\t* *\n"); printf("\t\t* ? 4.顾客订票 *\n"); printf("\t\t* *\n"); printf("\t\t* ? 5.顾客退票 *\n"); printf("\t\t* *\n"); printf("\t\t* ? 0.退出系统 *\n"); printf("\t\t* *\n"); printf("\t\t****************************************\n"); printf("\t\t请选择:"); scanf("%d",&choice); system("cls"); switch(choice) { case 0: exit(0); case 1: luru(); break; case 3: xiugai(); break; case 2: chaxun(); break; case 4: dingpiao(); break; case 5: tuipiao(); break; default: printf("您的输入有误,请重新选择:\n\n"); } }while(choice!=0); } //*****************航班信息录入功能***********************// void luru() { char choice; p_info * p; FILE * fp; if((fp=fopen("plane.dat","ab"))==NULL) {printf("打开错 误!");getch();welcome();} do { system("cls"); printf("请输入要录入的航班信息:\n"); printf("航班号 起飞时间 抵达时间 始发地 目的地 票价 折扣情况 座位 总数 剩余座位数\n"); p=(p_info *)malloc(sizeof(p_info)); p->next=NULL; scanf("%d%s%s%s%s%d%f%d%d",&(p->number),p->time_go,p->time_to,p->place_go,p- >place_to,&(p->price) ,&(p->discount),&(p->seat_total),&(p->seat_now)); fwrite(p,sizeof(p_info),1,fp); printf("继续录入请输入0,否则返回上一级菜单\n"); choice=getch(); }while(choice=='0'); fclose(fp); system("cls"); } //*****************航班信息的修改*******************// void xiugai() { int number; p_info *p, *head; head=read_p(); printf("请输入需要修改的航班号:"); scanf("%d",&number); p=head; while(p!=NULL) { if(p->number==number) { printf("您要修改的航班信息为:\n"); printf("航班号 起飞时间 抵达时间 始发地 目的地 票价 折扣情况 座位总数 剩余座位数\n"); printf("\n%d %s %s %s %s %d %f %d %d\n",p->number,p->time_go,p- >time_to,p->place_go ,p->place_to,p->price,p->discount,p->seat_total,p->seat_now); printf("\n请输入要修改后的航班信息\n"); printf("航班号 起飞时间 抵达时间 始发地 目的地 票价 折扣情况 座位总数 剩余座位数\n"); scanf("%d%s%s%s%s%d%f%d%d",&(p->number),p->time_go,p->time_to,p->place_go,p- >place_to,&(p->price) ,&(p->discount),&(p->seat_total),&(p->seat_now)); break; } p=p->next; } if(p!=NULL) { write_p(head); printf("您已成功修改%d号航班\n",p->number); } else { printf("对不起,该航班不存在\n"); } free_p(head); //释放该链 printf("单击任意键退出"); getch(); system("cls"); //清屏 } // 实现航班信息查询功能 void chaxun() { int choice, number; char place_go[20], place_to[20]; p_info *head=NULL, *p; void chaxun_1(p_info * p, int number); void chaxun_2(p_info * p, char * place_go, char * place_to); head=read_p(); //航班信息链表的初始化 if(head==NULL) { printf("没有航班信息!\n单击任意键退出......\n"); getch(); welcome();} p=head; do { system("cls"); printf("0.返回主菜单\t1.航班号查询\t2.始发地查询\n"); printf("请输入查询方式:"); scanf("%d",&choice); switch(choice) { case 1: printf("\n请输入要查询的航班号:"); scanf("%d",&number); chaxun_1(head,number); break; case 2: printf("请输入要查询的始发地与目的地:"); scanf("%s%s",place_go,place_to); chaxun_2(head, place_go, place_to); break; } }while(choice!=0); welcome(); free_p(head); } /********************实现订票功能*********************/ void dingpiao() { long length=0; p_info *head_p=NULL,*p2; c_info *p, *p1, *head_c; char choice; head_c=read_c(); head_p=read_p(); if(head_p==NULL) {printf("没有航班信息,不能订票!");getch();welcome(); } p1=head_c; p2=head_p; FILE * fp; if((fp=fopen("customer.dat","ab"))==NULL) {printf("打开失 败!");getch();welcome();} if(p1!=NULL) { while(p1!=NULL) { p1=p1->next;length++; } } do { printf("请输入订票者信息:\n"); printf("姓名,证件号,数量,航班号\n"); p=(c_info *)malloc(sizeof(c_info)); scanf("%s%d%d%d",p->name,&(p->numb_id),&(p->amount_t),&(p->numb_p) ); p->numb_ord=length+1;p->next=NULL; while(p2!=NULL) { if(p2->number==p->numb_p) break; p2=p2->next; } if(p2==NULL) { printf("没有航班信息!不能订票\n"); getch();welcome();} else { printf("您查询的航班信息为:\n"); printf("航班号 起飞时间 抵达时间 始发地 目的地 票价 折扣情况 座位总数 剩余座位数\n"); printf("\n%d %s %s %s %s %d %f %d %d\n",p2->number,p2->time_go, p2->time_to,p2->place_go ,p2->place_to,p2->price,p2->discount,p2->seat_total,p2->seat_now); } if(p2->seat_now-p->amount_t<0) { printf("对不起,该航班只剩%d张票.\n暂时不能订 票.\n",p2->seat_now);getch();break;} p2->seat_now=p2->seat_now-p->amount_t; length++; fwrite(p,sizeof(c_info),1,fp); printf("您已成功订票!\n订单号是:%d",p->numb_ord); printf("\n继续订票请输入0,否则返回上一级菜单\n"); choice=getch(); }while(choice=='0'); fclose(fp); write_p(head_p); free_p(head_p); free_c(head_c); welcome(); } //***********************实现退票功能**********************// void tuipiao() { char name[20]; int numb_ord, numb_id; p_info *head_p, *p_p; c_info *head_c, *p_c, *p1_c=NULL; head_p=read_p(); head_c=read_c(); p_p=head_p; p_c=head_c; if(p_c==NULL) { printf("没有客户信息!\n单击任意键退出......"); getch();welcome(); } printf("请输入客户姓名:\n"); scanf("%s",name); printf("请输入证件号:\n"); scanf("%d",&numb_id); printf("请输入订单号:\n"); scanf("%d",&numb_ord); while(p_c!=NULL) { if(strcmp(name, p_c->name)==0&&numb_ord==p_c->numb_ord&&p_c->numb_id==numb_id) break; p1_c=p_c; p_c=p_c->next; } if(p_c==NULL) { printf("该顾客信息不存在,单击任意键退出"); getch(); welcome(); } else // 将链表信息重新写到文件中 { while(p_p!=NULL) { if(p_p->number==p_c->numb_p) break; p_p=p_p->next; } p_p->seat_now=p_p->seat_now+p_c->amount_t; //相关航班信息票数恢复 if(p1_c==NULL) //删除退票顾客信息结点 { head_c=NULL; free(p_c); } else { p1_c->next=p_c->next; free(p_c); } write_p(head_p); write_c(head_c); printf("退票成功,单击任意键退出"); getch(); } free_p(head_p); free_c(head_c); welcome(); } //**************** 实现以航班号查询 *******************// void chaxun_1(p_info * p, int number) { while(p!=NULL) //执行条件:未到尾结点 { if(p->number==number) break; p=p->next; } if(p==NULL) {printf("\a对不起该航班信息不存在!\n");getch();chaxun();} printf("符合要求的航班信息如下所示:\n"); printf("航班号 起飞时间 抵达时间 始发地 目的地 票价 折扣情况 座位总数 剩余座位数\n"); printf("%d %s %s %s %s %d %f %d %d\n",p->number,p->time_go,p->t ime_to,p->place_go ,p->place_to,p->price,p->discount,p->seat_total,p->seat_now); printf("任意键返回......"); getch(); } // *******************实现以始发地及目的地查询******************// void chaxun_2(p_info * p, char * place_go, char * place_to) { int count=0; printf("\n符合要求的航班信息如下所示:\n"); printf("\n航班号 起飞时间 抵达时间 始发地 目的地 票价 折扣情况 座位 总数 剩余座位数\n"); while(p!=NULL) { if(strcmp(place_go,p->place_go)==0&&strcmp(place_to,p->place_to)==0) { printf("%d %s %s %s %s %d %f %d %d\n\n",p->number,p->time_go,p- >time_to,p->place_go ,p->place_to,p->price,p->discount,p->seat_total,p->seat_now); count++; } p=p->next; } if(count==0) printf("\n\a对不起,没有符合您要求的航班\n\n"); else printf("共有%d个航班符合您的要求\n",count); printf("任意键返回......"); getch(); } //****************初始化航班信息文件链表************************* p_info * read_p() { p_info *p1, *p2,*p3,*head=NULL; FILE *fp; if((fp=fopen("plane.dat","rb"))==NULL) { printf("航班信息不存在\n单击任意键退出!\n"); getch();welcome(); } while(!feof(fp)) { p1=(p_info *)malloc(sizeof(p_info)); fread(p1,sizeof(p_info),1,fp); if(head==NULL) { p1->next=NULL; head=p1; p2=p1; } else { p1->next=NULL; p2->next=p1; p3=p2; p2=p1; //p2永远指向最后一个结点 } } free(p2); if(head==p1) { head=NULL; } else p3->next=NULL; fclose(fp); return(head); } //***************初始化顾客信息链表******************// c_info * read_c() { c_info *p1,*p3, *p2,*head=NULL; FILE *fp; if((fp=fopen("customer.dat","rb"))==NULL) { printf("顾客信息不存在\n单击任意键退出!\n"); getch(); welcome(); } while(!feof(fp)) { p1=(c_info *)malloc(sizeof(c_info)); fread(p1,sizeof(c_info),1,fp); if(head==NULL) { p1->next=NULL; head=p1; p2=p1; } else { p1->next=NULL; p2->next=p1; p3=p2; p2=p1; } } free(p2); if(head==p1) { head=NULL; } else p3->next=NULL; fclose(fp); return(head); } /************将航班信息链表写入到航班信息文件中**********/ void write_p(p_info *p) { FILE * fp; if((fp=fopen("plane.dat","wb"))==NULL) { printf("不能打开航班信息文件"); getch();welcome();} while(p!=NULL) { fwrite(p,sizeof(p_info),1,fp); p=p->next; } fclose(fp); } /*************将顾客信息链表写入到顾客信息文件中**********/ void write_c(c_info *p) { FILE * fp; if((fp=fopen("customer.dat","wb"))==NULL) { printf("不能打开航班信息文件"); getch();welcome();} while(p!=NULL) { fwrite(p,sizeof(c_info),1,fp); p=p->next; } fclose(fp); } //****************释放航班信息链表 ***************// void free_p(p_info *p) { p_info *p1; while(p!=NULL) { p1=p; p=p->next; free(p1); } } //*****************释放顾客信息链表*******************// void free_c(c_info *p) { c_info *p1; while(p!=NULL) { p1=p; p=p->next; free(p1); } } ////主函数////// void main() { welcome(); }
/
本文档为【航空订票系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索