航空客运订票系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

航空客运订票系统设计

一、需求分析

1.1 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量)

1.2 作为示意系统,全部数据可以只放在内存中

1.3 系统能实现的操作和功能如下:

1.3.1 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额

1.3.2 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补

1.3.3 承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户

二、概要设计

2.1 存储结构设计

typedef struct Al_Custom *已订票客户*

{

char name[15]; *姓名*

int count; *订票量*

int level; *舱位等级*

Al_Custom *next; *下一节点指针*

}Al_Custom,*Al_CustomLink;

typedef struct Wait_Custom *等候替补的客户*

{

char name[15]; *姓名*

int count; *所需票量*

Wait_Custom *next; *下一节点指针*

}Wait_Custom;

typedef struct Wait_Queue *等待队列*

{

Wait_Custom *front; *队列头指针*

Wait_Custom *rear; *尾指针*

}Wait_Queue;

typedef struct Flight *航线*

{

char terminus[15]; *终点站名*

char flight_no[10]; *航班号*

char plane_no[10]; *飞机号*

int week; *飞行周日*

int count; *乘客定额*

int rest; *余票量*

Al_CustomLink Al_link; *指向成员名单链表的头指针* Wait_Queue wait_queue; *等待替补队列*

}Flight;

2.2 主要算法设计

2.2.1 主程序模块:

void main()

{

初始化;

do{

接受命令;

处理命令;

}while(命令!="退出");

}

2.2.2 查询航线模块——实现查询功能

void findFlight()

{

提示输入要查询航线的终点站名;

如果存在该航线,则输出该航线信息;

否则提示不存在该航线;

}

2.2.3 承办订票业务模块——实现订票功能

void dingpiao()

{

提示输入航班号和订票数;

若不存在该航班号,则提示不存在该航线;

否则{

如果有余票,则办理业务;

否则提示没有足够的余票,询问是否候补;

若是,则排队候补;

}

}

2.2.4 承办退票业务模块——实现退票功能

void tuipiao()

{

提示输入航班号和飞行周日;

确认航班号和飞行周日都存在,并且客户有订票,

则 {执行退票;

为排队候补的客户办理订票业务;

}

否则{

提示有误

}

}

2.3 测试用例设计

2.3.1 航线3条:1001 hp001 shanghai 2 50

1002 hp002 beijing 5 50

1003 hp003 guangzhou 7 50

2.3.2 查询航线:shanghai

2.3.3 承办订票业务:航班号1001 数额30 姓名 luobin 舱位等级2 2.3.4 承办订票业务:航班号1001 数额23 姓名 wangkai 舱位等级3 2.3.5 承办退票业务:姓名luobin 航班号1001 飞行周日2

2.3.6 查询航线:终点站名:shanghai

相关文档
最新文档