火车票订票系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计题目:火车订票管理系统班级:
姓名:
学号:
2015年1月4日1.课程设计目的和要求
火车订票管理系统的主要功能包括:
1. 火车线路查询功能,乘客输入终点站名称或输入车次,输出相应的火车线路信息。
2. 订票功能。乘客输入车次和订票数,先查询该车次的余票数,若余票数大于等于订票数,则为乘客办理订票手续,要求乘客输入姓名、身份证号码,计算出总票价,产生一个新结点,将该结点添加到对应车次的链表中,然后修改该车次的余票数。若余票数小于订票数,则输出提示信息“余票数不足,订票失败!”
3. 退票功能。乘客输入车次和身份证号码,在该车次对应的链表中查找该乘客,若找到,询问乘客退票数量,若退票数小订票数,则只需修改结点的订票数;若退票数等于订票数,则将该乘客对应的结点删除,然后修改该车次的余票数;若没找到,则应提示“未找到相应信息”,要求乘客重新输入车次和身份证号码,再进行查找,如果仍未找到,则输出提示信息“输入信息错误,退票失败!”
4. 其他查询功能。
(1) 输入车次,输出该车次的全部订票信息。
(2) 输入车次,输出该车次的订票数和余票数。
(3) 输入终点站名称,输出相关火车线路的信息。
(4) 输入日期(年.月.日),输出发车时间为该天的火车线路的信息。
(5) 输出余票数为0的火车线路的信息。
管理员入口
输入系统信息
火车订票管理系
其他查询
2.系统总体设计
2.1系统功能模块图
乘客入口 火车线路查询
查询票数为零的火车线路信息
查询发车时间为某天的火车线路信息
查询终点站为某地的火车线路信息
查询某车次的订票数和余票数
查询某车次的全部订票信息
2.2数据结构设计
假设有5条火车线路(起点均为济南),每条线路所涉及的信息有:终点站、 车次、发
车时间(年•月•日.时.分)、票价、余票数(假设火车总票数为 300)。
乘客订票信息包括:乘客姓名、乘客身份证号码、订票数,总票价。
本系统要求用结构体数组和链表实现,将火车线路信息存放在结构体数组 中,每条线路对应一个链表,乘客订票就是在链表中插入结点, 乘客退票就是在 链表中删除结点。
链表的结点类型和结构体类型定义如下:
typedef struct node {
char n ame[10];
//
char IDcard[20]; // int TicketNum; // 订票数 float FareSum; // 总票价
struct node *n ext; // 指针成员 }SN;
typedef struct Dtime {
short year; short mon th; short day; short hour; short minu te; }SD;
typedef struct train {
char termi nal[10]; // char seque nce[10]; //
struct Dtime StartTime; // float fare;
//
int SpareTicketNum; // struct
node *head; // }ST;
系统整体结构见图9.3所示
乘客姓名 乘客身份证号码
终点站 车次
发车时间
票价 余票数
指针成员,指向该线路第一个订票乘客
北京 /
王海
K305 370 (1234)
2010.9.15.7:10
3
265.0
795..0
291
/
北京
T507 2010915.15:30
328.5
300 NULL
上海
赵梅
T708 /
370 (1572)
2010.9.18.9:25
1
436.5 436.5
297
/
/
张岩 • 李立 370 (2584)
/
370 (3069)
1
5
265.0
1325.0 /
NULL
图9.3系统结构示意图
全局变量如下:
#defi ne N1 5 ST b[N1]; #defi ne LEN1 sizeof(ST) #defi ne LEN2 sizeof(SN) II 火车线路数
//火车信息结构体数组 II 火车信息结构体数据块大小 II 乘客信息结构体数据块大小
3.系统详细设计
3.1
函数说明 #i nclude
结构体类型的定义
typedef struct node
{
char n ame[20];
char IDcard[20];
int TicketNum;
float FareSum;
struct node *n ext;
}SN;
typedef struct Dtime
{
short year;
short mon th;
short day;
short hour;
short minu te;
}SD;
typedef struct train
{
char termi nal[20];
char seque nce[20]; struct Dtime StartTime;
float fare;
int SpareTicketNum;
struct node *head;
}ST;
ST b[N1];
#defi ne LEN1 sizeof(ST)
#defi ne LEN2 sizeof(SN)