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

  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);

{

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];

相关文档
最新文档