- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学生实习报告
课程名称_ 数据结构与数据处理应用训练
题目名称
学生学院
专业班级
学 号
学生姓名
指导教师
2014 年 2 月 日
XXX
计算分院 计算1103
【摘要】 模拟铁路客运售票系统,采用链表结构储存数据,有订票、退票、查询、修改、读取文件等功能模块,整体系统运行为一个无限循环,根据输入指令进行不同操作,主要知识有结构的定义,链表的操作,循环的应用。
【】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 *next;//下一个节点
}trainline;
停靠站点信息
typedef struct station//停靠站
{
char stop[9];//停靠站名
char stop_time;//停靠时间
struct station *next;//下一个节点
}station;
乘客订票信息
typedef struct customer //乘客
{
char name[9];//顾客名
char date[9];//日期
char train_num[9];//车次号
int seat_level;//座位类别
int seat_num;//座位数量
struct customer *next;//下一个节点
}customer;
找到路线链表中的末尾节点
status increase_train(trainline *l,char *date,char *train_num,
station *stat,char *begin_time,char *end_time,
int RW,int YW,int RZ,int YZ,int WZ)//增加路线
将需要插入的路线信息插入到链表中指定节点之后
status insert_trainline(trainline **p,char *date,char *train_num,
station *stat,char *begin_time,char *end_time,
int RW,int YW,int RZ,int YZ,int WZ)//trainline链表插入操作
将需要插入的乘客订票信息插入到链表中
status insert_customer(customer **p,char *name,char *date,
char *train_num,int seat,int seat_num)//customer链表插入操作
删除某条路线,首先搜索到该路线,然后在链表中跳过该节点
status delete_trainline(trainline *h,char *date,char *train_num)//删除路线
删除某条乘客订票记录,首先搜索到该记录,然后在链表中跳过该节点
status delete_customer(customer *h,char *date,char *train_num)//删除顾客
修改路线座位余量,首先搜索到该路线,然后删除对应的座位类别的余量
trainline *modefy_trainline(trainline *l,char *date,char *train_num,int seat_level,int num) //修改trainline链表中的数据
退票,首先搜索到该订票记录,然后确定退票数量,如果大于订票数量,则减去退票数量;如果等于退票数量,则删除此订票记录;如果小于,则输出数量不足,退票失败。
如果退票成功,则路线中相应座位余量增加。
status delete_cus(customer *h,trainline *l,char *name,
文档评论(0)