机票销售系统(课程设计报告,附心得)

上传人:206****923 文档编号:91487278 上传时间:2019-06-28 格式:DOC 页数:22 大小:725.02KB
返回 下载 相关 举报
机票销售系统(课程设计报告,附心得)_第1页
第1页 / 共22页
机票销售系统(课程设计报告,附心得)_第2页
第2页 / 共22页
机票销售系统(课程设计报告,附心得)_第3页
第3页 / 共22页
机票销售系统(课程设计报告,附心得)_第4页
第4页 / 共22页
机票销售系统(课程设计报告,附心得)_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《机票销售系统(课程设计报告,附心得)》由会员分享,可在线阅读,更多相关《机票销售系统(课程设计报告,附心得)(22页珍藏版)》请在金锄头文库上搜索。

1、中南大学信息科学与工程学院数据结构课程设计报告课题: 专业班级: 学号: 姓名: 指导老师: 完成时间: 一、 设计综述1设计题目航空客运订票系统2问题描述每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。3.需求分析(1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;(2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余

2、票少余订票额,则需重新询问客户要求。若需要,可登记排队候补;(3)承办退票业务:根据客户提出的情况(日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。实现提示:两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为了插入和删除方便,应以链表作为存储结构。由于预约人数无法预计,队列也应以链表作为存储结构。4完成目标通过对课程设计课题的研究,依靠自己的理解与学习,进行分析,设计,调试,记录等过程,深入了解数据结构(C语言)的知识与实践操作,

3、将两者相互结合,融会贯通。二、 程序设计1.概要设计1.1第一个结构体定义了订票客户passenger所需的全部变量;typedef struct passenger char name10;/*姓名*/ int ID20;/身份证号 int password; /密码 int tickets;/*订票量*/ struct passenger *next;qnode,*qptr;1.2第二个结构体用于创建候补客户的存储用循环链表;typedef struct pqueue qptr front; qptr rear;linkqueue;1.3第三个结构图定义了候补客户passenger_wai

4、t所需的全部变量;typedef struct passenger_wait char name10;/*客户姓名*/ int ID20;/身份证号 int tickets_wait;/*订票量*/ char grade;/*舱位等级*/ struct passenger_wait *next;linklist;1.4第四个结构体则定义了每趟航班所需的基本数据,这里可以初始化,但考虑到这是订票系统,于是没有添加新增航班功能。struct airline char ter_name10;/*终点站名 */ char air_num10;/*航班号*/ char plane_num10;/*飞机号

5、*/ char day7;/*飞行周日(星期几)*/ int tkt_amt;/*乘员定额*/ int tkt_sur;/*余票量*/ linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/ linkqueue wait;/*等候替补的客户名单域* /lineinfo;2.订票系统架构:3.程序详细设计本程序包含:1.主函数2.主菜单函数3.航班信息查询函数(目的地查询函数、航班编号查询函数、航班时间查询函数)4.机票信息查询函数(顾客姓名查询、机票编号查询函数、航班编号查询)5.票卖出函数6.退票函数7.航班信息修改函数8.航班、机票信息文件判断建立函数9.航班、机票信

6、息文件保存函数。3.1 主函数(void main())主函数主要是调用其他函数,并把建立的链表头指针附给主菜单函数。首先调用航班、机票信息文件判断建立函数。它首先分别判断在是否存在航班信息文件、机票信息文件。如果不存在,分别生成文件(航班信息文件设为d:a.dat,机票信息文件设为d:b.dat),生成的文件中都已有初始数据。详细数据见3.1初始航班、机票文件内容。如果存在,则不再生成文件,而且不会变动已有的文件。然后它会分别读文件,分别生成航班信息的链表和机票信息链表,并将链表头返回到主函数的变量中。然后主函数调用主菜单函数,同时将两个链表头赋给主菜单函数。main航班信息文件判断生成函数

7、机票信息文件判断生成函数主菜单函数主函数流程图如下:3.2 主菜单函数(void menu(struct flight *f,struct ticket *t)主菜单函数是供用户选择下一步操作(函数),并把下一步需要的两个链表的头赋给该函数。主菜单流程图如下:航班信息查询主菜单函数选择输入ii1且i1且i1且i1且inextp中机票的姓名比较00非0非0输入查询的姓名打印p中机票信息打印“输入有误,重新输入”选择输入ii-1且inextpr中航班编号与输入编号的比较00非0非0打印pr中航班信息输入i选择switch(i)输入顾客信息相关航班信息赋予机票中生成机票编号主菜单函数航班剩余票数减1

8、储存两链表信息123.8 退票函数void return_tkt(struct flight *f,struct ticket *t) 退票函数是完成退票功能。由于在程序中唯一能够确定一张机票的变量为机票编号,所以在退票时候,要求输入要退的机票编号。程序遍历机票链表,搜索该机票,如果不存在,则输出“不存在该机票”;如果存在机票,打印机票信息,在确认退票后会删除该条机票信息,并且在该票对应的航班的剩余票数上加1。然后程序将两链表写入文件中。完成退票后,程序返回主菜单。退票函数流程图(p是struct ticket型指针,赋初值为机票信息链表头)退票函数输入机票编号p!=NULLLp=p-next

9、p中航班编号与输入编号的比较00非0非0打印p中机票信息输入i选择switch(i)删除该机票主菜单函数航班剩余票数加1储存两链表信息124. 源代码清单/王骞 通信1103班 0909111423 航空售票系统 #include #include #include #define MAXSIZE 10 typedef struct passenger_wait char name10;/*姓名*/ char ID20;/身份证号 char phone11; /电话 int tickets_wait;/*订票量*/ struct passenger_wait *next;qnode,*qptr;typedef struct pqueue qptr front;/*等候替补客户名单域的头指针*/ qptr rear;/*等候替补客户名单域的属指针*/linkqueue;typedef struct passenger_ready char name10;/*客户姓名*/ char ID20;/身份证号 char phone11; /电话 int tickets_ready;/*订票量*/ char grade;/*舱位等级*/

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

当前位置:首页 > 中学教育 > 其它中学文档

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