航空订票管理系统文档格式.docx
《航空订票管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《航空订票管理系统文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
在设计程序之前,我在各个网站查阅关于航空发展的信息,同时还要掌握航空订票管理的信息。
例如,客户要订购机票需要哪些证件,需要符合什么条件之类的。
另外,如果是管理员来管理这个系统,他需要具备什么样的条件,如是否需要达到一定的级别才可以对航空信息进行修改等等。
我还要考虑到以我设计的程序是否真的能在实际中应用,如果能成功应用,那是否又能方便旅客方便管理人员呢。
这些都需要通过在设计前充分的了解航空系统。
三.分析
航空订票管理系统是在客户和管理员两个身份的基础上实现的,客户需要实现的功能包括订购机票,退返机票,查询航空信息,查看航空信息,其中查看航空信息需要输出全部的航空信息,而查询航空信息则是根据客户需要输出相应的航空信息。
管理员需要实现的功能则需要有航空信息修改,通过输入的姓名,工号,密码来判断是否是管理员进入,若输入的各个信息都正确,则管理员可以将进行修改航空信息的功能。
若输入的信息不正确,则不能进行修改航空信息的功能。
Voidmain()
Caidan2()caidan1()
客户进入管理员进入chushi()
Dingpiao()tuipiao()
chaxun()chaxunquanbu()caidan3()
图1-1功能实现的示意图
四.实现步骤
1.需求分析报告
应用背景:
在当今这个交通方便的时代,众所周知这里不开航空的发展,而随着航空发展的壮大,一个周全而又方便的航空管理系统是非常重要的。
因此开发一个方便管理人员管理和旅客订票或查询的航空管理系统,对航空的发展乃至整个交通行业的发展都至关重要。
本次课程设计所设计的程序就是一个航空订票系统的软件,为航空客户和管理员提供方便,为旅客提供航空定票录入.查询.查看.订票.退票.修改航班信息等功能。
采用技术:
本次程序设计主要是面向对象的设计,应用了上学期学习的《C++语言程序设计》中的重要知识。
2.系统结构设计
(1)系统结构模型
程序中用到的函数库
#include<
iostream>
//包含输入输出流头文件
string>
//包含一个字符串类型
fstream>
//包含文件操作的类和方法
程序中定义的结构体
structflight//定义关于航班的结构体flight
{
intfligh;
//定义整型变量航班号fligh
intnum;
//定义整型变量飞机号num
charplace[10];
//定义字符型数组目的地place[10]
intdticket;
//定义整型变量已定票数dticket
intyticket;
//定义整型变量剩余票数yticket
}fl[10]={//初始化结构体数组fl[10]
{101,01,"
北京"
11,89},//结构体数组fl[10]中的f1[0]
{102,02,"
上海"
19,82},//结构体数组fl[10]中的f1[1]
{103,03,"
广州"
20,80}//结构体数组fl[10]中的f1[2]
};
structcustomer//定义关于乘客的结构体customer
charname[10];
//定义字符型数组姓名name[10]
intseat;
//定义整型变量座位号seat
//定义整型变量航班号num
}cu[300]={//初始化结构体数组cu[300]
{"
Mogan"
01,101},//结构体数组cu[300]中的cu[0]
Daisy"
01,102},//结构体数组cu[300]中的cu[1]
Rose"
01,103}//结构体数组cu[300]中的cu[2]
structManager//定义关于管理员的结构体Manager
intjobno;
intpassword;
}zu[10]={//初始化结构体数组zu[10]
刘晓"
1001,100001},
王蒙"
张扬"
1003,100001}
(2)模块划分
主函数:
intmain(void);
子函数:
voidcaidan1();
//主菜单函数
voidcaidan2();
voidcaidan3();
//管理员修改航班信息
voiddingpiao();
//订购机票
voidtuipiao();
//退返机票
voidchaxun();
//查询航班信息
voidchaxunquanbu();
//查询全部航班信息
(3)实现方法
图1-2.结构体流程图
在主函数中调用子函数caidan1(),caidan1()可以在界面中输出客户和管理员科操作的业务,然后根据提示输入相应的操作码,进行各功能的实现。
Dingpiao(),tuipiao(),chaxun(),chaxunquanbu(),caidan3()等各个函数分别实现订购机票,退返机票,查询信息,查看信息,管理员修改航班信息等功能。
3.程序模块设计与调试
订购机票模块
voiddingpiao()//订票业务函数dingpiao()
//定义一个字符型数组保存需要订票人的姓名
intnum,i,t,j,k,temp;
//定义六个整型变量num为航班号,其他五项均为此函数的控制输出项
intx;
//定义一个整型变量,实际意义为是否订票
cout<
<
"
请输入你的姓名和想订的航班号:
endl<
endl;
姓名:
;
cin>
>
name;
//输入想要订票的姓名
cout<
航班号(101~103):
cin>
num;
//输入想要订票的航班号
for(i=0;
i<
300;
i++)//开始一个for循环查询此人是否订过航班
if(strcmp(name,cu[i].name)==0)//判断此人是否在系统数据中
{
您已经定过航班,要返回主菜单吗?
(1.返回/2.退出)"
//如果是则输出提示
t;
//选择是返回还是退出,输入选项
switch(t)//选择结构,根据输入对应相对项
case1:
caidan1();
break;
//如果选1则调用caidan1()函数
default:
//如果选其他则跳出程序
}
i++)//如果此人没有订过票则进入此for循环进行机票选择
if(name!
=cu[i].name)//判断此人是否没在已定票的人中
for(j=0;
j<
10;
j++)//如果是则进行for循环,进行机票选择
if(fl[j].fligh==num)//判断此人需要购买的航班
temp=j;
//将此航班在数组中的代号j赋给temp方便之后调用
if(fl[temp].yticket<
=100)//判断剩余票数是否小于等于100
此航班还有余票,要订票吗?
(1.是/2.否)"
//提示还有剩余票,提供选项
x;
//输入选项进行选择
switch(x)//选择结构,判断输入的选项,执行对应的操作
//如果选择1,则执行下面
for(k=0;
k<
3;
k++)//开始一个for循环,筛选需要订的票在系统中数组代号
if(fl[k].fligh==num)//判断系统中的此航班号是否为需要订的航班
fl[k].dticket=fl[k].dticket+1;
fl[k].yticket=fl[k].yticket-1;
cnum=cnum+1;
//如果是,则此航班已定票数+1、剩余票数-1、全局变量顾客人数cnum+1
strcpy(cu[cnum].name,name);
//在乘客的结构体数组中更改对应新增的订票的人名字
cu[cnum].num=num;
//在乘客的结构体数组中更改对应新增的订票的航班号
cu[cnum].seat=fl[k].dticket;
//在乘客的结构体数组中更改对应新增的订票的座位号,座位号按票数排号
ofstreamoutfile1("
airline.dat"
);
//以输出方式打开文件airline.dat
j++)//开始一个for循环给文件输入信息,更改本文件
outfile1<
fl[j].fligh<
"
fl[j].num<
fl[j].place<
fl[j].dticket<
fl[j].yticket<
//输入新增订票人所订的航班信息到文件airline.dat,改变此文件信息
ofstreamoutfile2("
customer.dat"
ios:
:
app);
//以输出方式打开文件customer.dat
outfile2<
cu[cnum].name<
cu[cnum].num<
cu[cnum].seat<
cnum<
e