




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、航空客运订票系统程序要求:1、 问题描述航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。设计一个航空客运订票系统,以使上述业务可以借助计算机完成。2、 要求1) 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补的客户名单;2) 系统实现的功能如下:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞
2、抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件存储结构:航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操作按队列的操作来实现。程序流程图: Switch(1)录入功能请按次序输入航班号,飞机号,终点站,飞行日期,乘客总数,余票数等信息 查询功能通过目的地查询Switch(1)请输入要查询的目的地Switch(2)请输入要查询的航班号通过航班号查询Sw
3、itch(2)Switch(3)订票功能请输入您需要的订票数订票成功订票数余票数输入你定的票数输入你的名字退票功能Switch(4)订票数余票数退票成功Switch(5)退出系统详细代码:#include #include #include #include #define m 4 /3架飞机#define n 5 /每架飞机5张票struct node char name21; char id21; int seat,plane,date; node *next,*pre;struct wait char name21; char id21; char phone8; int seat,pl
4、ane,date,count; wait *next,*pre;struct piao int seatn+1;void makenull(); void makenull_piao();void makenull_information();void list_menu();void list_piao();void makenull_wait();void list_information();void plane_information(node *head);void book();void add_information(node *head,int x,int y);void ad
5、d_wait(int x,int y);void search_delete(int x);void write_to_file();void show_wait();bool comp(node *x,node*y);node *head1,*head2,*head3,*q;wait *wait_head,*wait_end;char c;piao am;void main() makenull(); do list_menu(); coutendlc; if (c!=6) switch(c) case 0 : show_wait();break; case 1 : list_piao();
6、book();break; case 2 : search_delete(1);break; case 3 : list_piao();break; case 4 : list_information();break; case 5 : search_delete(0);break; default : break; while(c!=6); coutExit System ;void makenull() makenull_piao(); makenull_information(); makenull_wait();void list_menu() coutendl; coutendl 菜
7、单; coutendl *; coutendl * 0 . 查看排队情况 *; coutendl * 1 . 订票 *; coutendl * 2 . 退票 *; coutendl * 3 . 查看剩余票 *; coutendl * 4 . 查看飞机信息 *; coutendl * 5 . 查看乘客信息 *; coutendl * 6 . 退出 *; coutendl *; coutendl;void makenull_piao() FILE *fp; int i; if(fp=fopen(piao.dat,r) = NULL ) fp=fopen(piao.dat,w); for (i=1;
8、i=m-1;i+) fwrite(&ai,sizeof(piao),1,fp); fclose(fp); fp=fopen(piao.dat,r); for(i=1;ipre=NULL; head1-next=NULL; head2-pre=NULL; head2-next=NULL; head3-pre=NULL; head3-next=NULL; q=head1; for(i=1;inext=r; r-pre=q; r-next=NULL; q=q-next; fclose(fp); if(i=a1.seat0+1) head2-next=q; q-pre-next=NULL; q-pre
9、=head2; if(i=a1.seat0+a2.seat0+1) head3-next=q; q-pre-next=NULL; q-pre=head3; void makenull_wait() wait *tempw; FILE *fp; tempw=new wait; int i; if(fp=fopen(wait.txt,r) =NULL ) fp=fopen(wait.txt,w); fclose(fp); wait_end=new wait; wait_head=new wait; wait_end-next=NULL; wait_end-pre=NULL; wait_head=w
10、ait_end; wait_head-count=0; fp=fopen(wait.txt,r); fread(wait_head,sizeof(wait),1,fp); for(i=1;icount;i+) fread(tempw,sizeof(wait),1,fp); wait_end-next=tempw; tempw-pre=wait_end; tempw-next=NULL; wait_end=tempw; void list_piao() int i,j; for(i=1;i=m-1;i+) if(ai.seat0!=n) coutendl第 i 架飞机剩余的票 :endl; fo
11、r(j=1;j=n;j+) if (ai.seatj=0) cout j; coutendl; else coutendlThe i plane is full !endlendl; void list_information() int x; do coutendlx;coutendl;while(x=m); coutendl第 x 架飞机的信息如下 next!=NULL) q=head-next; else q=NULL; cout飞机空,无预订票 !endl; while(q!=NULL) coutendl*date=q-plane; cout日期 :dateendl; cout座位号
12、: seatendl; cout姓名 : name; coutendlID 号 : id; q=q-next;x+; if (x % 3 =0) ch=getch(); coutendl;void book() int i,j,p; coutendli; if (i=m) coutendl* 超出范围!*endl请重新输入:; else coutendl你要订的是到i地的飞机endl; coutendl第 i 架飞机剩余的票 :endl; for(p=1;p=n;p+) if (ai.seatp=0) cout p; coutendl; break; while(1); coutendlj;
13、if (jn) coutendl* 超出范围!*endldate=i; coutendl您的订票日期 : dateendl; break; while(1);if (ai.seatj=0) ai.seatj=1; coutendl; ai.seat0+; if(i=1) add_information(head1,1,j); if(i=2) add_information(head2,2,j); if(i=3) add_information(head3,3,j); else coutendl* 对不起,该座位已被预订,您被安排到订票等候队列 *next=NULL; cout请输入个人信息en
14、dl; coutendl*endl; couttempw-name; couttempw-id; couttempw-phone; tempw-seat=y; tempw-plane=x; wait_end-next=tempw; tempw-pre=wait_end; wait_end=wait_end-next; coutendl* 正在排队等候 *count+; write_to_file();void show_wait() wait *tempw; tempw=wait_head-next; if (tempw=NULL) coutendl排队中没有人!endl; while(tem
15、pw!=NULL) coutnamenext; void add_information(node *head,int x,int y) node *temp; temp=new node; temp-pre=NULL; temp-next=NULL; cout请输入个人信息endl; coutendl*endl; couttemp-name; couttemp-id; temp-seat=y; temp-plane=x; temp-next=head-next; temp-pre=head; if (head-next!=NULL) head-next-pre=temp; head-next
16、=temp; write_to_file(); coutendl* 订票成功 *endl;void search_delete(int x) node *p,*q,*r; wait *tempw,*tempw2,*tempw3; int step=1,t1,t2,i; char ch; p=new node; tempw=new wait; tempw2=new wait; tempw3=new wait; q=head1; coutendl请输入个人信息endl; cout*endl; coutendlp-name; do q=q-next; if ( (q!=NULL) & (comp(q
17、,p) ) coutdate=q-plane; coutLocated!endl; cout*; coutendl姓名 : name; coutendlID号 : id; coutendl座位号 : seat; coutendl班机号 : plane; coutendl日期 : dateendl; if (x=1) coutch; if (ch=Y | ch=y) t1=q-plane; t2=q-seat; at1.seatt2=0; at1.seat0-; r=q;q=q-pre; r-pre-next=r-next; if(r-next!=NULL) r-next-pre=r-pre;
18、delete(r); cout* 记录删除成功 ! *; write_to_file(); tempw=wait_head; for(i=0;icount;i+) tempw=tempw-next; if(tempw=NULL) break; if(tempw-plane=t1) & (tempw-seat=t2) strcpy(tempw3-name,tempw-name); strcpy(tempw3-phone,tempw-phone); coutendl等候的人中有可以订票的了:endl; coutendl姓名 : name; coutendlID号 : idplane=1) add_
19、information(head1,1,tempw-seat); if(tempw-plane=2) add_information(head2,2,tempw-seat); if(tempw-plane=3) add_information(head3,3,tempw-seat); tempw2=tempw-pre; tempw2-next=tempw-next; if(tempw-next=NULL) wait_end=tempw2; else tempw-next-pre=tempw2; delete(tempw); wait_head-count-; write_to_file(); coutendl等候的name已经成功订票,已经由电话phone通知了endl; break; continue; else if (q=NULL) step+; if(step=2) q=head2; if(step=3) q=head3; if(step=4) coutendlnamei != q-namej) & (p-namei != 0) ) i+; if (p-namei = 0) return(fa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人疾病知识课件
- 《翻译理论与实践1》课程介绍与教学大纲
- 医疗评估与执行单规范填写实操指南
- 醉驾安全防护知识培训课件
- 老年人护理学课件教学
- 老年人慢性病的课件
- 连词成句搭桥互动游戏支持39个单词句子update
- 华为公司国际营销策略
- CN120208489A 一种提升水效的智慧一体化净水系统
- 外研版九年级英语下册Module4单元测试试卷-含答案03
- 鼻腔冲洗护理技术团体标准解读
- 水箱拆除专项施工方案
- GB/T 41130-2021展览场馆安全管理基本要求
- GB/T 21733-2008茶饮料
- 纪委案件审理课件教材
- CorelDRAW教学讲解课件
- 人才管理-人才选用育留课件
- 成功八步课件
- 江苏省社会组织网上办事系统-操作手册
- 小学生打扫卫生值日表word模板
- 小学一年级开学第一课
评论
0/150
提交评论