火车票管理系统课程设计报告.docx
- 格式:docx
- 大小:34.63 KB
- 文档页数:34
程序设计报告( 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);
void paixu(fstream&f);
friend ostream&operator<<(ostream&out,const Ticket&t);//定义重载输出运算符的友元函数
bool findno(char n[])//用于判断输入的字符串是否与查找区域中的某个字符串一致
{
if(strcmp(no,n)==0)
return true;
else
return false;
}
bool findname_b(char n[]) {
if(strcmp(name_b,n)==0)
return true;
else
return false;
}
bool findname_e(char n[])
{
if(strcmp(name_e,n)==0)
return true;
else
return false;
}
};
(2)主要函数流程图:
1、录入班次信息函数:
用户根据提示信息逐项输入班次信息各项数据, 利用read()函数把要录入的信息写入文件。 如图1
图1 图2 2、浏览班次信息
显示所有的班次信息,并标记已发出的车次, 如图2
3、按班次号查询路线
根据用户输入的班次号查找匹配项的班次信息。 4、按起点站查询路线
根据用户输入的起点站查找匹配项的班次信息。