完整版C++飞机订票系统毕业课程设计.docx

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

完整版C++飞机订票系统毕业课程设计.docx

《完整版C++飞机订票系统毕业课程设计.docx》由会员分享,可在线阅读,更多相关《完整版C++飞机订票系统毕业课程设计.docx(28页珍藏版)》请在冰点文库上搜索。

完整版C++飞机订票系统毕业课程设计.docx

完整版C++飞机订票系统毕业课程设计

 

内蒙古科技大学

本科生课程设计说明书

 

题目:

c++面向对象课程设计

——飞机订票系统

学生姓名:

董雪

学号:

专业:

计算机科学与技术

班级:

11级4班

指导教师:

王丽颖

 

内蒙古科技大学课程设计任务书

课程名称

c++面向对象课程设计

设计题目

飞机订票系统

指导教师

王丽颖

时间

2012.12..12.28

一、教学要求

1.巩固和加深学生对c++面向对象课程的基本知识的理解和掌握

2.掌握c++面向对象编程和程序调试的基本技能

3.利用c++面向对象进行基本的软件设计

4.掌握书写程序设计说明文档的能力

5.提高运用c++面向对象解决实际问题的能力

二、设计资料及参数

每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

飞机订票系统设计

假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。

试设计一民航订票系统,使之能提供下列服务:

v航班信息录入功能(航班信息用文件保存)--输入

v航班信息浏览功能--输出

v查询航线:

(至少两种查询方式)--算法

●按航班号查询●按终点站查询

v承办订票和退票业务

三、设计要求及成果

1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2.写出详细设计说明(至少包括功能实现分析和模块流程图)

3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)

4.设计完成的软件要便于操作和使用

5.设计完成后提交课程设计报告(请严格按照模板进行排版)

四、进度安排

第一天 选择课程设计题目,分析课题的要求

第二天 编程

第三天 编程及调试

第四天 写课程设计报告

第五天 提交课程设计报告(打印稿及电子稿)

五、评分标准

1.根据平时上机考勤、表现和进度,教师将每天点名和检查

2.根据课程设计完成情况,必须有可运行的软件。

3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。

六、建议参考资料

《C++面向对象程序设计》内蒙古大学出版社

目录

内蒙古科技大学课程设计任务书I

目录II

第一章需求分析3

1.1引言3

1.2任务概述3

1.3数据描述3

1.4功能需求4

1.5运行需求4

1.6任务计划4

第二章概要设计

2.1总体设计4

2.2航空类的定义5

2.3接口设计7

2.4运行界面设计7

第三章详细设计8

3.1输入模块设计8

3.2查找模块设计9

3.3订票模块设计10

3.4退票模块的设计10

3.5保存及读取模块设计12

第四章测试分析13

4.1测试程序执行情况13

第五章用户手册(可选)17

5.1使用说明17

第六章课程设计总结17

附录:

程序代码19

参考文献28

第1章需求分析

1.1引言

我们乘坐飞机旅行前,都需要在网上或者去机场买机票,自然就会涉及到机票的订票和退票以及查询等等。

应对这些必须要一个程序能执行多种功能,可以依据乘客的需要来做出相应的解答。

而且在乘客订票和退票后还能自动管理票数,还能根据乘客的需要完成预定机票和等待其他乘客退票等活动。

实现机票的无人化管理。

1.2任务概述

每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

飞机订票系统设计

假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。

试设计一民航订票系统,使之能提供下列服务:

v航班信息录入功能(航班信息用文件保存)--输入

v航班信息浏览功能--输出

v查询航线:

(至少两种查询方式)--算法

●按航班号查询●按终点站查询

v承办订票和退票业务

1.3数据描述

该系统实现对飞机订票系统管理,至少包括以下信息:

订票记录的输入、追加客户记录、查找记录、定退票信息、数据写入文件。

1.4功能需求

根据要求用户需要设计一个关于售票处服务系统程序,使航空公司可以通过的乘客简单地输入个人部分信息,便可方便的管理机票。

该程序还要实现以下功能:

(1)能够对航空航线进行查询;

(2)能够自主的承办订票业务

(3)能够自主的承办退票业务

1.5运行需求

应用VisualC++,VisualC++不仅仅是一个C++编译器,而且是一个基于Windows操作系统的是集成开发环境IDE,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种的Windows应用程序。

1.6任务计划

第一天 选择课程设计题目,分析课题的要求

第二天 编程

第三天 编程及调试

第四天 写课程设计报告

第五天 提交课程设计报告(打印稿及电子稿)

第二章概要设计

2.1总体设计

根据需求分析,由于程序较为简单我们将只设计一个类:

plane(即航班类)。

其主要功能模块有:

(1)输入

(2)输出

(3)票额计算

(4)查询

(5)订票

(6)退票

各功能模块的调用应通过菜单进行选取。

由于乘客和机票的主要信息是由plane类的对象所生成,而且机票的管理自动运行,plane类的构造函数的设计以及机票数额计算的设计要尤其精细,因为这两个函数的调用十分的频繁。

2.2航空类的定义

classPlane

{private:

charname[40];终点站名

intnumber;航班号

intNumber;飞机号

intweek;星期几飞行

intday;日期

intleft;余票额

intn;与数组flag一起确定客户订票状态

public:

intflag[20];订票状态数组,-1为预订票,1为已定票,0为初始化状态

Plane()构造函数

{

name[0]='\0';

number=0;

Number=0;

week=0;

day=0;

left=M;

n=0;数组从0开始计数

for(inti=0;i<20;i++)

flag[i]=0;

}

voidinit()初始化每种飞机票

{

cout<<"请输入终点站名:

";

cin>>name;

cout<<"请输入航班号:

";

cin>>number;

cout<<"请输入飞机号:

";

cin>>Number;

cout<<"请输入星期几飞行:

";

cin>>week;

cout<<"请输入航班的日期:

";

cin>>day;

}

~Plane(){};析构函数

char*getname(){returnname;}获得终点站名

intgetnumber(){returnnumber;}获得航班号

intgetNumber(){returnNumber;}获得飞机号

intgetweek(){returnweek;}获得星期几飞行

intgetday(){returnday;}获得日期

intgetleft(){returnleft;}获得余票额

intgetn(){returnn;}获得旅客数目

voidinleft(intn){left=left+n;}余票额增加函数

voiddeleft(intn){left=left-n;}余票额减少函数

voidinn(){n++;}旅客数目增加函数

};

2.3接口设计

表2.1:

函数列表

函数名

函数格式即函数首部

函数功能

Showmenu()

IntShowmenu()

菜单函数

Start()

Voidstart()

初始化函数

query()

Voidquery()

查询函数

make()

Voidmake()

订票函数

back()

Voidback()

退票信息

Writetofile

()

Voidwritetofile()

写入文件

2.4运行界面设计

图2-2类的结构

图2-3系统结构示意图

第三章详细设计

3.1输入模块设计

主要功能用来对航班信息的进行收集和输入。

将航班信息保存在系统中的前提下,需要输入航班资料,比如航班号,飞机号,航班终点站,航班时间,机票数。

该信息输入成功后,可继续输入航班信息,否则系统返回到主菜单。

第一段:

voidinit()初始化每种飞机票

{

cout<<"请输入终点站名:

";

cin>>name;

cout<<"请输入航班号:

";

cin>>number;

cout<<"请输入飞机号:

";

cin>>Number;

cout<<"请输入星期几飞行:

";

cin>>week;

cout<<"请输入航班的日期:

";

cin>>day;

第二段:

voidstart()

{

for(inti=0;i

{

pl[i].init();

cout<

}

}

3.2查找模块设计

主要功能是对航班信息的查找。

在系统已经录入航班信息前提下,使用该功能通过查找方式进行查找航班信息。

具体包括按按终点站查找。

在查找航班各方面信息后,按任意键就可以返回主菜单。

voidquery()

{

inti,num=0;

charname[40];

cout<

cout<<"请输入终点站名:

";

cin>>name;

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

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

{

num++;

cout<<"航班号:

"<

cout<<"飞机号:

"<

cout<<"星期:

"<

cout<<"航班日期:

"<

cout<<"余票额:

"<

break;

}

if(num==0)

cout<<"没有此航班"<

}

3.3订票模块设计

(1)用于乘客预定机票并就乘客的操作管理机票

(2)具体语句为:

voidmake()

{

intnumber,n,sitnumber,nu,ch,num=0;

cout<<"请输入航班号:

";

cin>>number;

cout<<"请输入订票数额:

";

cin>>n;

for(inti=0;i

if(number==pl[i].getnumber())

{

num++;

if(n<=pl[i].getleft())

{

cout<<"此航班有票"<

pl[i].deleft(n);

pl[i].inn();

pl[i].flag[pl[i].getn()]=1;

for(i=0;i

{

3.4退票模块的设计

(1)用于乘客退定机票并就乘客的操作管理机票

(2)具体语句为:

voidback()

{

intnumber,day,n,nu,sitnumber,num=0;航班号,日期,退票数目,订票数目,座位号,标志量

cout<<"请输入日期:

";

cin>>day;

cout<<"请输入航班:

";

cin>>number;

for(inti=0;i

if((day==pl[i].getday())&&(number==pl[i].getnumber()))日期与航班是否满足

{

num++;日期与航班满足

cout<<"输入退票数目";

cin>>n;

cout<<"退票成功"<

pl[i].inleft(n);该种飞机票增加,即已退票

for(intj=0;j<=pl[i].getn();j++)顺序查询客户订票状态

{

if(pl[i].flag[j]==-1)客户是否为预定状态

{

cout<<"有预约订票,请输入订票数额:

";

cin>>nu;

if(nu<=pl[i].getleft())余票额是否满足要求

{

cout<<"此航班有票"<

pl[i].flag[j]=1;

cout<<"订票成功"<

pl[i].deleft(nu);

for(intk=0;k

{

cout<<"座位号"<<"";

cin>>sitnumber;

}

cout<<"余票额为"<

}

}

else

cout<<"没有预约订票!

"<<"余票额为"<

}

}

if(num==0)

cout<<"没有此票"<

}

3.5保存及读取模块设计

主要功能是对订票信息的保存及读取。

在对系统进行一系列操作,对系统的最新操作进行保存,及时更新系统,方便下次的操作。

voidwritetofile()

{

ofstreamofs("123.dat");

inti;

for(i=0;i

{

ofs<

ofs<

ofs<

ofs<

ofs<

}

ofs.close();

cout<<"数据已经写入文件123.dat中"<

}

第四章测试分析

4.1测试程序执行情况

图4-1主菜单

1.输入航班信息

图4-2输入航班信息

2.查询航班信息

图4-3查询航班信息

3.订票信息

图4-4订票信息

4.退票信息

图4-5退票信息

5.保存及读取信息

图4-6保存及读取信息

第五章用户手册(可选)

5.1使用说明

用户进入系统后,就会看到飞机订票系统的主菜单页面。

系统总共有六个模块,分别由0到5表示,主菜单页面只能输入0到6,输入其他字符无效,如果用户输入无效字符,系统仍留在主菜单页面。

第6章课程设计总结

大二第一学期,我学习了《C++面向对象程序设计》,进一步熟悉了C++语言,以及面向对象程序设计的思想与方法。

在这门课程的学习过程中,我常常对C++灵活多变的编程风格感到难以适应,对于创建一个可编程模型来解决实际问题感到无从下手,对如何运用所学过的算法与常见结构去解决编程问题感到困惑,对类的设计,程序结构的设计更感到茫然。

这一年的C++编程学习,可以说是在痛苦中渡过的,每当我无法解决非常初等的程序设计问题时,每当我连十几行的程序代码都写不出来时,我觉得编程太难了。

我多次在心里对学习与掌握好计算机编程产生过畏难情绪,甚至产生过放弃这门课程学习的念头。

好在老师在这一年里一直在鼓励着我们。

她告诉我们,每一个程序员在成长过程中,都有过类似的经历与感受,使我克服了畏难与自卑心理;他还告诉我们,掌握编程需要累积薄发,需要多动手实验,在实验中去感悟,终会有水滴石穿、云开日出、豁然开朗的那一刻;他还要求我们向《士兵突击》这部电视剧中主人翁许三多学习,“不抛弃,不放弃”,让我们坚持到对编程“开窍”的那一天。

老师为了让我们练好编程,为我们开设了许多练习编程的实验课,让我们不断地磨砺自已的意志品质与思维灵犀,借他山之石,攻已之玉。

老师的这些话,我感到有一定的道理,心里却仍存疑虑,将信将疑。

但也不好拂却了老师的好意与付出,于是,我只好硬着头皮坚持着,坚持了一年。

这次课程设计,是我第一次完成较大的程序编写,开始时,我们心里根本没底,想都不敢想自已能写出一点东西来,并真正地解决这一实际问题。

但随着工作的逐渐深入,对问题的理解越来越透彻,想写的东西越来越多,信心越来越足,程序越编越大,系统的功能越做越强。

当我们洋洋洒洒地撰写完千余行代码,将一个又一个功能模块实现出来,并将它们调试通过之后,那种喜悦感、幸福感、成就感让我感到兴奋。

我终于等到了所谓“开窍”的这一刻,原来它是这样的一种感觉。

此时此刻,回想一年来学习编程的经历,我明白了这样一个道理:

此时的喜悦感、幸福感、成就感,不正好是过去的沮丧、痛苦、自卑所带来的馈赠吗!

其实,这种道理对我们这个年龄段的青年人,谁人不知又谁人不晓呢,它所应证的不就是那几句老名言吗?

不经历风雨,怎么能见彩虹

宝剑锋从磨砺出,梅花香自苦寒来

让我们值得进一步思考的是,为什么我们一碰到困难,就忘记了这些至理名言呢?

为什么我们一遇到挫折,总希望别人来安慰与鼓励,甚至是扶你前行呢?

做完这次课程设计,我感到自己成熟起来了,想起以前老师说过:

古今之成大事业大学问者,必经过三种之境界。

“昨夜西风凋碧树,独上高楼,望尽天涯路。

”此第一境界也;

“衣带渐宽终不悔,为伊消得人憔悴。

”此第二境界也;

“从里寻她千XX,蓦然回首,那人却在灯火栏珊处。

”此第三境界也。

航空订票程序已开发完成了,它实现了我们在需求分析中所提出的功能,但它仍有许多需要改进的地方。

附录:

程序代码

#include

public:

intflag[20];订票状态数组,-1为预订票,1为已定票,0为初始化状态

Plane()构造函数

{

name[0]='\0';

number=0;

Number=0;

week=0;

day=0;

left=M;

n=0;数组从0开始计数

for(inti=0;i<20;i++)

flag[i]=0;

}

voidinit()初始化每种飞机票

{

cout<<"请输入终点站名:

";

cin>>name;

cout<<"请输入航班号:

";

cin>>number;

cout<<"请输入飞机号:

";

cin>>Number;

cout<<"请输入星期几飞行:

";

cin>>week;

cout<<"请输入航班的日期:

";

cin>>day;

}

~Plane(){};析构函数

char*getname(){returnname;}获得终点站名

intgetnumber(){returnnumber;}获得航班号

intgetNumber(){returnNumber;}获得飞机号

intgetweek(){returnweek;}获得星期几飞行

intgetday(){returnday;}获得日期

intgetleft(){returnleft;}获得余票额

intgetn(){returnn;}获得旅客数目

voidinleft(intn){left=left+n;}余票额增加函数

voiddeleft(intn){left=left-n;}余票额减少函数

voidinn(){n++;}旅客数目增加函数

};

Planepl[N];

voidinit();

intshowmenu();菜单函数

voidstart();初始化函数

voidquery();查询函数

voidmake();订票函数

voidback();退票函数

voidwritetofile();

intmain()

{

cout<<"这是民航售票处的计算机系统程序"<

while

(1)

{

intchoice;

choice=showmenu();

switch(choice)

{

case1:

start();break;

case2:

query();break;

case3:

make();break;

case4:

back();break;

case5:

writetofile();break;

case0:

return0;

default:

cout<<"你敲错了!

\n";

}

}

return0;

}

intshowmenu()

{

intch;

cout<

cout<<"请选择你要执行的功能"<

cout<<"1:

录入数据"<

cout<<"2:

查询航线"<

cout<<"3:

承办订票业务"<

cout<<"4:

承办退票业务"<

cout<<"5:

将数据写入文件"<

cout<<"0:

退出程序的运行"<

cin>>ch;

returnch;

}

voidstart()

{

for(inti=0;i

{

pl[i].init();

cout<

}

}

voidquery()

{

inti,num=0;

charname[40];

cout<

cout<<"请输入终点站名:

";

cin>>name;

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

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

{

num++;

cout<<"航班号:

"<

cout<<"飞机号:

"<

cout<<"星期:

"<

cout<<"航班日期:

"<

cout<<"余票额:

"<

break;

}

if(num==0)

cout<<"没有此航班"<

}

voidmake()

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

当前位置:首页 > 经管营销 > 经济市场

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

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