C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx

上传人:b****5 文档编号:21232759 上传时间:2023-01-28 格式:DOCX 页数:34 大小:259.02KB
下载 相关 举报
C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx_第1页
第1页 / 共34页
C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx_第2页
第2页 / 共34页
C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx_第3页
第3页 / 共34页
C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx_第4页
第4页 / 共34页
C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx

《C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx(34页珍藏版)》请在冰豆网上搜索。

C++课程设计报告材料飞机订票管理系统Word格式文档下载.docx

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

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

(7)功能调试;

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

一、需求分析

1.选做此课题或项的目的

1.通过实验实现对学生信息系统的管理操作;

2.进一步掌握和利用C++进行程设计的能力;

3.进一步理解和运用结构化程序设计的思想和方法;

4.初步掌握开发一个小型实用系统的基本方法;

5.学会利用流程图或N-S图表示算法;

6.掌握书写程设计开发文档的能力

2.程序所实现的功能

1.输入航班信息并保存到磁盘;

2.浏览航班信息;

3.修改航班信息并保存到磁盘

4.查找航班

5.订票

6.退票

2、内容设计

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;

cnum=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;

编号:

i+1<

航班信息:

fl[i].fligh<

目的地:

起飞日期"

已订票数:

剩余票数:

if(temp==1)caidan1();

(6).主菜单函数:

voidcaidan1()

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

***                     ***"

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

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

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

******"

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

*********************************************************"

ifstreaminfile1("

ifstreaminfile2("

i++){infile1>

fl[i].fligh>

fl[i].num>

fl[i].place>

fl[i].data>

fl[i].dticket>

fl[i].riqi>

fl[i].yticket;

i++){infile2>

cu[i].name>

cu[i].num>

cu[i].seat>

cnum;

infile1.close();

infile2.close();

//读取数据

请输入业务代码:

list();

(7).选择列表函数:

voidlist()

inta;

a;

switch(a)

case1:

dingpiao();

case2:

tuipiao();

case3:

chaxun();

case4:

chaxunquanbu();

case5:

chaxun1();

case6:

default:

{cout<

输入错误,请重新输入正确的代码:

}//输入代码

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

voidchaxun()

inttemp,i,a;

请输入你的姓名:

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

*****乘客信息*****"

cu[temp].name<

<

cu[temp].num<

cu[temp].seat<

if(a!

=0)cout<

三、调试分析

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>

,通过学习进一步理解string类型。

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

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

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

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

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

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

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

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

4、用户手册

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

图3.1主菜单

2.选择5.查询航班信息,然后选择返回主菜单如图3.2图3.3所示:

图3.2查询航班信息

图3.3查询航班信息

3.选择1订票,进行订票,输入姓名,要订的航班号,显示已定过情况如图3.4所示,若未定过,则订票,此时客户信息将新增进文件customer中,订票完成后选择返回主菜单,如图3.5图3.6图3.7所示:

图3.4订票失败

图3.5订票成功

图3.6返回主菜单

图3.7文件数据存储情况

3.退票,输入你的姓名,返回主菜单,此时文件改变,如图3.8图3.9所示:

图3.8退票成功

图3.9文件存储情况

4.查询,输入4,查询如图3.10,图3.11所示:

图3.10查询全部信息

图3.11查询全部信息

6.退出系统,如图3.12所示

图3.12退出系统

5、设计总结

自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。

编程看起来似乎是一件很枯燥、乏味的事情,但是经历了这次大程序的编辑之后,发现其实里面还是充满乐趣的,一旦真的钻研下去什么事情都可以放下,来认真研究。

在试验中还发现了许多的不足,对于以后对C++的学习有很大的帮助。

六、参考文献

[1]李兰,任凤华.C++面向对象程序设计.西安:

西安电子科技大学出版社,2010

[2]李兰,任凤华.《C++面向对象程序设计》实验指导及习题解析.西安:

[3]郑莉,董渊.C++程序设计基础教程.北京:

清华大学出版社,2010

[4]郑莉.C++程序设计基础教程学生用书.北京:

七、附录(要加上注释。

#include<

iostream>

#include<

fstream>

usingnamespacestd;

structflight

intfligh;

intnum;

charplace[10];

chardata[10];

//起飞日期(星期几)

intdticket;

charriqi[15];

//最近航班日期

intyticket;

}fl[10]={{101,01,"

北京"

"

monday"

1,"

2015.01.01"

99},

{102,02,"

青岛"

tuesday"

0,"

2015.02.10"

100},

{103,03,"

郑州"

friday"

2015.3.15"

100}};

structcustomer

{charname[10];

intseat;

intnum;

}cu[300]={{"

李华"

01,101},{"

赵光"

01,102},{"

王磊"

01,103}};

//定义结构体

intcnum=3;

//定义客户编号

voidlist();

voiddingpiao();

voidtuipiao();

voidchaxun();

voidchaxunquanbu();

voidchaxun1();

voidcaidan1();

//函数声明

voidcaidan2();

voidchushi();

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

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1