- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
铁路客票销售模拟系统
学生实习报告
课程名称_ 数据结构与数据处理应用训练
题目名称
学生学院
专业班级
学 号
学生姓名
指导教师
2014 年 2 月 日
MACROBUTTON AcceptAllChangesInDoc [单击此处添加课程设计题目]
XXX
计算分院 计算1103
【摘要】 模拟铁路客运售票系统,采用链表结构储存数据,有订票、退票、查询、修改、读取文件等功能模块,整体系统运行为一个无限循环,根据输入指令进行不同操作,主要知识有结构的定义,链表的操作,循环的应用。
【关键词】 铁路客运售票模拟系统,查询车次,车票预订,办理退票
1 内容与要求
铁路客运售票模拟系统
【问题描述】
铁路客运售票系统的业务活动包括:查询车次、车票预订和办理退票。试设计一个铁路客运售票模拟系统,使上述业务可以借助计算机来完成。
【具体要求】
铁路客运售票处的计算机系统可以为客户提供下列各项服务:
1. 查询车次:根据旅客提供的出发站、到达站、出发日输出下列信息:
车次号、出发站、到达站、出发时间、到达时间、各类车票的余票额(包括软卧、硬卧、软座、硬座、无座)等。还可根据客户要求,输出某车次从起点站到终点站的各站点的名称及出发时间和到达时间。
2. 承办订票业务:根据客户提出的要求(日期、车次号、座位类别、订票数额)查询该车次该座位类别票额情况,若尚有余额,则为客户办理订票手续,并输出座位号(座位号信息的输出可作为选做部分);若无票或余票额少于订票额,则需要重新询问客户要求。若客户需要,可预约登记排队等候。
3.承办退票业务:根据客户提供的情况(日期、车次号、座位类别、退票数额),为客户办理退票手续,然后查询该车次该座位类别是否有人预约登记,首先询问排在第一的客户,若退票数能满足他的要求,则为他办理订票手续,否则依次询问其他排队预约的客户。
为简化问题,可以规定同一个座位只能售出一次票,即不考虑同一个座位分不同路段出售多次。还可规定只能查询或预订未来3天之内的车票,即每个车次只需分别保存3个班次的售票情况。
【实现提示】
每个车次应包含的信息有:车次号、出发日、起点站名、各中途站名、终点站名、各站点的到达时间与出发时间、各类座位车票定额、各类座位余票额、各座位是否已售出信息(选做内容,可用一张表记录每个座位是否已售出)、各类座位已订票的客户名单(包括姓名、出发站、到达站、订票额、座位号(选做))和各类座位预约登记的客户名单(包括姓名、出发站、到达站、所需票额)。这最后两项显然可以分别用线性表和队列实现(每一类别的座位需有各自的线性表和队列)。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构;由于预约人数无法预料,队列也应以链表作存储结构。整个系统需汇总各车次的情况记录在一张线性表上,由于车次基本不变,可采用顺序存储结构,并按车次有序,因为每个车次需保存未来3天的售票情况,可考虑每个车次的每一班次是这张表上的一个记录,也可以每个车次是一个记录,里面分别包含3趟班次的售票情况。每个记录需定义成一个结构类型。
【测试数据】
自己设计,报告上要求写出多批数据测试结果。
【实现说明】
每个同学可以根据自己的实际情况对该铁路客运售票模拟系统的功能进行增减。有能力的同学在完成上述功能的基础上,可以充分发挥自己的想象力,增加该系统的功能和其它服务项目,如可以按照实用性来完善上述模拟系统,考虑输出座位号信息、同一个座位允许分不同路段出售多次等;能力较弱的同学则可以简化上述系统,如不考虑预约登记排队等候车票、不考虑各种座位类别(即每个车次只有一种座位)、还可以不考虑中途站点(即每个车次只设置起点站与终点站,中间不停)等。
2 总体设计
3 详细设计
路线信息
typedef struct trainline //路线
{
char date[9];//日期
char train_num[8];//车次号
struct station *sta;//途经站
char begin_time[6];//出发时间
char end_time[6];//到达时间
int RW;//软卧余量
int YW;//硬卧余量
int RZ;//软座余量
int YZ;//硬座余量
int WZ;//无座余量
struct trainline
文档评论(0)