基于C++的火车票管理系统C++课程设计报告Word下载.docx
- 文档编号:13474877
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:16
- 大小:136.58KB
基于C++的火车票管理系统C++课程设计报告Word下载.docx
《基于C++的火车票管理系统C++课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《基于C++的火车票管理系统C++课程设计报告Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
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].Zhongdi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C+ 火车票 管理 系统 课程设计 报告