航班订票系统Word文件下载.docx
- 文档编号:22755900
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:30
- 大小:68.51KB
航班订票系统Word文件下载.docx
《航班订票系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《航班订票系统Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
【1】支持航空管理公司更加便捷的管理
【2】支持航空公司高效率的满足人们空行需求,包括与班机有关的订票,退票,查询等功能。
【3】支持航空公司随时增加或者是删除航班信息
开发设计思想
基于以上系统设计目标,本文在开发人事管理信息系统时遵循了以下开发设计思想:
●采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
●尽量达到操作过程中的直观、方便、实用、安全等要求。
●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
●系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、等操作。
系统功能模块设计
本系统分为六个模块:
增加航班模块、浏览航班模块、查找航班模块、航班排序模块、订票模块、退票模块。
得到如图所示系统功能模块图。
系统功能模块图
算法思想描述
主界面程序图
系统录入程序图:
查询系统程序图:
订票系统程序图:
退票系统程序图:
程序源代码
#include<
iostream.h>
string.h>
fstream.h>
#include<
iomanip.h>
classFlight//航班类
{
charnum[20];
//航班号
chars[20];
//出发站
chare[20];
//到达站
chart[20];
//起飞时间
intfee;
//票价
intsum;
//总票数
intn;
//剩余票数
Flight*next;
//下个航班
public:
Flight(){}
~Flight(){}
char*getnu(){returnnum;
}
voidsetnu(char*n){strcpy(num,n);
char*gets(){returns;
voidsets(char*s){strcpy(this->
s,s);
char*gete(){returne;
voidsete(char*e){strcpy(this->
e,e);
char*gett(){returnt;
voidsett(char*t){strcpy(this->
t,t);
intgetf(){returnfee;
voidsetf(intf){fee=f;
intgetsu(){returnsum;
voidsetsu(ints){sum=s;
intgetn(){returnn;
voidsetn(intn){this->
n=n;
Flight*getnext(){returnnext;
voidsetnext(Flight*n){next=n;
};
classClient//乘客类
charname[20];
//乘客姓名
//所购票数
Client*next;
Client(){}
~Client(){}
char*getna(){returnname;
voidsetna(char*n){strcpy(name,n);
Client*getnext(){returnnext;
voidsetnext(Client*n){next=n;
classmanage//管理类
{
private:
Flight*head1;
//航班头指针
Flight*last1;
Client*head2;
//乘客头指针
Client*last2;
manage(){}
~manage(){}
voidini();
voidnewf();
voidbuy();
voidshow1();
voidshow2();
voidmodify();
voiddel();
voiddelall();
voidbaClient();
voidquery1();
voidquery2();
voidsave();
voidrun();
voidmanage:
:
ini()
head1=last1=NULL;
head2=last2=NULL;
ifstreamrf("
Flighte.txt"
ios:
out|ios:
nocreate,filebuf:
openprot);
if(rf.fail())cout<
<
"
\n\n提示,文件读取失败!
;
else
{
intn=0;
//得到个数
rf.read((char*)&
n,sizeof(n));
//得到航班个数
for(inti=0;
i<
n;
i++)
Flight*p1=newFlight;
rf.read((char*)p1,sizeof(Flight));
p1->
setnext(NULL);
if(head1==NULL)head1=last1=p1;
else{last1->
setnext(p1);
last1=p1;
}
cout<
\n初始化"
条航班信息成功!
//得到乘客个数
for(i=0;
Client*p2=newClient;
rf.read((char*)p2,sizeof(Client));
p2->
if(head2==NULL)head2=last2=p2;
else{last2->
setnext(p2);
last2=p2;
条乘客信息成功!
rf.close();
newf()
Flight*p;
p=newFlight;
\n录入航班信息\n"
charc[50];
请输入航班号\n"
cin>
>
c;
p->
setnu(c);
请输入起始地\n"
sets(c);
请输入目的地\n"
sete(c);
请输入起飞日期(年/月/日/时:
分)\n"
sett(c);
\n请输入机票金额\n\n"
p->
setf(n);
\n请输入机票总数\n\n"
setsu(n);
setn(n);
if(head1){last1->
setnext(p);
last1=p;
elsehead1=last1=p;
\n新航班创建成功\n\n"
buy()
if(head1==NULL){cout<
提示:
无航班信息!
\n"
return;
\n\n\n\n购买机票\n"
\n请输入航班号\n"
inty=1;
Flight*p=head1;
while(p)
if(strcmp(p->
getnu(),c)==0){y=0;
break;
p=p->
getnext();
if(y){cout<
\n错误,无此航班号!
return;
if(p->
getn()<
=0){cout<
\n提示,此航班票已经售完!
\n|---------------------------------------------------------------------------|"
\n航次:
"
getnu()<
起飞时间:
gett()<
总票数:
getsu();
\n航线:
gets()<
--->
gete()<
票价:
getf()<
剩余票数:
getn();
\n|---------------------------------------------------------------------------|\n"
Client*p1;
p1=newClient;
\n-------------------------请进行购票登记---------------------------"
\n请输入姓名:
setna(c);
loop:
\n请输入购买票数:
if(n>
getn())
\n提示,您最多只能购买"
张票!
gotoloop;
setn(p->
getn()-n);
if(head2==NULL)head2=last2=p1;
last2=p1;
\n------------买票成功,您需要付款:
getf()*p1->
元-----------------"
show1()
航班信息为空!
\n\n"
setw(50)<
航班信息"
show2()
if(head2==NULL){cout<
乘客信息为空!
Client*p=head2;
乘客信息"
\n姓名:
getna()<
航班号:
所购票数:
modify()
修改航班"
charm[20];
\n\n请输入要修改的航班\n\n"
m;
getnu(),m)==0)
y=0;
\n请修改起始地\n\n"
sets(m);
\n请修改目的地\n\n"
sete(m);
\n请修改登机时间(年/月/日/时:
分)\n\n"
sett(m);
\n请修改机票价格\n\n"
\n请修改机票总数\n"
if(n<
getsu()-p->
getn()){cout<
\n错误,机票总数必须>
=已售机票数!
gotoloop;
setn(n-(p->
getn()));
if(y)
\n航班修改成功!
del()
\n\n提示:
删除航班"
Flight*temp,*p=head1;
\n\n请输入要删除的航班\n\n"
if(strcmp(head1->
getnu(),m)==0){
if(head1->
getsu()!
=head1->
getn()){cout<
\n该航班已经开始售票,不能取消!
temp=head1;
head1=head1->
while(p->
getnext())
{
getnext()->
=p->
temp=p->
setnext(temp->
getnext());
break;
{deletetemp;
\n\n操作成功!
delall()
清空信息"
Flight*p1=head1;
while(p1)
Flight*temp1=p1->
deletep1;
p1=temp1;
Client*p2=head2;
while(p2)
Client*temp2=p2->
deletep2;
p2=temp2;
\n\n信息清空成功!
query1()
charc;
charm[30];
do
│[航班查询菜单]│\n"
│1,按起始地查询│\n"
│2,按目的地查询│\n"
│3,返回│\n"
switch(c)
case'
1'
\n\n请输入要查找的起始地\n\n"
gets(),m)==0)
cout<
\n|-----------------------------------------------------------------------------|"
if(y)cout<
失败,您查询的航班不存在!
case'
2'
\n\n请输入要查找的目的地\n\n"
gete(),m)==0)
y=0;
3'
while(c!
='
c'
&
c!
C'
);
query2()
charc,m[20];
│[乘客查询菜单]│\n"
│1,乘客查询菜单│\n"
│2,乘客查询菜单│\n"
inty1=1,y2=1;
\n\n请输入要查找的航班号\n\n"
if(strcmp(p1->
y1=0;
p1->
p1=p1->
if(y1)cout<
\n失败,您查询的航班不存在!
else{
if
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航班 订票 系统