C++课程设计报告飞机订票管理系统Word格式.docx
《C++课程设计报告飞机订票管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告飞机订票管理系统Word格式.docx(34页珍藏版)》请在冰豆网上搜索。
![C++课程设计报告飞机订票管理系统Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/26/cd0da1d1-b3fd-4329-85fc-5422f77fd0bf/cd0da1d1-b3fd-4329-85fc-5422f77fd0bf1.gif)
终点站名、航班号、飞机号、星期几飞行飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级)以及等候补替补的客户名单(包括姓名、所需票量);
(2)作为示意系统,全部数据可以只放在内存中;
(3)系统能实现的操作和功能如下:
录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);
查询航线:
根据旅客提出的终点站名输入下列信息:
航班号、飞机号、星期几起飞,最近航班的日期和余票量。
承办订票业务:
根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;
若已满员或者余票数少于订票额,则需重新寻味客户要求,若需要,可登记排队候补;
承办退票业务:
根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队等候补,首先询问排在第一的客户,若所有退票额能满足他的要求,则为他办理订票手续否则依次询问其他排队候补的客户。
修改航班信息:
当航班信息改变可以修改航班数据文件。
(选作)为客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。
3、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
一、需求分析
1.选做此课题或项的目的
1.通过实验实现对学生信息系统的管理操作;
2.进一步掌握和利用C++进行程设计的能力;
3.进一步理解和运用结构化程序设计的思想和方法;
4.初步掌握开发一个小型实用系统的基本方法;
5.学会利用流程图或N-S图表示算法;
6.掌握书写程设计开发文档的能力
2.程序所实现的功能
1.输入航班信息并保存到磁盘;
2.浏览航班信息;
3.修改航班信息并保存到磁盘
4.查找航班
5.订票
6.退票
二、内容设计
1.根据所选题目给出模块图
如图1.1所示
图1.1模块图
2.画出主程序及其主要模块的流程图
(1).如图2.1所示为查询函数的流程图:
图2.1查询函数的流程图
(2).图2.2所示为订票函数流程图
图2.2订票函数流程图
(3).图2.3所示为退票函数流程图
图2.3退票函数流程图
(4).如图2.4所示为查询全部信息函数
图2.4查询全部信息函数
(5.)如图2.5所示为主程序流程图
图2.5查询全部信息函数
3.编写程序关键代码
(1).录入航班信息:
voidchushi()
{
inti;
ofstreamoutfile("
airline.dat"
);
ofstreamfile("
customer.dat"
for(i=0;
i<
3;
i++)
{
outfile<
<
fl[i].fligh<
"
"
<
fl[i].num<
fl[i].place<
fl[i].data<
fl[i].dticket<
fl[i].riqi<
fl[i].yticket<
endl;
file<
cu[i].name<
cu[i].num<
cu[i].seat<
cnum<
}
outfile.close();
file.close();
cout<
初始化已完毕!
endl<
caidan1();
}
(2).查询航班信息:
voidchaxun1()
charplace[10];
inttemp,i,a;
cout<
输入终点站名:
;
cin>
>
place;
for(i=0;
100;
if(strcmp(fl[i].place,place)==0){temp=i;
a=0;
cout<
航班信息"
航班号:
fl[temp].fligh<
飞机号:
fl[temp].num<
起飞日期:
fl[temp].data<
最近航班日期"
fl[temp].riqi<
余票量"
fl[temp].yticket<
if(a!
=0)cout<
查询失败!
返回主菜单?
1.是2.否"
temp;
if(temp==1)caidan2();
(3).订票:
voiddingpiao()//订票
charname[10];
intnum,i,t,j,k,temp;
intx;
请输入你的姓名和想订的航班号:
:
cin>
name;
航班号:
num;
for(i=0;
300;
if(strcmp(name,cu[i].name)==0)
您已经定过航班,要返回主菜单吗?
(1.返回/2.退出)"
t;
switch(t)
{case1:
break;
default:
if(name!
=cu[i].name)
for(j=0;
j<
10;
j++)
if(fl[j].fligh==num)temp=j;
if(fl[temp].yticket<
=100)
{
此航班还有余票,要订票吗?
(1.是/2.否)"
x;
switch(x)
case1:
for(k=0;
k<
k++)
if(fl[k].fligh==num)
{
fl[k].dticket=fl[k].dticket+1;
fl[k].yticket=fl[k].yticket-1;
um=cnum+1;
strcpy(cu[cnum].name,name);
cu[cnum].num=num;
cu[cnum].seat=fl[k].dticket;
ofstreamoutfile1("
for(j=0;
j++)
outfile1<
fl[j].fligh<
fl[j].num<
fl[j].place<
fl[j].data<
fl[j].dticket<
fl[j].riqi<
fl[j].yticket<
ofstreamoutfile2("
ios:
:
app);
outfile2<
cu[cnum].name<
cu[cnum].num<
cu[cnum].seat<
//打开文件并存储数据
cout<
订票成功!
endl
<
客户信息:
'
\t'
座位号:
outfile1.close();
outfile2.close();
1.返回主菜单2.退出:
cin>
if(temp==1)
caidan1();
else;
}};
break;
}}elsecout<
此航班票已经售完,请订其他航班次的票~"
(4).退票:
voidtuipiao()//退票
inti,temp,t,num,a,j;
structtmp;
请输入您的姓名和航班号:
{if(strcmp(cu[i].name,name)==0)
a=0;
确定退订吗?
(1.是2.否):
if(temp==1)
ofstreamoutfile1("
ofstreamoutfile2("
for(j=0;
=i;
cu[j].name<
cu[j].num<
cu[j].seat<
for(t=0;
t<
t++)
{
if(fl[t].fligh==num){fl[t].dticket=fl[t].dticket-1;
fl[t].yticket=fl[t].yticket+1;
}}
for(t=0;
outfile1<
fl[t].fligh<
fl[t].num<
fl[t].place<
fl[t].data<
fl[t].dticket<
fl[t].riqi<
fl[t].yticket<
}
}
else
a!
=0;
}
if(a!
=0)
没有你的信息,请查证后再操作!
1.是2.否:
if(temp==1)
(5).查询全部信息:
voidchaxunquanbu()
inti,temp;
乘客信息:
if(cnum==i)temp=i;