课程设计一:火车售票系统(共14页)

上传人:hs****ma 文档编号:468771862 上传时间:2023-11-29 格式:DOCX 页数:14 大小:147.94KB
返回 下载 相关 举报
课程设计一:火车售票系统(共14页)_第1页
第1页 / 共14页
课程设计一:火车售票系统(共14页)_第2页
第2页 / 共14页
课程设计一:火车售票系统(共14页)_第3页
第3页 / 共14页
课程设计一:火车售票系统(共14页)_第4页
第4页 / 共14页
课程设计一:火车售票系统(共14页)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《课程设计一:火车售票系统(共14页)》由会员分享,可在线阅读,更多相关《课程设计一:火车售票系统(共14页)(14页珍藏版)》请在金锄头文库上搜索。

1、数据结构与算法课程实验报告课程设计一:火车售票系统设计及实现姓名:cll 班级: 学号:一、实验内容: 火车售票系统在现实中的应用已经非常普遍,目前通常使用可视化的方法实现,例如采用C/S模式下的程序设计或者采用B/S模式下的程序设计,通常都具有较为友好的界面和较为完善的功能。火车售票系统的实现过程中,主要涉及到数据格式的设计,也就是数据结构的设计。通常在采用数据库的情况下,可以运用数据库的设计来实现。在没有采用数据库情况下需要,单独设计相应数据结构和算法。二、实验目的: 按给定需求,通过查找相关资料,完成火车售票系统设计及实现,在设计过程中充分运用数据结构与算法课程中所学知识,从而熟练地掌握

2、和应用线性表、单链表等重要数据结构和常用算法。提前熟悉软件需求分析,软件测试等环节,运用相应程序设计语言实现该系统,从而进一步提高程序设计能力。三、问题描述(1)此系统可以实现售票、退票、车票剩余情况查询等功能。(2)每张车票包含车次、座位信息。在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、座位情况。(3)退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票。(4)演示程序以用户和计算机的对话方式进行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入程序中规定的运算命令;相应的输入数据(滤去输入中的非法字符)和运算结果显示在后。(5)由订票系统的主要功能使程

3、序的命令包括:1)查询;2)订票;3)退票 4)退出订票系统四、问题的实现4.1所用的数据结构(包括所用数据结构的抽象数据类型定义和说明)typedef struct LNode/数据域char name10;/订票姓名int dnum;/订票数量char dj50;/证件编号int zhekou; /1代表折扣对象float pay;/付费struct LNode *next;/指针域int zuohao200;LNode,*LinkList;/构造单链表(已订票) typedef struct Ticketschar *endname;/终点站名char *hnum;/车次名int fnu

4、m;/票价float discut;/折扣int day;/日期int wholenum;/总票额 int lastnum;/余票量 int tuipiao100; /退票处理,记录退票的座位号 int tpcs;/记录目前退票次数int mcps;/记录卖出去的票数(包括退票)LinkList la;/已订票链表Tickets;/构造结构类型(火车票) typedef structstruct Tickets *elem;/存储空间的基址int length;int listsize;/当前分配的存储容量(以sizeof(Tickets)为单位)SqList;/构造顺序表4.2主要实现思路1

5、、火车站的火车票采用顺序表表示。每趟火车出售的票用链表表示。2、查询:输入终点站信息,输出该趟火车的票价,日期,余票数等信息; 订票:输入终点站信息,确认有该趟车之后,输入该趟车的基本信息,之后输入购票数,系统查询是否有余票,确认之后,输入个人基本信息;系统查询是否有退票,若有退票则,先售出退票。插入新的结点。退票:输入终点站的信息,输入个人信息,1、若退出所有票,则删除该结点,若,只退部分票,则更改该结点的购票信息。退出:退出系统;【程序演示】输入2 订票,购买到温州的火车票十张,姓名:a;证件号:a;退票:输入3退票,输入终点站温州,姓名:a;证件号:a;退票之后,继续订票3张【实现代码】

6、int InitList_L(LinkList *h)/初始化带头结点的单链表 *h = (LinkList)malloc(sizeof(LNode);/生成头结点if(!h)printf(初始化链表错误!n);return 0; (*h) - next = NULL;return 1;int Create_Sq(SqList *L)/初始化并创建顺序表 L-elem=(Tickets *)malloc(ListInitSize*sizeof(Tickets);if(!L-elem) printf(存储分配失败!);/ 存储分配失败 return 0; L-length=5;/赋值 L-lis

7、tsize=ListInitSize;int j;for(j = 0; j length; j+) L-elemj.mcps=0;/初始化,记录买出去的票 L-elemj.tpcs=0;/记录退票数 int i;for(i = 0;i length; i+) InitList_L(&L-elemi.la); L-elem0.endname=北京; /终点站名 L-elem0.hnum=G2378;/车次名 L-elem0.day=1;/日期 L-elem0.fnum=346;/票价 L-elem0.discut=0.5; L-elem0.wholenum=L-elem0.lastnum=10;

8、 L-elem1.endname=温州; L-elem1.hnum=K351; L-elem1.day=2; L-elem1.fnum=254; L-elem1.discut=0.5; L-elem1.wholenum=L-elem1.lastnum=10; L-elem2.endname=合肥; L-elem2.hnum=G782B; L-elem2.day=3; L-elem2.fnum=224; L-elem2.discut=0.5; L-elem2.wholenum=L-elem2.lastnum=10; L-elem3.endname=武汉; L-elem3.hnum=D2903;

9、L-elem3.day=4; L-elem3.fnum=200; L-elem3.discut=0.5; L-elem3.wholenum=L-elem3.lastnum=10; L-elem4.endname=厦门; L-elem4.hnum=T112; L-elem4.day=5; L-elem4.fnum=450; L-elem4.discut=0.5; L-elem4.wholenum=L-elem4.lastnum=10; return 1;/创建顺序表void Demand(SqList L) int n1; do char endstop100; printf(*查票窗口*n);

10、 printf(请输入终点站名:n);do gets(endstop); while(!endstop0);int i; for(i=0;i%sn,endstop); printf(tt车次:%sn,L.elemi.hnum); printf(tt日期:%d日n,L.elemi.day); printf(tt票价:%dn,L.elemi.fnum); printf(tt折扣价(学生/军人等5折):%fn,L.elemi.fnum*L.elemi.discut); printf(tt总票量:%dn,L.elemi.wholenum); printf(tt余票量:%dn,L.elemi.lastn

11、um); break; if(i=L.length-1) printf(没有找到%s的车票!n,endstop); printf(1.返回主菜单;2.继续n); scanf(%d,&n1); while(n1=2);void GetTicket(SqList *L)/订票 int n2=2,zhekou;/n2=1,继续订票;n2=2,返回主菜单;n2=0,确定,即订票成功 int num; /订票数 float money; /存储应付的总票额 char endstop100; /记录终点站名 char name100; char ID100; /记录证件号 do printf(*订票窗口*

12、n); printf(终点站名:); do gets(endstop); while(!endstop0);int i = 0;for(i=0;ilength;i+) if(strcmp(L-elemi.endname,endstop)=0) /有该趟火车 printf(tt杭州-%sn,endstop); printf(tt车次:%sn,L-elemi.hnum); printf(tt日期:%d日n,L-elemi.day); printf(tt票价:%dn,L-elemi.fnum); printf(tt折扣价(学生/军人等5折):%fn,L-elemi.fnum*L-elemi.discut); printf(tt总票量:%dn,L-elemi.wholenum); printf(tt余票量:%dn,L-elemi.lastnum); printf(请输入订票数:);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号