基于C++的车票管理系统Word格式.docx

上传人:b****4 文档编号:7779027 上传时间:2023-05-09 格式:DOCX 页数:19 大小:131.53KB
下载 相关 举报
基于C++的车票管理系统Word格式.docx_第1页
第1页 / 共19页
基于C++的车票管理系统Word格式.docx_第2页
第2页 / 共19页
基于C++的车票管理系统Word格式.docx_第3页
第3页 / 共19页
基于C++的车票管理系统Word格式.docx_第4页
第4页 / 共19页
基于C++的车票管理系统Word格式.docx_第5页
第5页 / 共19页
基于C++的车票管理系统Word格式.docx_第6页
第6页 / 共19页
基于C++的车票管理系统Word格式.docx_第7页
第7页 / 共19页
基于C++的车票管理系统Word格式.docx_第8页
第8页 / 共19页
基于C++的车票管理系统Word格式.docx_第9页
第9页 / 共19页
基于C++的车票管理系统Word格式.docx_第10页
第10页 / 共19页
基于C++的车票管理系统Word格式.docx_第11页
第11页 / 共19页
基于C++的车票管理系统Word格式.docx_第12页
第12页 / 共19页
基于C++的车票管理系统Word格式.docx_第13页
第13页 / 共19页
基于C++的车票管理系统Word格式.docx_第14页
第14页 / 共19页
基于C++的车票管理系统Word格式.docx_第15页
第15页 / 共19页
基于C++的车票管理系统Word格式.docx_第16页
第16页 / 共19页
基于C++的车票管理系统Word格式.docx_第17页
第17页 / 共19页
基于C++的车票管理系统Word格式.docx_第18页
第18页 / 共19页
基于C++的车票管理系统Word格式.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于C++的车票管理系统Word格式.docx

《基于C++的车票管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《基于C++的车票管理系统Word格式.docx(19页珍藏版)》请在冰点文库上搜索。

基于C++的车票管理系统Word格式.docx

1.2课程设计的题目

火车票管理系统

1.3题目要求

用c++设计一个系统,能提供下列服务:

(1)录入班次信息(信息用文件保存),可不定时地增加班次数据

(2)浏览班次信息,可显示出所有班次当前状态(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。

(3)查询路线:

可按班次号查询,可按终点站查询

(4)售票和退票功能

A:

当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数

B:

退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数

2概要设计

1)算法设计说明

由主函数进入,弹出主菜单界面,通过Switch语句选择需要的功能,可以选择班次录入,浏览班次信息,查询班次信息,购票和退票以及退出系统,以完成不同的操作.其中查询班次信息中还可以由班次查询或者终点站查询.整个系统的文件载入用一个文件载入函数承当.

3详细设计

3.1流程图

3.2源程序

#include<

iostream>

fstream>

string>

#include<

time.h>

usingnamespacestd;

voidwelcome();

//欢迎子函数

voidchoose();

//选择子函数

voidbanciluru();

//班次录入子函数

voidliulanbancixinxi();

//浏览班次信息子函数

voidshoupiao();

//售票子函数

voidtuipiao();

//退票子函数

voidquit();

//退出子函数

voidchaxun();

//查询子函数

intloading();

//文件载入子函数

constintMAX=20;

//使数组最大值可调

constintN=50;

structtime//时间结构体,为了与系统时间做比较.

{

inthour;

intminutes;

};

structticket//车票结构体,包含车次,时间结构体,起点,终点,行车时间,额定载客量,已订票人数

intNumber;

structtimeSetout;

charQidian[MAX];

charZhongdian[MAX];

floatLasttime;

intFixnumber;

intFixednumber;

}car[N];

//主函数

intmain()

{

welcome();

return0;

}

//欢迎子函数

voidwelcome()

cout<

<

"

________________________________________________________"

endl;

|欢*迎*使*用*火*车*票*管*理*系*统|"

||"

|本管理系统有以下功能:

|"

|1班次录入|"

|2浏览班次信息|"

|3查询火车信息|"

|4购买火车票|"

|5退订火车票|"

|6退出系统|"

|______________________________________________________|"

请输入所要执行功能前的数字:

"

choose();

//选择子函数

voidchoose()

stringi;

cin>

>

i;

if(i=="

1"

banciluru();

2"

liulanbancixinxi();

3"

chaxun();

4"

shoupiao();

5"

tuipiao();

6"

quit();

else

{

cout<

输入有误!

请在数字1-5之间重新您的输入选择!

choose();

}

//班次录入子函数

voidbanciluru()

stringt="

;

ofstreamoutfile;

outfile.open("

班次信息.txt"

ios:

:

app);

for(inti=0;

t=="

i++)

请输入需要添加的火车班次:

car[i].Number;

请输入此班次发车时间(格式:

先输入小时,回车,再输入分钟):

car[i].Setout.hour;

car[i].Setout.minutes;

请输入出发站:

car[i].Qidian;

请输入终点站:

car[i].Zhongdian;

请输入行车时间:

car[i].Lasttime;

请输入额定载客量:

car[i].Fixnumber;

请输入已订票人数:

cin>

car[i].Fixednumber;

outfile<

car[i].Number<

car[i].Setout.hour<

car[i].Setout.minutes<

car[i].Qidian<

car[i].Zhongdian<

car[i].Lasttime<

car[i].Fixnumber<

car[i].Fixednumber<

是否继续录入?

(是请输1,否请输任意键返回主菜单)"

t;

if(t!

="

{

welcome();

}

outfile.close();

输入回车键返回"

getchar();

//浏览班次子函数

voidliulanbancixinxi()

intc;

c=loading();

班次"

发车时间"

起点站"

终点站"

行车时间"

额定载客量"

已订票人数"

i<

c;

time_ttval;

structtm*now;

tval=time(NULL);

now=localtime(&

tval);

if((now->

tm_hour==car[i].Setout.hour&

&

now->

tm_min>

car[i].Setout.minutes)||(now->

tm_hour>

car[i].Setout.hour))

cout<

此车已发出"

//车次查询子函数

voidNumbersearch();

voidFinalsearch();

voidchaxun()

stringt;

1.按班次查询"

2.按终点站查询"

请输入您想选择的查询方法前的数字:

if(t=="

Numbersearch();

Finalsearch();

if(t!

||t!

输入有误,请重新输入"

chaxun();

//班次查询子函数

voidNumbersearch()

loading();

intSearchNumber;

请输入您需要查找的班次号:

SearchNumber;

car[SearchNumber-1].Number<

car[SearchNumber-1].Setout.hour<

car[SearchNumber-1].Setout.minutes<

car[SearchNumber-1].Qidian<

car[SearchNumber-1].Zhongdian<

car[SearchNumber-1].Lasttime<

car[SearchNumber-1].Fixnumber<

car[SearchNumber-1].Fixednumber<

//终点站查询子函数

voidFinalsearch()

intR;

R=loading();

inti;

charAddress[MAX];

请输入终点站名称:

Address;

for(i=0;

R;

if((strcmp(Address,car[i].Zhongdian))==0)

//购买火车票子函数

voidshoupiao()

请输入要订购的车票的班次:

if(i<

=0||i>

R)

对不起,今天没有这趟车,请明天再来,谢谢使用!

getchar();

welcome();

time_ttval;

tm_hour==car[i-1].Setout.hour&

tm_min<

car[i-1].Setout.minutes)||(now->

tm_hour<

car[i-1].Setout.hour))

if(car[i-1].Fixednumber<

car[i-1].Fixnumber)

(car[i-1].Fixednumber)++;

ofstreamoutfile;

out);

for(i=0;

{

outfile<

}

outfile.close();

你的订票成功,请按时上车,谢谢使用!

elsecout<

对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作"

对不起,今天的这趟车已发出,请明天再来,谢谢合作"

//退订火车票子函数

voidtuipiao()

请输入要退购的车票的班次:

对不起,今天没有这趟车,无法完成退票.谢谢使用!

if(car[i-1].Fixednumber>

=1)

car[i-1].Fixednumber-=1;

退订车票成功,谢谢使用!

对不起,今天的这趟车的票尚未卖出,无法完成退票!

对不起,今天的这趟车已发出,无法完成退票!

//退出子函数

voidquit()

cout<

*********************谢谢使用本系统,欢迎下次继续使用***********************"

}

//文件载入子函数

intloading()

ifstreaminfile;

infile.open("

in);

if(!

infile)

请查看原文件是否存在!

按任意键返回"

!

infile.eof();

infile>

car[i].Number>

car[i].Setout.hour>

car[i].Setout.minutes>

car[i].Qidian>

car[i].Zhongdian>

car[i].Lasttime>

car[i].Fixnumber>

returni-1;

4测试

主菜单:

班次录入:

浏览班次信息:

查询火车信息:

测试中发现订购和退订车票后,虽然已订购车票数实际上有增减,但不能存入到文件中及时保存.后来通过以文件覆盖的方法重新录入一次文件得以解决.测试中还发现若时间是整点的话,分钟的0只能是一个0,因为分钟定义的格式是int.,但若果改成char格式之后和系统时间比较的函数将不成立.所以这个程序仍然存在这样的一个问题.

5课程设计总结

通过这次的课程设计,我发现我还有好多的不足之处,还有好多知识不能很好的运用,而且题目中的一个要求没有正常的完成.我觉得我们应该花更多的时间去查找资料,因为仅凭自己已学的知识是无法完成这些内容的.

这次课程设计我用了9个子函数去完成,分开完成各个函数并验证其正确性,这样的方法让我能够顺利完成整个系统.

不足之处还有好多,我应该在以后的学习中更加努力完善.

6参考书目:

[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2006年.

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

当前位置:首页 > 工程科技 > 能源化工

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

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