1、 课程设计说明书 专 业: 网络工程 课程名称: 数据结构课程设计 班级: 网络B10 设计题目: 飞机售票系统 设计时间: 2012-2-27 至 2012-3-9 评 语:_ _ _ _ _ 评阅成绩: 评阅教师: - 1 - 一、设计题目与要求一、设计题目与要求 任务:通过此系统可以实现如下功能: 1、录入功能: 可以录入航班信息,如录入航班号,到达城市,起飞时间,飞机票数,票价。 2、定票功能 可以查询航班的各项信息,如可以查询起降时间,起飞抵达城市,航班票价,确定 航班是否满仓,航班号。 3、退票功能 可以订票并且记录下乘客的相关信息如记录下乘客姓名,身份证号码,所订航班的 航班号以
2、及所订的票数。 4、删除功能 可以退票并且记录乘客的相关信息以及退票信息。 5、增加航线功能 可以根据需要由管理员对航班信息进行修改更正。 6、查询功能 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,确定 航班是否满仓) 。 7、修改航线模块功能 当航班信息改变可以修改航班数据文件 二、概要设计二、概要设计 每个模块的算法设计说明如下: (1)录入模块: 查找单链表的链尾,在链尾插入一个“航班信息”的新结点。 (2)订票模块: 查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订 票成功,否则失败。 (3)退票模块: - 2 - 输入要退票的乘客姓名以及证
3、件号码,查找乘客资料的链表中是否有这位乘 客,有则删去此结点,并在空位加上 1,无则退票失败。 (4)删除模块: 确认是否有该航班信息再进行修改,有则在航班信息链表中查找要删除的结 点,进行删除,否则不能删除。 (5)增加航线模块: 查找单链表的链尾,在链尾插入一个“航班信息”的新结点。 (6)查询模块: 提供三种查方式:按航班号、起飞地点和日期查询,1 代表按航班号查询,2 代表按日期查询, 3 代表按起飞抵达地点查询。 0 则表示退出查询。 顺着单链表查找, 如果与航班号(航线)一致,输出相关信息,否则,查询不成功。 (7)修改模块: 确认是否有该航班信息再进行修改,有则在航班信息链表中查
4、找要修改的结 点,进行修改,否则不能修改。 三、算法设计三、算法设计 1.存储结构设计: 开 始 定 票 退 票 删 除 航 班 信 息 修 改 航 线 信 息 浏 览 所 有 航 线 信 息 浏 览 所 有 客 户 信 息 退 出 新 增 航 班 信 息 查 询 航 线 信 息 - 3 - (1) 航班的信息:为了便于查找和修改,航班的情况存储结构采用单链表,每个 元素表示一个航班的情况,包括航班号、起飞日期、起飞时间、每个航班的 机票总数、起飞地点、抵达地点、机票余量。 单链表如下 : 每个结点包括数据域和指针域: C 语言描述如下: typedef struct airticket /建
5、立航班数组结构 int air_num;/航班号 char day50;/起飞日期 char time50;/起飞时间 int count;/每航班的机票总数 char start50;/起飞地点 char ends50;/抵达地点 int left;/机票余量 struct airticket *next;/指针 airticket; (2) 客户的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数 据元素包括姓名、证件号码、航班号和所定机票数四个数据项: 每个结点包括数据域和指针域: C 语言描述如下: typedef struct customer h p3 p3 p3 - 4 - int air_num;/航班号 char IDcard25;/客户身份证号 int ticket_num;/每个客户所订的机票数 char name8; /客户姓名 struct customer *next;/指针 customer; 2.2.详细设计:详细设计: 1建立客户链表插与插入客户数据 2建立航班链表信息 分 配