2022年2022年火车票管理系统 .pdf
《2022年2022年火车票管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年火车票管理系统 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程设计火车票售票系统的设计指导老师:吴小平赵俊计科 2 班16 号2008-4-16 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 数据结构课程设计火车售票系统1 一 运行环境操作系统 Windows2000、XP 运行工具VC+6.0 二算法设计的思想. 所涉及的信息有:终点站信息(终点站名、车次号、乘车日期、乘客定额、余票量、票价、折扣信息等) ,已订票的客户名单(包括姓名、车次、证件编号、订票量). 作为示意系
2、统,全部数据可以只放在内存中;. 系统能实现的操作和功能如下:a. 查询:根据旅客提出的终点站名输出下列信息:车次、日期、乘员定额、余票额、票价和折扣信息;b . 订票:根据客户提出的要求(车次号、订票数)查询该车次票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。c. 退票:根据客户提供的情况(日期、车次),为客户办理退票手续;三程序流程图四 算法的设计分析(详细内容)1 . 需求分析(1)此系统可以实现售票、退票、车票剩余情况查询等功能。(2)每张车票包含车次、座位信息。在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、
3、座位情况。(3)退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票。(4)演示程序以用户和计算机的对话方式进行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入程序中规定的运算命令;相应的输入数据(滤去输入中的非法字符)和运算结果显示在后。(5)由订票系统的主要功能使程序的命令包括:1) 查询; 2)订票; 3)退票4)退出订票系统分析细化:a. 查询:根据旅客提出的终点站名输出下列信息:车次号、日期、余票额、票价和折扣信输入退票信息退票结果查询订票退票订票名单查询主 菜 单票不足订票成功输入q r 重新查询选择终点查询结果输入订票信息订票结果输入客户信息输入车次错误s 名师
4、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 数据结构课程设计火车售票系统2 息;b . 订票:根据客户提出的要求(车次、订票数)查询该车次票额情况,若有余票,则为客户办理订票手续,输出座位号,需付款项信息;若已满员或余票额少于订票额,则需重新询问客户要求。c . 退票:根据客户提供的情况(日期、车次),为客户办理退票手续d. 订票名单:客户订票情况输出客户订票的有关信息,可调用已订票名单链表。2. 概要设计因为每个客户名单或查询
5、名单都包含多个数据域,这样就需要有一个能存储多个数据域的数据类型来存储,因此采用结构类型。由于车次的信息是固定的,可选用顺序表,又因为订票与预约人数无法预计,可选用链表存储信息。a . 抽象数据类型顺序表的定义如下:ADT SqList 数据对象: D=ai| ai结构类型, i=1,2,3,n,n=0 数据关系: R1=|ai-1,aiD,i=1,2,3,n基本操作:InitList_Sq(&L); 操作结果:创建空的顺序表。CreatList_Sq(&L) 操作结果:建立顺序表。ADT SqList b. 抽象数据类型单链表的定义如下:ADT LinkList 数据对象: D=ai| ai
6、结构类型, i=1,2,3,n,n=0 数据关系: R1=|ai-1,aiD,i=1,2,3,n基本操作:InitList_L(&L); 操作结果:创建空的顺序表。ADT LinkList c. 本程序主要包括四个模块:1). 主程序模块:void main() 初始化;调用 menu() 模块; 2) 查询模块:实现查询功能;3) 订票模块:实现订票功能;4) 退票模块:实现退票功能;5) 帮助模块:简要的系统帮助文档名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9
7、页 - - - - - - - - - 数据结构课程设计火车售票系统3 3. 详细设计(1). 顺序表单元模块:a.顺序表结点类型:#define LIST_INIT_SIZE 1000 #define LISTINCREMENT 10 struct ElemType char *endname; /终点站名char *hnum; /车次名char *fnum; /票价float discut; int day; /日期int wholenum; /总票数int lastnum; /余票量LinkList la; /已订票链表LinkList lb; /排队名单链表;/结构类型定义typede
8、f struct struct ElemType *elem; int len; int listsize; SqList; b.顺序表基本操作设定为:Status InitList_Sq(SqList &L) ;/ 初始化顺序表,分配存储空间SqList Create_Sq(SqList &L);/ 创建顺序表为常量类型c. 单链表结点类型:typedef struct Lnode struct date char *name; /订票姓名int dnum; /订票数量主程序模块查询模块 (两个分支 )订票模块退票模块帮助文档名师资料总结 - - -精品资料欢迎下载 - - - - - -
9、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 数据结构课程设计火车售票系统4 int dj; /证件编号float pay;/付费data; /数据域struct LNode *next; /指针域int n1; /座位号计数LNode,*LinkList; /构造单链表d. 单链表基本操作设定为:int InitList_L(LinkList &L);/ 初始化单链表,使L=NULL e. 其中部分操作的伪码算法如下:int InitList_L(LinkList &L) L=new LN
10、ode; L-n1=1; L-next=NULL;return OK; Status InitList_Sq(SqList &L) / 构造一个空的线性表L。L.elem = new ElemTypeLIST_INIT_SIZE; if (!L.elem) return OVERFLOW; / 存储分配失败L.len = 0; / 长度为 0 L.listsize = LIST_INIT_SIZE; / 初始存储容量return OK; / InitList_Sq SqList Create_Sq(SqList &L) L.len=16; for(int i=0;iL.len;i+)L.ele
11、mi=Tabi; InitList_L(L.elemi.la);InitList_L(L.elemi.lb); return L; / 创建顺序表(2). 主程序模块和其它的伪码算法void main() /主函数SqList L; InitList_Sq(L); Create_Sq(L);/建立顺序表调用菜单函数menu(L); void goback(SqList h) /返回函数 / 根据按键不同调用不同函数 void als(char A,SqList h) /终点站信息输出函数 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年火车票管理系统 2022 火车票 管理 系统
限制150内