1、1 课课 程程 设设 计计 题目题目 飞机订票系统飞机订票系统 院院 系系 * 专专 业业 * 姓姓 名名 * 学学 号号 * 指指 导导 教教 师师 * 2012 年 7 月 2 1. 需求分析 1.1 问题描述 基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开 发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的 查询和修改等基本功能。本课程设计的题目为:飞机订票系统。 1.2 基本要求 1.2.1 输入的形式和输入值的范围 录入航班信息时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要 输入航班票价,票价折扣,值为浮点型(f
2、loat) ;还需要输入航班是否满仓,值为整型(int) ( “1”表示已满仓, “0”表示没有满仓) ;如需要继续录入航班信息,要输入判别信息, 值为整型( “1”表示继续录入航班信息, “0”表示停止录入航班信息) 。 客户订票时,需要输入起飞抵达城市,然后选择航班进行查询,选择航班时需要输入 航班号,值为字符串。 客户退票时,需要输入姓名,证件号进行退票操作,值为字符串。 查询某个航班的情况时,需要输入航班号,值为字符串;在查询某个航线的情况时, 还可以通过输入起飞抵达城市来查询,值为字符串。 查询某个订单时,需要输入订单号,值为整型(int) ;或者需要输入客户姓名和证件 号,值为字符
3、串。 修改航班时,需要输入字符型数据选择进行何种修改操作;增加航班时,需要输入航 班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮 点型(float) ;还需要输入航班是否满仓,值为整型(int) ( “1”表示已满仓, “0”表示没 有满仓) ;如需要继续录入航班信息,要输入判别信息,值为整型( “1”表示继续录入航 班信息, “0”表示停止录入航班信息) ;删除航班时,需要输入要删除的航班的航班号; 修改航班时间时,需要输入要修改的航班的航班号,修改后的航班起飞时间和抵达时间。 1.2.2 输出形式 在所有操作后的输出中都显示操作是否正确以及操作后单链表的内容
4、。其中删除操作 后显示删除的元素的值,查找操作后显示要查找元素的位置。 录入航班情况时,输出显示添加航班信息是否成功。 客户订票时,当客户输入起飞抵达城市后,输出可供客户选择的航班信息;客户选择 了航班后,输入提示信息告知用户订票是否成功。 客户退票时,输出客户退票成功或者无此客户,无法退票。 查询航班时, 输出显示对应的航班信息, 或者输出提示信息告知没有相应的航班信息。 查询订单时, 输出显示对应的订单信息, 或者输出提示信息告知没有相应的订单信息。 修改航班时,输出对应的提示的信息,提示操作是否成功。 3 1.2.3 功能要求 (1)可以录入航班情况,数据存储在一个数据文件中; (2)可
5、以查询某个航线的情况:输入航班号,查询起降时间,起飞抵达城市,航班 票价,票价折扣,确定航班是否满仓;输入起飞抵达城市,查询飞机航班情况; (3)可以订票,订票情况存在一个数据文件中(如果该航班已经无票,提供相关可 选航班) ; (4)可退票并且退票后修改相关数据文件; (5)客户资料:姓名,证件号,订票数量及航班情况,订单要有编号; (6)修改航班信息,当航班信息改变可修改航班数据文件; (7)要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完 成功能。 2. 概要设计 2.1 数据结构 (1)航班的信息:航班的情况存储结构采用单链表,每个元素表示一个航班的情况, 包括航班
6、号、起飞时间、降落时间、起飞城市、抵达城市、航班票价、票价折扣、确定航 班是否满仓和空座数九个数据项: 航班号 起飞 时间 降落 时间 起飞 城市 抵达 城市 航班 是否满仓 空座数 票价 票价 折扣 字符串 字符串 字符串 字符串 字符串 整数 (int) 整数 (int) 浮点数 (float) 浮点数 (float) 单链表如下: 每个结点包括数据域和指针域: C 语言描述如下: typedef struct flightnode char air_num10;/航班号 char start_time15;/起飞时间 char end_time15;/抵达时间 char start_place20;/起飞城市 char end_place20; /降落城市 int left; /空座数 float price; /票价 float price_discount;/票价折扣