欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构航空客运订票系统(13页).doc

    • 资源ID:36347620       资源大小:61KB        全文页数:13页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构航空客运订票系统(13页).doc

    -航空客运订票系统程序要求:1、 问题描述航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。设计一个航空客运订票系统,以使上述业务可以借助计算机完成。2、 要求1) 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补的客户名单;2) 系统实现的功能如下:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件存储结构:航线的所有信息存储在一个结构体中,增加,查询,订票,退票等操作按队列的操作来实现。程序流程图: Switch(1)录入功能请按次序输入航班号,飞机号,终点站,飞行日期,乘客总数,余票数等信息 查询功能通过目的地查询Switch(1)请输入要查询的目的地Switch(2)请输入要查询的航班号通过航班号查询Switch(2)Switch(3)订票功能请输入您需要的订票数订票成功订票数<余票数输入你定的票数输入你的名字退票功能Switch(4)订票数<余票数退票成功Switch(5)退出系统详细代码:#include <iostream.h>#include <stdio.h>#include <string.h>#include <conio.h>#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,plane,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 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 am;void main() makenull(); do list_menu(); cout<<endl<<"choose an operation: " cin>>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<<endl<<"" cout<<endl<<" 菜单" cout<<endl<<" *" cout<<endl<<" * 0 . 查看排队情况 *" cout<<endl<<" * 1 . 订票 *" cout<<endl<<" * 2 . 退票 *" cout<<endl<<" * 3 . 查看剩余票 *" cout<<endl<<" * 4 . 查看飞机信息 *" cout<<endl<<" * 5 . 查看乘客信息 *" cout<<endl<<" * 6 . 退出 *" cout<<endl<<" *" cout<<endl<<""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(&ai,sizeof(piao),1,fp); fclose(fp); fp=fopen("piao.dat","r"); for(i=1;i<=m-1;i+) fread(&ai,sizeof(piao),1,fp); fclose(fp);void makenull_information() node *r; FILE *fp;int i,j,sum;sum=a1.seat0+a2.seat0+a3.seat0; 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=a1.seat0+1) head2->next=q; q->pre->next=NULL; q->pre=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=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(ai.seat0!=n) cout<<endl<<"第 "<<i<<" 架飞机剩余的票 :"<<endl; for(j=1;j<=n;j+) if (ai.seatj=0) cout<<" "<<j; cout<<endl; else cout<<endl<<"The "<<i<<" plane is full !"<<endl<<endl; void list_information() int x; do cout<<endl<<"显示哪架飞机的信息 ? " cin>>x;cout<<endl;while(x<1 | x>=m); cout<<endl<<"第 "<<x<<" 架飞机的信息如下 "<<endl; if(x=1) plane_information(head1); if(x=2) plane_information(head2); if(x=3) plane_information(head3);void plane_information(node *head) node *q; char ch; int x=0; if(head!=NULL && head->next!=NULL) q=head->next; else q=NULL; cout<<"飞机空,无预订票 !"<<endl; while(q!=NULL) cout<<endl<<"*"<<endl; q->date=q->plane; cout<<"日期 :"<<q->date<<endl; cout<<"座位号 : "<<q->seat<<endl; cout<<"姓名 : "<<q->name; cout<<endl<<"ID 号 : "<<q->id; q=q->next;x+; if (x % 3 =0) ch=getch(); cout<<endl;void book() int i,j,p; cout<<endl<<"请选择地点:(1、2、3) " do cin>>i; if (i<1 | i>=m) cout<<endl<<"* 超出范围!*"<<endl<<"请重新输入:" else cout<<endl<<"你要订的是到"<<i<<"地的飞机"<<endl; cout<<endl<<"第 "<<i<<" 架飞机剩余的票 :"<<endl; for(p=1;p<=n;p+) if (ai.seatp=0) cout<<" "<<p; cout<<endl; break; while(1); cout<<endl<<"请选择座位号 : " do cin>>j; if (j<1 | j>n) cout<<endl<<"* 超出范围!*"<<endl<<"请重新输入:" else q->date=i; cout<<endl<<"您的订票日期 : "<<q->date<<endl; break; while(1);if (ai.seatj=0) ai.seatj=1; cout<<endl; 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 cout<<endl<<"* 对不起,该座位已被预订,您被安排到订票等候队列 *"<<endl; add_wait(i,j); void add_wait(int x,int y) wait *tempw; tempw=new wait; tempw->next=NULL; cout<<"请输入个人信息"<<endl; cout<<endl<<"*"<<endl; cout<<"姓名 : "cin>>tempw->name; cout<<"ID号 : "cin>>tempw->id; cout<<"电话 :"cin>>tempw->phone; tempw->seat=y; tempw->plane=x; wait_end->next=tempw; tempw->pre=wait_end; wait_end=wait_end->next; cout<<endl<<"* 正在排队等候 *"<<endl; wait_head->count+; write_to_file();void show_wait() wait *tempw; tempw=wait_head->next; if (tempw=NULL) cout<<endl<<"排队中没有人!"<<endl; while(tempw!=NULL) cout<<tempw->name<<" - " tempw=tempw->next; void add_information(node *head,int x,int y) node *temp; temp=new node; temp->pre=NULL; temp->next=NULL; cout<<"请输入个人信息"<<endl; cout<<endl<<"*"<<endl; cout<<"姓名 : "cin>>temp->name; cout<<"ID号 : "cin>>temp->id; temp->seat=y; temp->plane=x; temp->next=head->next; temp->pre=head; if (head->next!=NULL) head->next->pre=temp; head->next=temp; write_to_file(); cout<<endl<<"* 订票成功 *"<<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; cout<<endl<<"请输入个人信息"<<endl; cout<<"*"<<endl; cout<<endl<<"姓名 : "cin>>p->name; do q=q->next; if ( (q!=NULL) && (comp(q,p) ) cout<<endl; q->date=q->plane; cout<<"Located!"<<endl; cout<<"*" cout<<endl<<"姓名 : "<<q->name; cout<<endl<<"ID号 : "<<q->id; cout<<endl<<"座位号 : "<<q->seat; cout<<endl<<"班机号 : "<<q->plane; cout<<endl<<"日期 : "<<q->date<<endl; if (x=1) cout<<"删除该纪录 ? Y/N " cin>>ch; 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; delete(r); cout<<"* 记录删除成功 ! *" write_to_file(); tempw=wait_head; for(i=0;i<wait_head->count;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); cout<<endl<<"等候的人中有可以订票的了:"<<endl; cout<<endl<<"姓名 : "<<tempw->name; cout<<endl<<"ID号 : "<<tempw->id<<endl; at1.seat0+; at1.seatt2=1; if(tempw->plane=1) add_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(); cout<<endl<<"等候的"<<tempw3->name<<"已经成功订票,已经由电话"<<tempw3->phone<<"通知了"<<endl; break; continue; else if (q=NULL) step+; if(step=2) q=head2; if(step=3) q=head3; if(step=4) cout<<endl<<"* 信息检索完毕 *"break; while(1);bool comp(node *x,node *y) node *p,*q; int i,j,k; p=x; q=y; i=j=0; do while ( (p->namei != q->namej) && (p->namei != '0') ) i+; if (p->namei = '0') return(false);break; else k=i; while ( (p->namek = q->namej) && (q->namej!='0') ) k+;j+; if (q->namej='0') return(true); else j=0; i+; while( (q->namej!='0') && (p->namei != '0') ); return(false);void write_to_file() FILE *fp; int i,j; int xm; node *p; wait *tempw; tempw=new wait; tempw=wait_head; fp=fopen("piao.dat","w"); for (i=1;i<=m-1;i+) fwrite(&ai,sizeof(piao),1,fp); fclose(fp); fp=fopen("information.dat","w"); x0=0;x1=a1.seat0; for(i=0,j=1;j<=m-1;j+) i=i+aj.seat0;xj=aj.seat0+xj-1; j=1;p=head1->next; for(j=1;j<=i;j+) if(j=x1+1) p=head2->next; if(j=x2+1) p=head3->next; if(p=NULL)break; fwrite(p,sizeof(node),1,fp); p=p->next; fclose(fp); fp=fopen("wait.txt","w"); for(j=0;j<=wait_head->count;j+) if(tempw=NULL)break; fwrite(tempw,sizeof(wait),1,fp); tempw=tempw->next; fclose(fp);-第 13 页-

    注意事项

    本文(数据结构航空客运订票系统(13页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开