C++课程设计报告飞机订票管理系统.doc

上传人:wj 文档编号:5334883 上传时间:2023-05-08 格式:DOC 页数:31 大小:377.49KB
下载 相关 举报
C++课程设计报告飞机订票管理系统.doc_第1页
第1页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第2页
第2页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第3页
第3页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第4页
第4页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第5页
第5页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第6页
第6页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第7页
第7页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第8页
第8页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第9页
第9页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第10页
第10页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第11页
第11页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第12页
第12页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第13页
第13页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第14页
第14页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第15页
第15页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第16页
第16页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第17页
第17页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第18页
第18页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第19页
第19页 / 共31页
C++课程设计报告飞机订票管理系统.doc_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++课程设计报告飞机订票管理系统.doc

《C++课程设计报告飞机订票管理系统.doc》由会员分享,可在线阅读,更多相关《C++课程设计报告飞机订票管理系统.doc(31页珍藏版)》请在冰点文库上搜索。

C++课程设计报告飞机订票管理系统.doc

青岛理工大学

C++面向对象课程设计报告

院(系):

计算机工程学院

专业:

软件工程

学生姓名:

班级软件131班学号:

题目:

飞机订票管理系统设计____

起迄日期:

_2015.6.29~2015.7.10

设计地点:

计算机学院机房

指导教师:

翟正利丁凡

完成日期:

2015年7月10日

C++面向对象课程设计任务书

题目24“飞机订票管理系统设计”

1、问题描述:

航空客运订票的业务包括:

查询航班、客票预订和办理退票等。

试设计一个航空客运订票系统,已使上述业务可以借助计算机完成。

2.功能要求:

(1)每条航线所涉及的信息有:

终点站名、航班号、飞机号、星期几飞行飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级)以及等候补替补的客户名单(包括姓名、所需票量);

(2)作为示意系统,全部数据可以只放在内存中;

(3)系统能实现的操作和功能如下:

录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);

查询航线:

根据旅客提出的终点站名输入下列信息:

航班号、飞机号、星期几起飞,最近航班的日期和余票量。

承办订票业务:

根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或者余票数少于订票额,则需重新寻味客户要求,若需要,可登记排队候补;

承办退票业务:

根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队等候补,首先询问排在第一的客户,若所有退票额能满足他的要求,则为他办理订票手续否则依次询问其他排队候补的客户。

修改航班信息:

当航班信息改变可以修改航班数据文件。

(选作)为客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。

3、问题的解决方案:

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

目录

一、需求分析 2

二、内容设计 2

2.1、根据所选题目给出模块图 2

2.2、画出主要程序的流程图:

3

2.2、编写程序关键代码:

8

三、调试分析 13

四、用户手册 14

五、设计总结 20

六、参考文献 21

七、附录 21

一、需求分析

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<

<

<

<

<

file<

outfile.close();file.close();

cout<<"初始化已完毕!

"<

caidan1();

}

}

(2).查询航班信息:

voidchaxun1()

{

charplace[10];

inttemp,i,a;

cout<<"输入终点站名:

";cin>>place;

for(i=0;i<100;i++)

if(strcmp(fl[i].place,place)==0){temp=i;a=0;}

cout<<"航班信息"<

"<

"<

"<

if(a!

=0)cout<<"查询失败!

"<

cout<<"返回主菜单?

1.是2.否";cin>>temp;

if(temp==1)caidan2();

}

(3).订票:

voiddingpiao()//订票

{

charname[10];

intnum,i,t,j,k,temp;

intx;

cout<<"请输入你的姓名和想订的航班号:

"<

cout<<"姓名:

";

cin>>name;

cout<

cout<<"航班号:

";

cin>>num;

for(i=0;i<300;i++)

if(strcmp(name,cu[i].name)==0)

{

cout<<"您已经定过航班,要返回主菜单吗?

(1.返回/2.退出)";

cin>>t;switch(t)

{case1:

caidan1();break;

default:

break;}

}

for(i=0;i<300;i++)

if(name!

=cu[i].name)

for(j=0;j<10;j++)

if(fl[j].fligh==num)temp=j;

if(fl[temp].yticket<=100)

{

cout<<"此航班还有余票,要订票吗?

(1.是/2.否)";

cin>>x;

switch(x)

{

case1:

{

for(k=0;k<3;k++)

if(fl[k].fligh==num)

{

fl[k].dticket=fl[k].dticket+1;

fl[k].yticket=fl[k].yticket-1;

cnum=cnum+1;

strcpy(cu[cnum].name,name);cu[cnum].num=num;

cu[cnum].seat=fl[k].dticket;

ofstreamoutfile1("airline.dat");

for(j=0;j<3;j++)

outfile1<

ofstreamoutfile2("customer.dat",ios:

:

app);

outfile2<

cout<<"订票成功!

"<

<<"客户信息:

"<

"<

"<

outfile1.close();

outfile2.close();

cout<<"1.返回主菜单2.退出:

";

cin>>temp;

if(temp==1)

caidan1();

else;

}};

break;

default:

caidan1();break;}}elsecout<<"此航班票已经售完,请订其他航班次的票~";

}

(4).退票:

voidtuipiao()//退票

{

charname[10];

inti,temp,t,num,a,j;

structtmp;

cout<<"请输入您的姓名和航班号:

"<

cout<<"姓名:

";

cin>>name;cout<<"航班号:

";

cin>>num;cout<

for(i=0;i<300;i++)

{if(strcmp(cu[i].name,name)==0)

{

a=0;cout<<"确定退订吗?

(1.是2.否):

";

cin>>temp;

if(temp==1)

{

ofstreamoutfile1("airline.dat");

ofstreamoutfile2("customer.dat");

for(j=0;j<=i;j++)

outfile2<

for(t=0;t<3;t++)

{

if(fl[t].fligh==num){fl[t].dticket=fl[t].dticket-1;fl[t].yticket=fl[t].yticket+1;}}

for(t=0;t<3;t++)

outfile1<

}

}

else

a!

=0;

}

if(a!

=0)

cout<<"没有你的信息,请查证后再操作!

";

cout<<"返回主菜单?

1.是2.否:

";

cin>>temp;

if(temp==1)

caidan1();

}

(5).查询全部信息:

voidchaxunquanbu()

{

inti,temp;

cout<<"乘客信息:

"<

for(i=0;i<300;i++)

{

if(cnum==i)temp=i;

}

for(i=0;i

cout<<"姓名:

"<

"<

"<

"<

cout<

"<

for(i=0;i<3;i++)

cout<<"航班号:

"<

"<

"<

"<

"<

cout<<"返回主菜单?

1.是2.否";

cin>>temp;

if(temp==1)caidan1();

}

(6).主菜单函数:

voidcaidan1()

{

inti;

cout<<"*************航空订票系统v2012*************"<

cout<<"***                     ***"<

cout<<"***1.订票业务2.退票业务***"<

cout<<"***3.查询客户信息4.查询全部信息***"<

cout<<"***5.查询飞机票6.退出系统***"<

cout<<"******"<

cout<<"***如果是第一次使用本系统,请载入初始信息***"<

cout<<"*********************************************************"<

ifstreaminfile1("airline.dat");

ifstreaminfile2("customer.dat");

for(i=0;i<3;i++){infile1>>fl[i].fligh>>fl[i].num>>fl[i].place>>fl[i].data>>fl[i].dticket>>fl[i].riqi>>fl[i].yticket;}

for(i=0;i<300;i++){infile2>>cu[i].name>>cu[i].num>>cu[i].seat>>cnum;}

infile1.close();infile2.close();//读取数据

cout<<"请输入业务代码:

";

list();

}

(7).选择列表函数:

voidlist()

{

inta;

cin>>a;cout<

switch(a)

{

case1:

dingpiao();break;

case2:

tuipiao();break;

case3:

chaxun();break;

case4:

chaxunquanbu();break;

case5:

chaxun1();break;

case6:

;break;

default:

{cout<<"输入错误,请重新输入正确的代码:

";list();}//输入代码

}

}

(8).查询客户信息函数:

voidchaxun()

{

charname[10];

inttemp,i,a;

cout<<"请输入你的姓名:

";cin>>name;

for(i=0;i<300;i++)

if(strcmp(cu[i].name,name)==0){temp=i;a=0;}

cout<<"*****乘客信息*****"<

"<

<<"航班号:

"<

"<

if(a!

=0)cout<<"没有你的信息,请查证后再操作!

"<

cout<<"返回主菜单?

1.是2.否";

cin>>temp;

if(temp==1)

caidan1();

}

三、调试分析

1.实际完成的情况说明(完成的功能,支持的数据类型等)。

该航空订票管理系统主要完成的支持int(航班号,座位号等),char(姓名,终点,到达日期等,主要实现的功能如下:

1.航班信息与客户信息的初始化。

2.客户信息的录入。

3.航班信息的修改(包括余票和已定票的改动)。

4.订票功能。

5.退票功能。

6.查询航线功能。

7.查询全部信息功能(包括用户和航班的信息)。

2.程序的性能分析。

1.本程充分利用了各种系统函数,使程序十分简洁。

2.程序相比之下较大,运行起来需要一定的时间。

3.根据不同的功能建立不同的类,对具体功能又分别用相应的函数来据体实现使程序变得有序易懂。

3.上机过程中出现的问题及其解决方案。

上机过程遇到的问题有:

1.不了解文件的使用,包括读取文件到程序,将数据写入文件等。

2.对整体程序的模版不够理解,刚开始不能够完全地构思出程序的全部。

3.出现括号和符号忘记匹配,或者马虎造成单词拼错以及函数体写错。

4.结构体的格式开始不够熟练。

5.循环体的嵌套使用不够熟悉。

6.使用string类型不是那么熟练。

解决方案:

1.查阅相关书籍,以及上网查找资料,询问基础较好的同学,从而对文件的操作有了进一步的提升。

2.上网查找类似的程序,观看其大致结构,从而提炼出精华,找出大致规律,运用到自己的程序里,使程序不至于那么僵硬。

3.每写完一段程序就检查该段程序有没有错误,分段缩小范围修改,采用分步调试方法,逐步找出问题所在。

4.上网以及查阅结构体的详细说明,学会熟练使用结构体。

5.可以先画流程图列出所有循环体的图示,根据图示来编写程序中循环体的嵌套,这样可以大大减少循环体的出错。

6.开始使用char类型来定义字符串,后来改成方便的string类型,之前忘记头文件#include,通过学习进一步理解string类型。

4.程序中可以改进的地方说明。

1.退票管理中可增加功能,区分退票在飞机起飞前和飞机起飞后,根据不同的选择来退还不同金额的退款。

2.订票函数里可适当提升订票的最大人数,以免发生系统崩溃的现象。

3.查询函数里可以增加查询合适航班的方式,以便于更好程度地适应用户多方面的不同订票需求。

5.程序中可以扩充的功能及设计实现构想。

1.可以增加用户登录功能,让用户可以设置自己的帐号密码,以便于用户更方便的使用本飞机订票系统办理航空业务。

2.可以将dos系统界面显示做成mfc界面显示,使显示更加清晰,更便于用户理解和使用本系统。

3.可以在航空飞机订票的基础上发展其他订票功能,比如火车订票,汽车订票,更全面地提供订票管理服务。

四、用户手册

1.运行程序,显示主菜单如图3.1所示:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2