logo资料库

数据结构航空客运订票系统.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
航空客运订票系统 程序要求: 1、 问题描述 航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。设计一 个航空客运订票系统,以使上述业务可以借助计算机完成。 2、 要求 1) 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、 乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级 1、2、3) 以及等候替补的客户名单; 2) 系统实现的功能如下: 通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数 据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城 市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询 飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该 航班已经无票,可以提供相关可选择航班; 退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订 票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件 存储结构:航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操 作按队列的操作来实现。 程序流程图: Switch(1) 录入功能 请按次序输入航班号,飞机号,终点站,飞行日期,乘客总数,余票数等信息
Switch(2) 查询功能 Switch(1) Switch(2) 通过目的地查询 请输入要查询的目的地 通过航班号查询 请输入要查询的航班号 Switch(3) 订票功能 请输入您需要的订票数 订票数<余票数 订票成功 Switch(4) 退票功能 输入你的名字 输入你定的票数 订票数<余票 退票成功
Switch(5) 退出系统 详细代码: #include #include #include #include #define m 4 #define n 5 struct node { char name[21]; char id[21]; int node *next,*pre; seat,plane,date; //3 架飞机 //每架飞机 5 张票 }; struct wait { char name[21]; char id[21]; char phone[8]; int wait *next,*pre; seat,plane,date,count; }; struct piao { int seat[n+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 add_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 a[m]; void main() { makenull(); do { list_menu(); cout<>c; if (c!='6') "; switch(c) case '0' : show_wait();break; case '1' : {list_piao();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'); cout<<"Exit System "; } void makenull() { makenull_piao(); makenull_information(); makenull_wait(); } void list_menu() { cout<
} void makenull_piao() { FILE *fp; int i; if((fp=fopen("piao.dat","r")) == NULL ) { fp=fopen("piao.dat","w"); for (i=1;i<=m-1;i++) fwrite(&a[i],sizeof(piao),1,fp); fclose(fp); fp=fopen("piao.dat","r"); } for(i=1;i<=m-1;i++) fread(&a[i],sizeof(piao),1,fp); fclose(fp); } void makenull_information() { node *r; FILE *fp; int i,j,sum; sum=a[1].seat[0]+a[2].seat[0]+a[3].seat[0]; fp=fopen("information.dat","r"); head1=new node; head2=new node; head3=new node; head1->pre=NULL; head1->next=NULL; head2->pre=NULL; head2->next=NULL; head3->pre=NULL; head3->next=NULL; q=head1; for(i=1;i<=sum;i++) { j=0; r=new node; fread(r,sizeof(node),1,fp); q->next=r; r->pre=q; r->next=NULL; q=q->next; fclose(fp);
if(i==a[1].seat[0]+1) { head2->next=q; q->pre->next=NULL; q->pre=head2; } if(i==a[1].seat[0]+a[2].seat[0]+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=wait_end; wait_head->count=0; fp=fopen("wait.txt","r"); fread(wait_head,sizeof(wait),1,fp); for(i=1;i<=wait_head->count;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(a[i].seat[0]!=n) { cout<>x;cout<=m); cout<next!=NULL) q=head->next; else { q=NULL; cout<<"飞机空,无预订票 !"<date=q->plane; cout<<"日期 :"<date<seat<name; cout<id; q=q->next;x++; if (x % 3 ==0) ch=getch(); } cout<
void book() { int i,j,p; cout<>i; if (i<1 || i>=m) { cout<>j; if (j<1 || j>n) { cout<date=i; cout<date<
分享到:
收藏