- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
安徽建筑工业学院
课 程 设 计 报 告
课程名称: 数据结构与算法课程设计
题 目: 订票系统
院 系: 数理系
专 业: 信息与计算数学
班 级: 一班
学 号: 12207210148
姓 名: 蔡会丽
时 间: 2013.6
目 录
1问题描述 1
2基本功能要求 1
3概要设计 1
3.1程序设计思路 2
3.2存储结构设计 2
3.3主要算法设计 2
3.3.1链表数据类型的定义 3
3.3.2本程序的结构 3
3.4测试用例设计 6
4详细设计——原程序代码 6
5调试分析 20
6程序说明 20
7经验和体会 20
7.1经验 20
7.2体会 21
8程序结果 21
9附 录 27
订票系统
1问题描述
设计一个模拟飞机订票系统,通过此系统可以录入、查询、修改航班情况,完成用户订票和退票功能,并且可以保存客户和航班的资料。
2基本功能要求
设计航班信息,订票信息的存储结构,设计程序完成如下功能:
1.录入航班信息。
可以录入航班情况:航班号,起飞、抵达城市,座位总数,剩余座位数。(数据可以存储在一个数据文件txt中,采用线性表的链式结构、具体数据用户输入)
2.加载航班与客户信息。
可以自动加载保存在txt文件中的航班与客户的信息。
查询航班信息。
可以输入航班号,查询该航线的情况(起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票。
客户资料包括:姓名,证件号,订票数量及航班情况,座位号。订单要有订单号。用户输入要订票的航班号,如果该航班有余票,则订票成功,并记录客户的信息。
如果该航班已经无票,则订票失败。输出所有有余票的航班信息,提供用户可以选择的航班。
退票
删除退票用户的订票信息,相应的航班的余票数量增加1。
修改航班信息
用户输入要修改的航班号,和要修改的内容,修改该航班的相应信息。
保存数据文件。
把当前的航班信息,和用户信息分别保存在txt文件中。
输出所有客户信息。
按一定的格式输出用户的姓名,证件号码,订票数量及航班情况,座位号。
9.输出所有航班信息。
按一定的格式输出所有的航班的航班号,起飞抵达城市,座位总数,剩余座位数。
退出系统
3概要设计
3.1程序设计说明图.
主菜单 1 2 3 4 5 6 7 8 9 0 录入航班的信息 加载航班与客户信息。 查询航班信息 订票 退票 修改航班信 息 保存数据文 件 输出所有客户信息 输出所有航班信息 退出
3.2程序设计思路.
对于航班和用户分别定义不同的数据结构,并且采用线性表的链式结构进行存储。
所用到的算法包括:链表的创建 ,增加,遍历,插入和删除。
3.3存储结构设计
由于航空公司的航班保持基本不变,所以应该采用顺序存储结构将各条航线的基本情况登陆在一张线性表上,按照终点站名有序排列。
在客票预定这一环节里将出现两个客户名单:已定票客户名单和需定票客户名单。两客户名单可分别由线性表和队列实现。为查找方便,已定票客户的线性表应按姓名有序,同时为了插入和删除方便,,应以链表作为存储结构。由于无法知道预约的人数,队列也应该以链表作为存储结构。
我们需要做的是建立一个可以插入和删除节点的链表,并能检索这个链表,在必要的时候将链表的内容保存到文件中。
3.3主要算法设计
3.3.1链表数据类型的定义:
因为采用的逻辑结构是线性结构,存储结构是链式结构。
//航线结构体
typedef struct airline
{
char line_num[10];//航班号
char start_place[20];//起飞地
char end_place[20];//目的地
int total;//座位总数
int left;//剩余座位
struct airline *next;//下一个节点
}airline;
//航线结构体的
文档评论(0)