火车票管理系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计报告
( 2014 / 2015 学年第一学期)
题目:火车票管理系统
专业通信工程
学生姓名
班级学号
指导教师
指导单位计算机学院计算机软件教学中心
日期
火车票务管理系统
一、课题内容和要求
(一)课题内容
该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
(二)课题要求
(1)火车票数据由多条记录组成,其信息包括:
车次,发车时间,起点站,终点站,行车时间,额定载量,已售票人数等。
(2)数据保存形式:
所有火车票数据要以文本或二进制文件保存。
(3)需要实现的功能
1)新增火车票数据记录。
2)查找火车票数据(可按车次,发车时间、起点站、终点站等查找)。
3)删除火车票数据记录(先查找,再删除。若查找出多条记录,则进一步
提示用户选择记录的车次,再删除)。
4)对火车票排序(可按车次、发车时间、起点站、终点站等排序。)。
5)显示当前所有火车票信息列表。
6)售票(先查找,当确定车次后,根据售票张数对该车次的已售票人数进
行修改)。
7)退票(售票的逆处理,过程与售票类似)。
8)保存火车票数据到文件中。
9)从文件中读入火车票数据。
(4)界面功能要求:
1)采用友好的字符界面,实现一个功能控制菜单。
2)每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次
操作。
需求分析
一、功能分析图
二、录入班次信息:依次输入班次、起点站和终点站等信息同时保存在文件中,
并可以随时增加新的班次信息。
三、浏览班次信息:输出保存在文件中的全部班次信息,并区分当前的车次是
否已发出,如发出则标记“此车已发出”。
四、按班次号查询路线:以输入的班次号为依据进行查找,找到匹配项则输出
该项完整的班次信息;未找到则显示“未找到该车次信息!”
五、按起点站查询路线:输入的起点站为依据进行查找,找到匹配项则输出该
项完整的班次信息;未找到则显示“未找到该车次信息!”
六、按终点站查询路线:输入的终点站为依据进行查找,找到匹配项则输出该
项完整的班次信息;未找到则显示“未找到该车次信息!”
七、排列发车时间表:按照发车时间从早到晚的顺序逐条显示车次信息。
八、售票功能:依次输入“售票数目”和“班次号”可出售未发出的班次的车
票。
九、退票功能:依次输入“退票数目”和“班次号”可退距发车时间大于半小
时的班次的车票。
三、概要设计
(1)类:
#include<>
#include<>
#include<>
#include <>
class Ticket
{
char no[20];
char name_b[20];
char name_e[20];
int hour;
int minute;
int tra_time;
int eding;
int yupiao;
public:
void shoupiao(fstream&f);
void tuipiao(fstream&f);
void searchbynumber(fstream&f);
void searchbybeginplace(fstream&f); void searchbyendplace(fstream&f); void luru(fstream&f);
void liulan(fstream&f);
{
cout< } } } void Ticket::shoupiao(fstream&f) { const int NUM=sizeof(Ticket); int n; long t; char m[20]; Ticket T; struct tm *local; cout<<"请输入售票的数目:"< cin>>n; cout<<"请输入售票的班次:"< cin>>m; time(&t); local = localtime(&t); (0,ios::beg);o; cin>>t[i].hour; cin>>t[i].minute; cin>>t[i].name_b; cin>>t[i].name_e; cin>>t[i].tra_time; cin>>t[i].eding; cin>>t[i].yupiao; } (0,ios::end);o; cin>>t[i].hour; cin>>t[i].minute; cin>>t[i].name_b; cin>>t[i].name_e; cin>>t[i].tra_time; cin>>t[i].eding; cin>>t[i].yupiao; } (0,ios::end);//文件指针指向文件尾 for(i=0;i ((char*)&t[i],sizeof(Ticket)); } void Ticket::xiugai(fstream&f) { char n[10];