火车票管理系统课程设计报告Word格式文档下载.docx
《火车票管理系统课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《火车票管理系统课程设计报告Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
![火车票管理系统课程设计报告Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-11/17/c37dc0e4-0b7a-4dfb-85d9-e7009982365c/c37dc0e4-0b7a-4dfb-85d9-e7009982365c1.gif)
内容详实程度
文字表达熟练程度
回答问题准确度
简短评语
教师签名:
年月日
评分等级
备注
评分等级有五种:
优秀、良好、中等、及格、不及格
火车票务管理系统
一、课题内容和要求
(一)课题内容
该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。
所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
(二)课题要求
(1)火车票数据由多条记录组成,其信息包括:
车次,发车时间,起点站,终点站,行车时间,额定载量,已售票人数等。
(2)数据保存形式:
所有火车票数据要以文本或二进制文件保存。
(3)需要实现的功能
1)新增火车票数据记录。
2)查找火车票数据(可按车次,发车时间、起点站、终点站等查找)。
3)删除火车票数据记录(先查找,再删除。
若查找出多条记录,则进一步提示用户选择记录的车次,再删除)。
4)对火车票排序(可按车次、发车时间、起点站、终点站等排序。
)。
5)显示当前所有火车票信息列表。
6)售票(先查找,当确定车次后,根据售票张数对该车次的已售票人数进行修改)。
7)退票(售票的逆处理,过程与售票类似)。
8)保存火车票数据到文件中。
9)从文件中读入火车票数据。
(4)界面功能要求:
1)采用友好的字符界面,实现一个功能控制菜单。
2)每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。
需求分析
一、功能分析图
二、录入班次信息:
依次输入班次、起点站和终点站等信息同时保存在文件中,并可以随时增加新的班次信息。
三、浏览班次信息:
输出保存在文件中的全部班次信息,并区分当前的车次是否已发出,如发出则标记“此车已发出”。
四、按班次号查询路线:
以输入的班次号为依据进行查找,找到匹配项则输出该项完整的班次信息;
未找到则显示“未找到该车次信息!
”
五、按起点站查询路线:
输入的起点站为依据进行查找,找到匹配项则输出该项完整的班次信息;
六、按终点站查询路线:
输入的终点站为依据进行查找,找到匹配项则输出该项完整的班次信息;
七、排列发车时间表:
按照发车时间从早到晚的顺序逐条显示车次信息。
八、售票功能:
依次输入“售票数目”和“班次号”可出售未发出的班次的车票。
九、退票功能:
依次输入“退票数目”和“班次号”可退距发车时间大于半小时的班次的车票。
三、概要设计
(1)类:
#include<
>
#include<
classTicket
{
charno[20];
charname_b[20];
charname_e[20];
inthour;
intminute;
inttra_time;
inteding;
intyupiao;
public:
voidshoupiao(fstream&
f);
voidtuipiao(fstream&
voidsearchbynumber(fstream&
voidsearchbybeginplace(fstream&
voidsearchbyendplace(fstream&
voidluru(fstream&
voidliulan(fstream&
voidpaixu(fstream&
friendostream&
operator<
<
(ostream&
out,constTicket&
t);
our)||(T[j].hour==local->
tm_hour)&
&
(local->
tm_min>
T[j].minute))
{
cout<
T[j]<
"
"
此车已发出!
endl;
}
else
cout<
}
}
voidTicket:
:
shoupiao(fstream&
f)
constintNUM=sizeof(Ticket);
intn;
longt;
charm[20];
TicketT;
structtm*local;
cout<
请输入售票的数目:
cin>
n;
请输入售票的班次:
m;
time(&
local=localtime(&
(0,ios:
beg);
o;
cin>
t[i].hour;
t[i].minute;
t[i].name_b;
t[i].name_e;
t[i].tra_time;
t[i].eding;
t[i].yupiao;
}
end);
//文件指针指向文件尾
for(i=0;
i<
num;
i++)
((char*)&
t[i],sizeof(Ticket));
xiugai(fstream&
charn[10];
Tickett;
请输入你要修改的班次:
boolfd=false;
while(!
()&
!
fd)
{
((char*)&
t,sizeof(Ticket));
if(fd=(n))
{
请依次输入"
endl<
发车时间(时)、发车时间(分)、起点站、终点站、行车时间、额定票数和余票数量"
;
((char*)&
voidmenu()//菜单函数
******************************菜单********************************"
1:
录入车次信息"
2:
浏览车次信息"
3:
根据车次号查询路线"
4:
根据起点站查询路线"
5:
根据终点站查询路线"
6:
排列发车时间表"
7:
售票"
8:
退票"
9:
增加车次"
10:
修改车次"
0:
退出菜单"
请选择您需要操作的选项:
voidmain()
intx;
fstreamfile;
*********************欢迎您使用票务管理系统!
**********************"
menu();
while(x)
x;
("
d:
\\"
ios:
in|ios:
out|ios:
binary);
//创建并打开二进制文件
switch(x)
case1:
(file);
break;
case2:
case3:
case4:
(file);
case5:
case6:
case7:
case8:
case9:
case10:
case0:
break;
操作已完成,请继续!
();
//关闭二进制文件
************************欢迎您下次使用!
****************************"
五、测试数据及其结果分析
1、录入班次信息
输入:
1
输出:
请输入你要录入的班次信息数量:
4
请依次输入
车次、起点站、终点站、发车时间(时)、发车时间(分)、行车时间、额定票数和余票数量
G111南京扬州802010030
G222南京北京10302112035
G333南京上海1102214050
G444南京广州9302216040
2、浏览班次信息
2
G333南京上海1102214050
3、根据车次号查询路线
3
请输入你要查找的班次号:
G111
操作已完成,请继续!
4、根据起点站查询路线
请输入你要查找的班次的起点站:
南京
G444南