数据结构设计(火车票销售).docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构设计(火车票销售).docx

海南大学电子技术课程设计题目:火车票销售学号:姓名:年级: 08通信(1)专业:通信工程指导老师:吴泽晖日期:2010年12月06日目录需求分析…………………………………………….2设计要求……………………………………………2概要设计……………………………………………2火车票销售系统流程图…………………………….3详细设计…………………………………………….4测试结果…………………………………………….9心得体会……………………………………………..13参考文献……………………………………………..14正文一、需求分析编制一个简单的火车票销售系统,可完成售票、退票、车票剩余情况查询等功能。每张车票包含车次、座位信息。二、设计要求在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、座位情况。为简单起见,在此假设所有出售的车票均为同一车次的车票。退票时,必须是车站售出的列车票才能退(这里以同一车次的为例),否则视为无效票,不能办理退票业务。三、概要设计整个车票销售系统实际上可以看作对链式基本线性表的操作过程。为每张车票建立一个结点,则所有出售的车票共同建立起一个销售链表。当售出一张票,从销售链表中删除1个结点,为提高效率,每售1张票时,删除链表最前面的结点。而退回1张票时,如果为有效票,而在销售链表中插入1个结点,否则不能退票。而查询剩余票情况时,则将销售链表中所有结点的信息输出,并统计销售链表中的结点数即可。根据上述分析,可以给车票构造一个结构体类型如下: typedef struct node{char tr_no[4]; /*车次*/elemtype seat; /*座位号*/struct node *next;}ticket;则所有车票构成的销售链表如下图:abc 2abc 1abc 3abc 30 ^车次 座位车次 座位车次 座位车次 座位……abc 2abc 1abc 3abc 30 ^车次 座位车次 座位车次 座位车次 座位……saleback 车票销售链表初始状态和备份链表而每售1张票则是将链表最前面的结点删除,退回1张有效票,则在链表最前面插入1个结点。整个链表由指针sale指向。为检查退票的有效时,即检查退票是否为销售出去的票,可以将销售前所有票构成的链表进行备份,由指针back指向。每次退回的票都与指针back指向的链表中的每个结点进行比较,如果能在back链表中找到,则为有效票,可以办理退票业务。四、火车票销售系统流程图开 始建立车票销售链表1查询剩余票数2购票3退票4退出结 束五、详细设计#define null 0#define elemtype inttypedef struct node{char tr_no[4]; /*车次*/elemtype seat; /*座位号*/struct node *next;}ticket;ticket *sale,*back; /*sale为售票链表指针,back为备份链表指针 */int count() /*查询车票剩余情况模块*/{ticket *q;int n=0; /*车票计数器*/q=sale;while(q) /*统计车票数*/{n++;q=q-next;}return(n);}void abort_ticket(elemtype x,char t[]) /*办理退票模块*/{ticket *s,*q;q=back; /*q指向备份链表*/s=(ticket *)malloc(sizeof(ticket)); /*需要办理退回的车*/s-seat=x;strcpy(s-tr_no,t);while(strcmp(s-tr_no,q-tr_no)(s-seat!=q-seat)q) /*检查是否为有效车票*/q=q-next;if(!q)printf(对不起!你所退的不是本列车的车票!\n);else /*为有效票办理退回业务*/{s-next=sale;sale=s;}}void sale_ticket() /*购票模块*/{ticket *t;if(sale){t=sale;sale=sale-next; /*从销售链表中删除已售票所在的结点*/printf(你购买车票的车次为:%s,座位号为%d\n,t-tr_no,t-seat);free(t);}elseprintf(车票已售完\n);}void display(){ticket *p;p=sale;if(p==null)printf(列车票已售完!);else while(p!=n

文档评论(0)

专业好文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6110200002000000

1亿VIP精品文档

相关文档