航空客运订票系统课程设计(数据结构)

  • 格式:doc
  • 大小:665.00 KB
  • 文档页数:36

武汉长江工商学院计算机技术系

1 XXXXXXXXX

计算机技术系

项目名称: 航空客运订票系统

学生姓名: XX

学 号:

班 级: 10801

指导教师:

年 月 日武汉长江工商学院计算机技术系

2

目 录

1.系统需求分析 .............................................................................................................................. 3

1.1 问题分析 ............................................................................................................................... 3

1.2 任务意义 ............................................................................................................................... 3

2. 数据结构设计及用法说明 ...................................................................................................... 4

3. 详细设计和编码 ...................................................................................................................... 5

3.1.主菜单................................................................................................................................... 5

3.2.录入航空信息 ....................................................................................................................... 5

3.3 输出航空信息 ....................................................................................................................... 6

3.4 订票 ....................................................................................................................................... 7

3.5 退票 ....................................................................................................................................... 7

4. 实验结果 .................................................................................................................................... 9

4.1菜单函数的功能测试 ............................................................................................................ 9

4.2录入函数的功能测试 ............................................................................................................ 9

4.3查询航班函数的功能测试 .................................................................................................. 11

4.4订票功能地测试 .................................................................................................................. 12

致谢 ................................................................................................................................................ 17

参考文献 ........................................................................................................................................ 18

附录:源程序清单 ........................................................................................................................ 19

武汉长江工商学院计算机技术系

3 1.系统需求分析

1.1 问题分析

这次的课程设计是设计一个航空系统。由于存储的数量较大且不固定,因此选择用链表来保存基本信息:终点站名、航班号、飞机号、飞行时间、乘员定额、余票量、已经订票的客户名单(包括姓名、订票量)、等候替补的客户名单(包括姓名、所需票量)等等。由于在航线这个主链表上,每个航班上的已经订票名单这个链表和等候替补的名单这个链表队列,所以建立一个十字交叉链表,在纵行上开辟一个链表存储所有航班的基本信息,再在各个航班节点横向展开一个链表和一个链表队列,展开的链表存储已经订票的客户名单,展开的链表队列存储等候替补的客户名单。同时,由于预约人数无法预计,队列也应以链表作存储结构。系统主要实现的操作和功能是:添加航线、查询航线、订票功能、退票功能。要实现这些功能,首先要使程序能实现查找功能,在查找出到有效信息的前提之下,通过链表的赋值,更新信息和删除退票人信息,满足客户的要求。

1.2 任务意义

飞机场每天要接受大量的订票退票服务,对于这些数量巨大的数据,需要一个专门的软件来进行管理和操作。软件至少需要具备的基本功能包括:接受订票,处理退票,查询航班信息等等。面对这些实际问题,航空客运系统的制作无疑要全面的考察一个学生的知识及能力。在全面理解客户的需求下面,来进行设计出最能够满足客户的程序出来,并且能够根据不同的要求来将其进行改动,最能考察到对代码活用的程度。

武汉长江工商学院计算机技术系

4 2. 数据结构设计及用法说明

数据结构的存储结构,中间纵列,为各个航班的基本信息,用一链表存储,其中一个节点为一个航班,其中包括终点站名、航班号、飞机号、飞行时间、乘员定额、余票量、已经订票的客户名单(包括姓名、订票量)、等候替补的客户名单(包括姓名、所需票量)等等。横向是各个航班的情况,即从该指定的航班中用链表的形式横向存储这个航班的基本信息,纵向为已经订票了的客户信息和药等候替补的客户的信息,其中包括客户姓名和相应的需票量。相应的存储结构如下

struct Passenger

{

char name[20];

int bnum; //bnum记录某人买的票数

struct Passenger *next;

};

typedef struct Air //记录飞机信息

{

int ticket; //飞机票数

char des[20]; //des记录飞机的终点

char flight[8]; //flight记录航班号

int num; //记录飞机号

Passenger *wait;

Passenger *book;

Time time;

struct Air *next;

}AirPlane; 武汉长江工商学院计算机技术系

5

3. 详细设计和编码

3.1.主菜单

进入主菜单,必须先录入航班信息,客户可以根据自己需要选择,选择自己想要的航班,然后进行一系列自己选择的操作,具体菜单流程图如下所示

图3-1主菜单功能模块图

3.2.录入航空信息

录入航空信息包括终点站名、航班号、飞机号、飞行时间、乘员定额,根据用户的需要选择航班,输出航班信息,如果可以再进行订票操作,录入航空信息的流程图如下

图3-2录入航空信息流程图

航空系统

录入信息 查询信息 订票 退票 武汉长江工商学院计算机技术系

6 3.3 输出航空信息

客户可以根据自己的需要选择是按目的地查询还是按航班查询,如果按航班查询,必须要知道航班号,如果按目的地查询,只需输入终点站,如果一个终点站有多个航班,客户可以根据自己的需要选择一个航班进行操作,具体流程图如下。

图3-3按航班输出信息的流程图

武汉长江工商学院计算机技术系

7 图3-4按目的输出航空信息的流程图

3.4 订票

在客户订票前需要先查询航班是否存在,所以在订票的模块中会要求客户输入航班信息,再调用航班查询的函数,查询是否存在这个航班,如果存在这个航班,则客户可以订票,客户在订票的时候,如果所需票量超过剩余票数,则会提示客户是否需要排队候票,如果不排队候票,则选择要么重新输入所需票量,要么退出订票。订票流程图如下

图3-5订票流程图

3.5 退票

客户在退票操作时,也是要先输入是否存在那个航班,如果存在,就查询这个航班是否存在这个客户,如果不存在,就退票失败,如果存在,则可以退票,退票后,再查看是否满足候票数,如果满足则把票补给候票人,如果不满足,就继续排队候补。退票流程图如下