火车票管理系统课程设计报告.docx

  • 格式:docx
  • 大小:34.63 KB
  • 文档页数:34

下载文档原格式

  / 34
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

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、按起点站查询路线

根据用户输入的起点站查找匹配项的班次信息。