航空订票系统报告

更新时间:2023-10-22 05:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

一、案例描述(一级标题标题四号黑体,段前断后0.5行) ...................................... - 1 -

1、总体描述(二级标题小四号宋体加粗) ............................................................ - 1 - 2、模块描述 ................................................................................................................ - 1 - 二、设计思路 ...................................................................................................................... - 2 - 三、程序设计 ...................................................................................................................... - 3 -

1、数据结构描述 ........................................................................................................ - 3 - 2、主函数及其流程图 ................................................................................................ - 4 - 3、源程序 .................................................................................................................... - 5 - 四、调试与分析 ................................................................................................................ - 14 -

1开始运行程序 ......................................................................................................... - 14 - 2 增加信息 ................................................................................................................ - 14 -

一、案例描述

1、总体描述

本系统可以实现航空运订票的主要业务活动。

(1) 航线管理。每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行

周日(星期几)、成员定额、余票量。

(2) 客户管理。有关订票的客户信息(包括姓名、订票量、仓位等级)以及等

候替补的客户名单(包括姓名、所需要票量)

(3) 系统实现的主要操作和功能。系统实现的主要操作和功能如下: ① 查询航线。根据旅客提出的要求(航班号、飞机号、飞行日期、余票量) ② 承办订票业务。根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号:若已满或者余票少于订票额,则需要重新询问客户要求;若需要,可以等待排队候补。 ③ 承办退票业务。根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否人排队候补,首先询问排在第一的客户,若所退票额能满足该客户的要求,则为其办理订票手续,否则一次询问其他排队候补的客户。 2、模块描述

1)登录模块:用户输入用户名和密码,系统对其验证,根据不同角色调用相应的模块。

管理员模块:

1)添加航线模块:系统管理员添加航线的基本信息。

2)查询航线信息:根据航班号和终点站等信息查找航线,若找到该航线,显示出该航线的信息,若无该航线,提示输入错误并返回主菜单。

3)办理退票业务:根据客户提供的账号和姓名在所有乘客信息表中查找该航线,若无该航线提示输入错误并返回主菜单;若查找到该航线,根据客户提出的信息开始退票。根据客户输入的姓名在订票客户的名单域中查询,客户姓名存在则退票成功。退票成功后,根据等待补票的队列中的客户的信息判断是否满足客户要求,若满足则将该客户的信息插入到订票客户信息的单链表中并显示该客户补票成功;如果不满足则在该队列中继续查找,直到查询全部客户信息后结束查找。

4)查看已订票客户信息:管理员输入航班号查看根据客户提供的航班号在所有航线中查找该航线,若无该航线提示输入错误并退出;若查找到该航线,显示出在订票客户单链表中存储的客户信息并显示出来。

5) 查看排队等候订票信息:管理员可以查看在等候订票的用户信息。 6)修改密码:管理员可以修改自己的密码。 6)退出系统

用户模块:

- 1 -

8)查看航线模块,用户输入航班号或者终点站查看航线信息,若航线不存在给出提示信息;反之输出航线基本信息。

9)订票业务:用户输入航班号或者终点站查找航线,若无该航线提示输入错误并退出;若查找到该航线,根据客户提出的订票数量开始订票,若订票数量大于飞机乘员定额,询问用户是否加入排队等候订票;若订票数量小于余票量,订票成功。

10)修改密码:用户可以修改自己的密码。 11)退出系统

二、设计思路

本程序要求模块化管理,分成菜单函数、输入函数、输出函数、查询函数、排序函数等,控制各个部分从而将程序简单化出来分析。本程序的主要功能是:输入数据:输入各相关数据,例如输入各学校的名称和编号。输出数据:输出相关学校、运动项目的结果。查询信息:查询某个学校或某个运动项目的分数和排名。退出系统:程序编译结束后退出系统。

航空订票系统 管理员 客户 输入数据 显示数据 删除数据 查询航班 设置口令 查询订票 查询预订 退出 查 询航班 预订机票 订票信息 设置口令 退出系统

图 1 航空订票系统功能模块图

- 2 -

三、程序设计

1、数据结构描述

本程序首先定义了三个结构体作为航线、乘客和用户的存储媒介,一是航线结构体,定义了终点站名,航班号,飞机号,飞行周日等;二是乘客结构体,定义了姓名、订票数、舱位等级等;三是用户结构体,定义了账号、密码、用户类型等。定义如下: 航线结构体

//---------航线结构体定义----------------- typedef struct {

char Des_Name[10]; /*终点站名*/ char Flight_No[7]; /*航班号*/ char Plane_No[6]; /*飞机号*/

int Week_Day; /*飞行周日(星期几)*/ int Customer_Amount;/*乘员定额*/ int Free_Amount; /*剩余票数*/

int Price[3]; /*舱位等级的价格*/

//QNode *CustName; /*该航班的已订票乘客名单*/ //LinkQueue ReplName; /*该航班的候补乘客名单*/

}flight_info;

typedef struct _flight {

flight_info info;

struct _flight *next;/*指向下一航线结点*/ }flight,*pflight;

乘客结构体

//-----------乘客信息结构体-------------------------- typedef struct { char Account[20]; //用户账号名,唯一 char fno[7];//预订的航班号 char Name[8];//姓名 int Amount;//订票数 char Rank;//舱位等级 //struct customer *next; }customer;

- 3 -

//以下为链表队列

typedef customer QElemType;

//链式队列的结点类型定义 typedef struct QNode { QElemType data; //数据域 struct QNode *next;//指针域 }QNode,*QueuePtr;

//链式队列 typedef struct { QueuePtr front;//队头指针 QueuePtr rear;//队尾指针 }LinkQueue;

用户结构体

//-----用户信息结构体声明-------------------

//枚举类型,表示用户类型 typedef enum {

admin=1, //管理员 guest=0 //一般客户 }user_role;

typedef struct {

char User_Name[20]; //用户名,唯一 char Pwd[8]; //密码 user_role role; //角色; }user_info;

typedef struct _user {

user_info info1;

struct _user *next; //指向下一结点 }user;

2、主函数及其流程图 说明各函数功能并画出流程图

- 4 -

本文来源:https://www.bwwdw.com/article/id7f.html

Top