欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    航空公司在线订票系统设计.doc

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

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

    航空公司在线订票系统设计.doc

    扬州大学信息工程学院课程设计报告课程名称 C+课程设计 设计题目 航空公司在线订票系统 学生姓名 张格伟 班 级 网络1501 班 学 号 151305131 指导老师 严芬 2016年6月目 录一、设计任务与要求3二、需求分析32.1 功能需求分析32.2 系统需求分析4三、功能模块43.1 各模块的算法设计说明43.2 存储结构设计说明8四、源代码9五、运行结果分析10六、收获与体会26七、主要参考资料26一、设计任务与要求制作一个订票系统,通过此系统可以实现如下功能: 1)浏览航线信息: 显示预先输入的航班信息; 2)查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。 3)订票: 可以订票,如果该航班已经无票,可以提供相关可选择航班(订票情况可以存在一个数据文件中,结构自己设定)。 4)退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。二、需求分析2.1 功能需求分析功能需求分析模块图如图2.2.1 功能模块图:图2.2.1 功能模块图2.2 系统需求分析开发环境:PC机Windows 8.1系统Visual C+ 6.0三、功能模块3.1 各模块的算法设计说明1浏览航线信息功能,调用display函数进行输出。2浏览已订票客户信息功能,按顺序输出客户信息链表中的信息。流程图如图3.1.1 浏览已订票客户信息功能流程图:图3.1.1 浏览已订票客户信息功能流程图3查询航线功能,根据客户提出的终点站名输出航线信息。流程图如图3.1.2 查询航线流程图:图3.1.2 查询航线流程图4办理订票业务功能,根据客户提出的航线信息等进行订票。流程图如图3.1.3 办理订票业务功能流程图:图3.1.3 办理订票业务功能流程图5办理退票业务功能,根据客户提出的航线信息等进行退票。流程图如图3.1.4 办理退票业务功能流程图:图3.1.4 办理退票业务功能流程图6主函数流程图如图3.1.7 主函数流程图:图3.1.7 主函数流程图3.2 存储结构设计说明typedef struct wai_cli /*单链队列存储等候替补的客户信息*/ char name10; /*姓名*/int req_amt; /*订票量*/struct wai_cli *next; qnode,*qptr;typedef struct pqueue /*等候替补的客户名单*/ qptr front; /*等候替补客户名单域的队头指针*/qptr rear; /*等候替补客户名单域的队尾指针*/linkqueue;上述单链队列用来存储排队等候的客户名单,这样可以通过队先进先出的特点来进行操作。先排队的客户可以先订票成功。typedef struct pas_list /*乘员名单*/ char name10; /*客户姓名*/int ord_amt; /*订票量*/ int grade; /*舱位等级*/struct pas_list *next;linklist;上述单链表用来存储乘员的信息,包括姓名、订票量、舱位等级。struct airline /*航线信息*/ char ter_name10; /*抵达城市*/char air_num10; /*航班号*/char laughtime10; /*起飞时间*/ char arrivetime10; /*到达时间*/char pri7; /*票价*/int tkt_amt; /*乘员定额*/int tkt_left; /*余票量*/linklist *order; /*乘员名单域,指向乘员名单链表的头指针*/linkqueue wait; /*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/lineinfo;这个结构体存储了航线信息,包括抵达城市、航班号、飞行时间、票价、乘员定额、余票量等。#define MAXSIZE 8 /*定义航线数量,可修改*/航线信息存储在“f1.txt”文件里,程序刚开始进行导入即可。四、源代码#include <iostream>#include <fstream>#include <cstdlib>#include <cstring>#include <conio.h>#include <windows.h> #define MAXSIZE 8 /*定义航线数量,可修改*/using namespace std;typedef struct wai_cli /*单链队列存储等候替补的客户信息*/ char name10; /*姓名*/int req_amt; /*订票量*/struct wai_cli *next; qnode,*qptr;typedef struct pqueue /*等候替补的客户名单*/ qptr front; /*等候替补客户名单域的队头指针*/qptr rear; /*等候替补客户名单域的队尾指针*/linkqueue;typedef struct pas_list /*乘员名单*/ char name10; /*客户姓名*/int ord_amt; /*订票量*/ int grade; /*舱位等级*/struct pas_list *next;linklist;struct airline char des_name10; /*抵达城市*/char air_num10; /*航班号*/char laughtime10; /*起飞时间*/ char arrivetime10; /*到达时间*/char pri7; /*票价*/int tkt_amt; /*乘员定额*/int tkt_left; /*余票量*/linklist *order; /*乘员名单域,指向乘员名单链表的头指针*/linkqueue wait; /*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/lineinfo;struct airline *start;void display(struct airline *info) /*打印每条航线的基本信息*/ cout<<info->des_name<<"t"<<"t"<<info->air_num<<"t"<<info->laughtime<<"t"<<"t"<<info->arrivetime<<"t"<<info->pri<<"t"<<" "<<info->tkt_amt<<"t"<<"t"<<" "<<info->tkt_left<<endl;void list() /*打印全部航线信息*/ struct airline *info;int i=0;info=start;cout<<endl;cout<<"*N代表第二天"<<endl;cout<<"终点站名t航班号t起飞时间 到达时间t票价t乘员定额t余票量"<<endl;while(i<MAXSIZE) display(info); /*调用display函数来输出*/info+;i+;cout<<endl<<endl;void search() /*根据客户提出的终点站名输出航线信息*/ struct airline *info,*find();char name10; /*要抵达的城市名称*/int i=0;info=start;cout<<"请输入要抵达城市的名称:"cin>>name;while(i<MAXSIZE) if(!strcmp(name,info->des_name) /*有该站名strcmp则返回,if(!0)即break*/break;info+;i+;if(i>=MAXSIZE) /*没有匹配的航线*/cout<<"对不起,没有这条航线!"<<endl;elsecout<<"终点站名t航班号t起飞时间 到达时间t票价t乘员定额t余票量"<<endl;display(info); /*调用display函数输出航线信息*/struct airline *find() /*根据系统提出的航班号查询并以指针形式返回*/ struct airline *info;char number10; /*查询的航班号*/int i=0;info=start;cout<<"请输入航班号:"cin>>number;while(i<MAXSIZE) if(!strcmp(number,info->air_num) /*有匹配航班*/return info; info+;i+; /*无匹配航班*/cout<<"对不起,没有这条航线!"<<endl;return NULL;void prtlink() /*打印订票乘员名单域的客户名单信息*/ linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL) /*按顺序输出客户信息链表*/cout<<"客户姓名 订票数额 舱位等级"<<endl;while(p) cout<<p->name<<"t"<<" "<<p->ord_amt<<"t"<<"t"<<p->grade<<endl;p=p->next; else /*没有人订这个航班*/cout<<"该航线没有客户信息!"<<endl;linklist *insertlink(linklist *head,int amount,char name,int grade) /*增加订票乘员名单域的客户信息*/ linklist *p1,*new1;p1=head;new1=(linklist*)malloc(sizeof(linklist);if(!new1) /*存储空间不足*/ cout<<endl<<"Out of memory!"<<endl;return NULL;strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;head=new1;new1->next=p1;return head;linkqueue appendqueue(linkqueue q,char name,int amount) /*增加排队等候的客户名单域*/ qptr new1;new1=(qptr)malloc(sizeof(qnode);strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front=NULL) /*若原排队等候客户名单域为空*/q.front=new1;elseq.rear->next=new1;q.rear=new1;return q;void order() /*办理订票业务*/ struct airline *info;int amount,grade; /*订票数量,舱位等级*/char name10; /*要订的航班号*/info=start;if(!(info=find() /*根据客户提供的航班号进行查询,如为空,退出该模块*/return;cout<<"请输入您需要的票数:"cin>>amount;if(amount>info->tkt_amt) /*若客户订票额超过乘员定票总额,退出*/ cout<<endl<<"对不起,您输入票数已经超过乘员定额!"return;if(amount<=info->tkt_left) /*若客户订票额末超过余票量,订票成功并等记信息*/ int i;cout<<"请输入您的姓名:"cin>>name;cout<<"请输入您需要的舱位等级(1,2或):"cin>>grade;info->order=insertlink(info->order,amount,name,grade); /*在订票乘员名单域中添加客户信息*/for(i=0;i<amount;i+) /*依次输出该订票客户的座位号*/cout<<name<<"的座位号是:"<<info->tkt_amt-info->tkt_left+i+1<<endl;info->tkt_left-=amount; /*该航线的余票量应减掉该客户的订票量*/cout<<endl<<"祝您乘坐愉快!"<<endl;else /*若满员或余票额少于订票额,询问客户是否需要进行排队等候*/ char r;cout<<endl<<"没有这么多票了,您需要排队等候吗?(Y/N)"r=getch();cout<<r;if(r='Y'|r='y') cout<<endl<<"请输入您的姓名:"cin>>name;info->wait=appendqueue(info->wait,name,amount); /*在排队等候乘员名单域中添加客户信息*/cout<<endl<<"注册排队成功!"<<endl;else cout<<endl<<"欢迎您再次订购!"<<endl;void return_tkt() /*退票模块*/ struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname10;if(!(info=find() /*调用查询函数,根据客户提供的航线进行搜索*/return;head=info->order;p1=head;cout<<"请输入你的姓名:"cin>>cusname;while(p1!=NULL) /*根据客户提供的姓名到订票客户名单域进行查询*/if(!strcmp(cusname,p1->name) break;p2=p1;p1=p1->next;if(p1=NULL) /*若未找到,退出本模块*/ cout<<"对不起,您没有订过票!"<<endl;return;else /*若信息查询成功,删除订票客户名单域中的信息*/if(p1=head) head=p1->next; elsep2->next=p1->next; info->tkt_left+=p1->ord_amt;grade=p1->grade;cout<<p1->name<<"退票成功!"<<endl; free(p1);info->order=head; /*重新将航线名单域指向订票单链表的头指针*/f=(info->wait).front; /*f指向排队等候名单队列的头结点*/r=(info->wait).rear; /*r指向排队等候名单队列的尾结点*/t=f; /*t为当前满足条件的排队候补名单域*/while(t)if(info->tkt_left>=info->wait.front->req_amt) /*若满足条件者为头结点*/ int i;info->wait.front=t->next;cout<<t->name<<"订票成功!"<<endl;for(i=0;i<t->req_amt;i+) /*输出座位号*/cout<<t->name<<"的座位号是:"<<(info->tkt_left)-i<<endl;info->tkt_left-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);/*插入到订票客户名单链表中*/free(t);break;back=t;t=t->next;if(info->tkt_left)>=(t->req_amt)&&t!=NULL)/*若满足条件者不为头结点*/ int i;back->next=t->next;cout<<t->name<<"订票成功!"<<endl;for(i=0;i<t->req_amt;i+) /*输出座位号*/cout<<t->name<<"'s seat number is:"<<(info->tkt_left)-i<<endl;info->tkt_left-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);/*插入到订票客户名单链表中*/free(t);break;if(f=r) break;void load() int start,sleep; for(start=0;start<1;start+) cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等."<<endl; cout<<endl<<"ttt>" for(sleep=1;sleep<2000000;sleep+) /循环次数停止等待 system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等."<<endl; cout<<endl<<"ttt>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(5%)"<<endl; cout<<endl<<"ttt>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(10%)"<<endl; cout<<endl<<"ttt>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(15%)"<<endl; cout<<endl<<"ttt>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(20%)"<<endl; cout<<endl<<"ttt>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(25%)"<<endl; cout<<endl<<"ttt>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(30%)"<<endl; cout<<endl<<"ttt>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(35%)"<<endl; cout<<endl<<"ttt>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(40%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(45%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(50%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(55%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(60%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(65%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(70%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(75%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(80%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(85%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(90%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统正在加载中,请稍等.(100%)"<<endl; cout<<endl<<"ttt>>>>>>>>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"ttt系统加载完毕."<<endl; cout<<endl<<"ttt>>>>>>>>>>>>>>>>>>>>" for(sleep=1;sleep<2000000;sleep+) system("cls"); /清屏 int menu_select() /*菜单界面*/ int c;char s20; cout<<"tt -"<<endl; cout<<"tt | |"<<endl; cout<<"tt | |"<<endl; cout<<"tt | |"<<endl; cout<<"tt | |"<<endl; cout<<"tt | |"<<endl; cout<<"tt -"<<endl; cout<<"ttt -"<<endl; cout<<"ttt "<<endl; cout<<"ttt IVAN航空公司 "<<endl; cout<<"ttt 在线订票系统 "<<endl; cout<<"ttt "<<endl; cout<<"ttt -"<

    注意事项

    本文(航空公司在线订票系统设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开