1、数据结构课程设计报告 1.航空订票系统航空订票系统 1需求分析 试设计一个航空订票系统,基本要求如下: 每条航班所涉及的信息有:航班号,航班机型,起飞机场,降落机场,日期(星期几) , 起飞时间,降落时间,飞行时长,价格,乘员定额,余票量,订定票的客户名单(包括姓名, 订票量,舱位等级(头等舱、公务舱、经济仓)以及等候替补的客户名单(包括姓名、所需 数量) 。采用链式存储结构。 系统能实现的操作和功能如下: (1)航班信息管理。 (2)查询航线,按以下几种方式查询: 按航班号查询; 按起点站查询; 按终点站查询; 按日期查询; 每种查询方式中,查询后输出如下信息:航班号,航班机型,起飞机场,降
2、落机场, 日期(星期几) ,起飞时间,降落时间,飞行时长,价格,余票量。 (3)承办订票业务:根据客户提出的要求(航班号,订票数额)查询该航班票额情况,若 有余票,则为客户办理订票手续,输出座位号;若已满员或余票少于订票额,则需重新询问 客户要求。若需要,可登记排队候补。 (4)承办退票业务:根据客户提出的情况(日期,航班号),为客户办理退票手续,然后 查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则 为他办理订票手续,否则依次询问其它排队候补的客户。 2设计 2.1 设计思想设计思想 (1)数据结构设计 typedef struct keHu/客 户信息 ch
3、ar nameofKeHu20;/客户名字 int numofPiao;/客 户需要票的数量 int type;/仓位等级1:头等 舱2:公务舱3:经济舱 struct keHu* next;/下个客户 ; typedef struct hangBan int numofHangBan;/航班号 char typeofHB20;/航班机型 char startFly20;/起飞 机场 char endFly20;/降 落机场 char DataofHB20;/日期格式为(20120312 星期 一) char startTime20;/起飞 时间 char endTime20;/到达时间 fl
4、oat flyTime;/飞行时长 float prise;/价格 int largeNum;/成员定额 int leaveNum;/余票数量 keHu *custemer;/乘客信息名单 keHu *orderofKeHu;/替补客户 ; typedef struct Node hangBan *exam;/航班信?息 int numofN;/航班数量 struct Node *next; ; (2)算法设计 总体设计: 在 Fly.h 文件中设计舱位的信息处理以及订票退票和对舱位信息的管理方面的功能 然后在 main,h 中设计用户界面功能部分。 相应的处理函数为 FLY .H void
5、InitiateKeHu(keHu *head);客户信息的初始化; void InitiateHangBan(hangBan *head);航班信息的初始化 void InitiateNode(Node *head) 机舱信息的初始化; void hangBanInsert(Node *head,int numHB,char typeHB,char startF,char endF,char startT,char endT,char Data,float FT,float prise,int LM)航班插 入操作。 int hangbanDelete(Node *head,int N)航班
6、删除功能; void searchforNumofHB(Node *head,int N)按舱号查询 void searchforStartF(Node *head,char sartF)按起始站查询 void searchforEndF(Node *head,char endF)按终点站查询 void searchforData(Node *head,char Data)按日期查询 void insertKeHu(keHu *head,char name,int sum)/插入客户信息 int deleteKeHu(keHu *head,char name,int sum)删除客户信息 inline void popKeHu(keHu *head,keHu *pop)取第一个排队的客户 void popDKeHu(keHu *head)删除