数据结构课程设计《飞机订票系统》

上传人:pu****.1 文档编号:481154919 上传时间:2022-09-05 格式:DOC 页数:34 大小:672.50KB
返回 下载 相关 举报
数据结构课程设计《飞机订票系统》_第1页
第1页 / 共34页
数据结构课程设计《飞机订票系统》_第2页
第2页 / 共34页
数据结构课程设计《飞机订票系统》_第3页
第3页 / 共34页
数据结构课程设计《飞机订票系统》_第4页
第4页 / 共34页
数据结构课程设计《飞机订票系统》_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《数据结构课程设计《飞机订票系统》》由会员分享,可在线阅读,更多相关《数据结构课程设计《飞机订票系统》(34页珍藏版)》请在金锄头文库上搜索。

1、软件工程专业14级设计题目:飞机订票系统设计与实现班 级:姓 名:2016一、设计任务与要求 1总体目标与任务要求 1.题目选择与目的意义 1.所选题目的主要工作 1二、需求分析 2用户需求分析 2功能需求分析 2系统需求分析 2三、概要设计 3各模块的算法设计说明 3存储结构设计说明 8四、详细设计 10五、源代码 11六、运行结果分析 21七、收获与体会 28八、主要参考资料 28、设计任务与要求总体目标与任务要求 制作一个订票系统,通过此系统可以实现如下功能:1)录入可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体 数据自定)。2)查询 可以查询某个航线的情况(如,输入航班

2、号,查询起降时间,起飞抵达 城市,航班票价,票价折扣,确定航班是否满仓)可以输入起飞抵达城市,查询 飞机航班情况。3)订票 可以订票,如果该航班已经无票,可以提供相关可选择的航班(订票情 况可以存在一个数据文件中,结构自己设定 )。4)退票 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及 航班情况,订单要有编号。5)修改航班信息 当航班信息改变可以修改航班数据文件。根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完 成功能。题目选择与目的意义 选择这个题目的原因是,订票系统在现实生活中应用很广泛,通过这个系统 可以使订票、退票等变得简便。与传统的人工用纸、笔来记

3、录办理订票、退票等 相比,使用这个系统也会增加工作效率。 这个题目做出来的系统还是比较实用的, 所以我选择了订票系统这个题目。完成此系统,需要综合运用数据结构课程中学到的几种典型数据结构,以及程 序设计语言( C 语言),自行实现一个较为完整的应用系统的设计与开发。通过课程 设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握 应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应 用。学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。所选题目的主要工作 这个题目的主要工作是使订票系统可以录入航班情况,查询某个航线的情 况、办理订票、办理

4、退票、修改航班信息、查询订票信息等。需求分析用户需求分析用户使用此程序所要完成的工作主要为:查询所有航线信息、查看已订票客 户信息、查询航线、办理订票业务、办理退票业务。通过此系统可以方便的进行 上述工作。每条航线所涉及的信息有:终点站名、航班号、飞行时间、票价、乘员定额、 余票量。已订票的客户名单信息包括姓名、订票量、舱位等级(1,2或3)。等候替补的客户名单信息包括姓名、所需票量。查询航线功能可以根据旅客提出的终点站名输出航班号、飞行时间、票价、乘 员定额、余票量。订票业务功能根据客户提出的要求 (航班号、订票数额)查询该航班票额情况, 若尚有余票,则为客户办理订票手续,输出座位号;若已满

5、员或余票额少于定票额, 则需重新询问客户要求。若需要,可登记排队候补购票。退票业务功能根据客户提供的情况(航班号、姓名)为客户办理退票手续,然 后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他 的要求,贝U为他办理订票手续,否则依次询问其他排队候补的客户。功能需求分析功能需求分析模块图如图所示。开始图功能模块图系统需求分析开发环境:Windows 7系统使用软件:编写实验报告:Microsoft Office Word希9 作 程序:Microsoft Visual C+三、概要设计各模块的算法设计说明浏览航线1 浏览航线信息功能,调用display函数进行输出。如图所

6、示信息流程图:图浏览航线信息流程图:其中display函数的流程图如图 display函数流程图:图display函数流程图2浏览已订票客户信息功能,按顺序输出客户信息链表中的信息。流程图如 图 浏览已订票客户信息功能流程图:3查询航线功能,根据客户提出的终点站名输出航线信息。流程图如图 询航线流程图:4办理订票业务功能,根据客户提出的航线信息等进行订票。流程图如图 办理订票业务功能流程图:LJAH1I辭订穀1 |对不起 您鬍入的已邂过 乘贞定额输出砲您下 次敵订购gi甜息每并嚣岀堆Wr图办理订票业务功能流程图5办理退票业务功能,根据客户提出的航线信息等进行退票。流程图如图 办理退票业务功能流

7、程图:6主函数流程图如图 主函数流程图:开始NNYYs=45=&结束returntkt 01st ()存储结构设计说明typedef struct wat_roschar n ame10;int req_amt;struct wat_ros *n ext;qno de,*qptr;?输出播欢迎使用本系in.再J&l *111(0);图主函数流程图/*单链队列存储等候替补的客户信息*/*姓名*/*订票量*/初始化,输出菓 单,请选择break,break;ordersearch0break;typedef struct pqueue qptr front;qptr rear;/* 等候替补的客户

8、名单 */linkqueue;上述单链队列用来存储排队等候的客户名单,这样可以通过队先进先出的特 点来进行操作。先排队的客户可以先订票成功。typedef struct ord_roschar name10;int ord_amt;int grade;struct ord_ros *next;/* 乘员名单 */* 客户姓名 */* 订票量 */* 舱位等级 */linklist;上述单链表用来存储乘员的信息,包括姓名、订票量、舱位等级。struct airline/*航线信息 */char ter_name10;char air_num10;char time10;char pri7; in

9、t tkt_amt;int tkt_sur; linklist *order; linkqueue wait; 队尾的指针 */* 抵达城市 */* 航班号 */* 飞机时间 */* 票价 */* 乘员定额 */* 余票量 */* 乘员名单域,指向乘员名单链表的头指针 */* 等候替补的客户名单域, 分别指向排队等候名单队头lineinfo;这个结构体存储了航线信息,包括抵达城市、航班号、飞行时间、票价、乘 员定额、余票量等。#define MAXSIZE 5 struct airline airMAXSIZE=/* 定义航线数量,可修改 */* 初始化航线信息 */beijing,1,120

10、0,860,30,30,shanghai,2,1000,770,20,20,london,3,1330,960,10,10,harbin,4,1700,760,50,50,dalian,5,1400,550,40,40;通过修改全局变量 MAXSIZE的数值即可更改航线数。 在struct airline airMAXSIZE 中可以修改、增加、删除航线信息。航线信息内容依次为抵达城市、航班号、飞 行时间、票价、乘员定额、余票量(飞行时间 1200 即 12:00)。四、详细设计1. 查看航线信息编写void list()函数来查看全部航线信息。 其中调用了 void display(stru

11、ct airline *info) 函数,该函数的功能是打印每条航线的基本信息。这样即可按顺序打印出 struct airline 链表中存储的全部航线信息。2. 查看已订票客户信息编写 void prtlink() 函数来查看已订票客户信息。 这个函数中需要输入要查询的 航线,通过find()函数来寻找这个航线然后输出该航线乘员域的乘员信息。3. 查询航线编写void search()函数来实现查询航线的功能。用户输入抵达城市名,该函数会在航线信息链表中进行查询。如果有该城市,则会输出此航线的信息。4. 办理订票业务编写 void order() 函数来实现订票功能。首先提示用户输入航班号,

12、然后调用 find() 函数来查找此航班, 如果该航班存在, 则会提示用户输入信息并调用 linklist *insertlink(linklist *head,int amount,char name,int grade) 在订票乘员名单域中添 加客户信息。如果余票不足,则会提示用户进行排队,如果排队,则会调用提示 用户输入信息并调用 linkqueue appendqueue(linkqueue q,char name,int amount) 在排队等候乘员名单域中添加客户信息。5. 办理退票业务编写 void return_tkt() 函数来实现退票功能。首先提示用户输入航班号,然后 调

13、用find()函数来查找此航班,如果该航班存在,则会提示用户输入信息,信息 正确则会提示退票成功。此时将乘员信息中的该乘员信息删除,然后检查替补乘 员链表中的信息,如果其订票量可以得到满足,则会将其插入到订票客户名单链 表中,提示他订票成功。6. 退出系统主函数中无限循环输出菜单for(;),用户在菜单页面下输入6回车即exit(O),即可退出系统。五、源代码#include #include #include #include #include #define MAXSIZE 5/* 定义航线数量,可修改 */typedef struct wat_roschar name10; int re

14、q_amt;/* 单链队列存储等候替补的客户信息 */* 姓名 */* 订票量 */struct wat_ros *next;qnode,*qptr; typedef struct pqueue qptr front;qptr rear;/* 等候替补的客户名单 */* 等候替补客户名单域的队头指针 */ /* 等候替补客户名单域的队尾指针 */linkqueue;typedef struct ord_ros /* 乘员名单 */char name10; /* 客户姓名 */ int ord_amt; /* 订票量 */ int grade; /* 舱位等级 */ struct ord_ros *next;linklist;struct airlinechar ter_name

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

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