航空订票管理系统.docx
- 文档编号:3257492
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:24
- 大小:244.46KB
航空订票管理系统.docx
《航空订票管理系统.docx》由会员分享,可在线阅读,更多相关《航空订票管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
航空订票管理系统
航空订票管理系统
1.目标与要求
1.目标
能够正确无误的实现航空订票管理系统代码的运行,使其中的订购机票,退返机票,查看航班信息,查询航班信息,修改航班信息等功能能顺利的实现并成功运行。
并且实现能够以客户和管理员分别进入的功能。
编写代码并成功运行只是其中的目标之一,更重要的是从这两个星期的课程设计中学到知识,加深对面向对象的认识和理解,学习其中知识,尤其是对类和结构体的学习。
2.要求实现内容:
(1)订购机票(在有剩余票的情况下旅客输入姓名,身份证号码等可以进行订票操作);
(2)返退机票(在旅客已经订过票的情况下可以进行退票操作);
(3)查看航班信息(旅客和管理员可以进行查看全部信息操作);
(4)查询航班信息(旅客和管理员可以根据需要的信息对航班信息进行查询操作);
(5)修改航班信息(此功能只有管理员输入正确的姓名,工号和密码时才能对航班信息进行修改操作);
(6)以普通客户和管理身份进入系统的功能应该有所不同(以旅客进入只允许进行订购机票,反退机票,查询航班信息和查看航班信息的操作;而以管理员身份进入则可以进行修改航班信息的操作)。
3.课程目的
通过两周的课程设计,我了解并掌握程序设计的方法,具备了初步的独立分析和设计能力和初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
在整个设计过程中,我不理解代码的多向知道的人提问或向老师求助,最后使得自己理解和掌握代码,提高了自己综合运用所学的理论知识和方法独立分析和解决问题的能力,训练用系统的观点和软件开发一般规范进行软件开发,为进一步的应用开发打好基础。
2.准备工作
在正式上机实验前应对面向对象内容进行熟悉掌握,对于航空订票管理系统我们需要用到类和结构体等知识,所以上机前要对上学期学习的《C++语言程序设计》进行复习,尤其是对类和对象,构造函数和析构函数,继承和派生等知识点更要掌握熟练。
另外,结构体的知识也需要认真学习。
专业知识需要了解并掌握,同时因为程序是为人类服务的,我们还要做到贴近实际方便实际,所以还要做一些除专业知识以外的准备。
在设计程序之前,我在各个网站查阅关于航空发展的信息,同时还要掌握航空订票管理的信息。
例如,客户要订购机票需要哪些证件,需要符合什么条件之类的。
另外,如果是管理员来管理这个系统,他需要具备什么样的条件,如是否需要达到一定的级别才可以对航空信息进行修改等等。
我还要考虑到以我设计的程序是否真的能在实际中应用,如果能成功应用,那是否又能方便旅客方便管理人员呢。
这些都需要通过在设计前充分的了解航空系统。
三.分析
航空订票管理系统是在客户和管理员两个身份的基础上实现的,客户需要实现的功能包括订购机票,退返机票,查询航空信息,查看航空信息,其中查看航空信息需要输出全部的航空信息,而查询航空信息则是根据客户需要输出相应的航空信息。
管理员需要实现的功能则需要有航空信息修改,通过输入的姓名,工号,密码来判断是否是管理员进入,若输入的各个信息都正确,则管理员可以将进行修改航空信息的功能。
若输入的信息不正确,则不能进行修改航空信息的功能。
Voidmain()
Caidan2()caidan1()
客户进入管理员进入chushi()
Dingpiao()tuipiao()
chaxun()chaxunquanbu()caidan3()
图1-1功能实现的示意图
四.实现步骤
1.需求分析报告
应用背景:
在当今这个交通方便的时代,众所周知这里不开航空的发展,而随着航空发展的壮大,一个周全而又方便的航空管理系统是非常重要的。
因此开发一个方便管理人员管理和旅客订票或查询的航空管理系统,对航空的发展乃至整个交通行业的发展都至关重要。
本次课程设计所设计的程序就是一个航空订票系统的软件,为航空客户和管理员提供方便,为旅客提供航空定票录入.查询.查看.订票.退票.修改航班信息等功能。
采用技术:
本次程序设计主要是面向对象的设计,应用了上学期学习的《C++语言程序设计》中的重要知识。
2.系统结构设计
(1)系统结构模型
程序中用到的函数库
#include
#include
#include
程序中定义的结构体
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
intnum;//定义整型变量航班号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
{
charname[10];
intjobno;
intpassword;
}zu[10]={//初始化结构体数组zu[10]
{"刘晓",1001,100001},
{"王蒙",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()
{
charname[10];//定义一个字符型数组保存需要订票人的姓名
intnum,i,t,j,k,temp;//定义六个整型变量num为航班号,其他五项均为此函数的控制输出项
intx;//定义一个整型变量,实际意义为是否订票
cout<<"请输入你的姓名和想订的航班号:
"< cout<<"姓名: ";cin>>name;//输入想要订票的姓名 cout< "< cin>>num;//输入想要订票的航班号 for(i=0;i<300;i++)//开始一个for循环查询此人是否订过航班 if(strcmp(name,cu[i].name)==0)//判断此人是否在系统数据中 { cout<<"您已经定过航班,要返回主菜单吗? (1.返回/2.退出)";//如果是则输出提示 cin>>t;//选择是返回还是退出,输入选项 switch(t)//选择结构,根据输入对应相对项 { case1: caidan1();break;//如果选1则调用caidan1()函数 default: break;//如果选其他则跳出程序 } } for(i=0;i<300;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 { cout<<"此航班还有余票,要订票吗? (1.是/2.否)";//提示还有剩余票,提供选项 cin>>x;//输入选项进行选择 switch(x)//选择结构,判断输入的选项,执行对应的操作 { case1: //如果选择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 for(j=0;j<3;j++)//开始一个for循环给文件输入信息,更改本文件 outfile1< ofstreamoutfile2("customer.dat",ios: : app);//以输出方式打开文件customer.dat outfile2<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航空 订票 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)