1、航班订票系统课程设计题目 航班订票系统课程设计目的本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。任务:通过此系统可以实现如下功能:1)、录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2)、查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3)、订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可
2、以提供相关可选择航班;4)、退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。5)、修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构;一、 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。二、 进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。系统需求分析随着经济全
3、球化的推进以及企业激烈的竞争,各大机场订票系统已经越来越不能适应人们日常出行的局面,所以我们现在需要一个检索迅速、查找方便、易修改功能齐全方便的系统来适应我们的需求。问题的提出:为了减少人工工作量,提高工作效率,使机场管理员的工作更加有效的进行。系统总体设计 系统设计目标本文研究开发的航空订票系统用于完成航空订票工作,有以下三个方面的目标:【1】 支持航空管理公司更加便捷的管理【2】 支持航空公司高效率的满足人们空行需求,包括与班机有关的订票,退票,查询等功能。【3】支持航空公司随时增加或者是删除航班信息 开发设计思想基于以上系统设计目标,本文在开发人事管理信息系统时遵循了以下开发设计思想:采
4、用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、等操作。 系统功能模块设计本系统分为六个模块:增加航班模块、浏览航班模块、查找航班模块、航班排序模块、订票模块、退票模块。得到如图所示系统功能模块图。 系统功能模块图 算法思想描述主界面程序图系统录入程序图:查询系统程序图:订票系统程序图:退票系统程序图:程序源代码#inc
5、lude#include#include#include class Flight/航班类 char num20;/航班号 char s20; /出发站 char e20; /到达站 char t20;/起飞时间 int fee;/票价 int sum;/总票数 int n;/剩余票数 Flight *next;/下个航班public: Flight() Flight() char *getnu()return num; void setnu(char *n)strcpy(num,n); char *gets()return s; void sets(char *s)strcpy(this-s
6、,s); char *gete()return e; void sete(char *e)strcpy(this-e,e); char *gett()return t; void sett(char *t)strcpy(this-t,t); int getf()return fee; void setf(int f)fee=f; int getsu()return sum; void setsu(int s)sum=s; int getn()return n; void setn(int n)this-n=n; Flight *getnext()return next; void setnex
7、t(Flight*n)next=n;class Client/乘客类 char num20;/航班号 char name20; /乘客姓名 int n;/所购票数 Client *next;public: Client() Client() char *getna()return name; void setna(char *n)strcpy(name,n); char *getnu()return num; void setnu(char *n)strcpy(num,n); int getn()return n; void setn(int n)this-n=n; Client *getne
8、xt()return next; void setnext(Client*n)next=n;class manage/管理类private: Flight *head1;/航班头指针 Flight *last1; Client *head2;/乘客头指针 Client *last2;public: manage() manage() void ini(); void newf(); void buy(); void show1(); void show2(); void modify(); void del(); void delall(); void baClient(); void que
9、ry1(); void query2(); void save(); void run();void manage:ini() head1=last1=NULL; head2=last2=NULL; ifstream rf(Flighte.txt,ios:out|ios:nocreate,filebuf:openprot); if(rf.fail()coutnn提示,文件读取失败!; else int n=0;/得到个数 rf.read(char *)&n,sizeof(n);/得到航班个数 for(int i=0;isetnext(NULL); if(head1=NULL)head1=las
10、t1=p1; else last1-setnext(p1);last1=p1; coutn初始化i条航班信息成功!; rf.read(char *)&n,sizeof(n);/得到乘客个数 for( i=0;isetnext(NULL); if(head2=NULL)head2=last2=p2; else last2-setnext(p2);last2=p2; coutn初始化i条乘客信息成功!; rf.close();void manage:newf() Flight*p; p=new Flight; coutn录入航班信息n; char c50; coutc; p-setnu(c); c
11、outc; p-sets(c); coutc; p-sete(c); coutc; p-sett(c); coutn;p-setf(n); coutn;p-setsu(n); p-setn(n); p-setnext(NULL); if(head1)last1-setnext(p);last1=p; else head1=last1=p; coutn新航班创建成功nn;void manage:buy() if(head1=NULL)cout提示:无航班信息!n;return ; coutnnnn 购买机票n; char c50; coutc; int y=1; Flight *p=head1;
12、 while(p) if(strcmp(p-getnu(),c)=0)y=0;break; p=p-getnext(); if(y)coutgetn()=0)coutn提示,此航班票已经售完!n;return; coutn|-|; coutn 航次: getnu() 起飞时间:gett() 总票数: getsu(); coutn 航线:gets() gete() 票价:getf() 剩余票数: getn(); coutsetnext(NULL); p1-setnu(c); coutn-请进行购票登记 -; coutc; p1-setna(c);loop: coutn; if(np-getn()
13、 coutn提示,您最多只能购买getn()setn(n); p-setn(p-getn()-n); if(head2=NULL)head2=last2=p1; else last2-setnext(p1); last2=p1; coutn-买票成功,您需要付款:getf()*p1-getn()元-;void manage:show1() if(head1=NULL)cout航班信息为空!nn;return; Flight *p=head1; coutsetw(50)航班信息; while(p) coutn 航次: getnu() 起飞时间:gett() 总票数: getsu(); coutn
14、 航线:gets() gete() 票价:getf() 剩余票数: getn(); coutgetnext(); void manage:show2() if(head2=NULL)cout乘客信息为空!nn;return; Client *p=head2; coutsetw(50) 乘客信息; while(p) coutn 姓名 : getna() 航班号:getnu() 所购票数: getn(); coutgetnext(); void manage:modify() coutsetw(50)修改航班; Flight *p=head1; char m20; int y=1; coutm;
15、while(p) if(strcmp(p-getnu(),m)=0) y=0; coutm; p-sets(m); coutm; p-sete(m); coutm;p-sett(m); coutn; p-setf(n);loop: coutn; if(ngetsu()-p-getn()cout=已售机票数!n;goto loop; p-setn( n-(p-getsu()-p-getn() ); p-setsu(n); p=p-getnext(); if(y) coutn错误,无此航班号!; else coutn航班修改成功!;void manage:del() if(head1=NULL)c
16、outnn提示:无航班信息!;return ; coutsetw(50) 删除航班; Flight *temp,*p=head1; char m20; int y=1;loop: coutm; if(strcmp(head1-getnu(),m)=0) if(head1-getsu()!=head1-getn() coutgetnext(); else while(p-getnext() if(strcmp(p-getnext()-getnu(),m)=0) if(p-getnext()-getsu()!=p-getnext()-getn() coutgetnext(); p-setnext(
17、temp-getnext(); break; p=p-getnext(); if(y) coutn错误,无此航班号!; else delete temp; coutnn操作成功!;void manage:delall() coutsetw(50)getnext(); delete p1; p1=temp1; head1=last1=NULL; Client *p2=head2; while(p2) Client * temp2=p2-getnext(); delete p2; p2=temp2; head2=last2=NULL; coutnn信息清空成功!;void manage:query
18、1() char c; char m30; if(head1=NULL)coutnn提示:无航班信息!;return ; do coutsetw(50) 航班查询菜单 n; coutsetw(50) 1, 按起始地查询 n; coutsetw(50) 2, 按目的地查询 n; coutsetw(50)c; switch (c) case 1: int y=1; coutm; while(p) if(strcmp(p-gets(),m)=0) coutn|-|;coutn 航次: getnu() 起飞时间:gett() 总票数: getsu();coutn 航线:gets() gete() 票价
19、:getf() 剩余票数: getn();coutgetnext(); if(y)cout失败,您查询的航班不存在!nn; break; case2: int y=1; coutm; while(p) if(strcmp(p-gete(),m)=0) coutn 航次: getnu() 起飞时间:gett() 总票数: getsu();coutn 航线:gets() gete() 票价:getf() 剩余票数: getn();coutgetnext(); if(y)cout失败,您查询的航班不存在!nn; break; case3:break; while(c!=c&c!=C);void ma
20、nage:query2() if(head1=NULL)coutnn提示:无航班信息!;return ; char c,m20; do coutsetw(50) 乘客查询菜单 n; coutsetw(50) 1, 乘客查询菜单 n; coutsetw(50) 2, 乘客查询菜单 n; coutsetw(50)c; switch (c) case 1: Flight *p1=head1; Client *p2=head2; int y1=1,y2=1; coutm; while(p1) if(strcmp(p1-getnu(),m)=0) y1=0;coutn|-|n; coutn 航次: getnu() 起飞时间:gett() 总票数: getsu();coutn 航线:gets() gete() 剩余票数:getn();coutgetnext(); if(y1) coutn失败,您查询的航班不存在!n; else while(p2) if
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1