航空客运订票系统方案Word文档格式.docx

上传人:b****1 文档编号:13604411 上传时间:2022-10-12 格式:DOCX 页数:25 大小:143.48KB
下载 相关 举报
航空客运订票系统方案Word文档格式.docx_第1页
第1页 / 共25页
航空客运订票系统方案Word文档格式.docx_第2页
第2页 / 共25页
航空客运订票系统方案Word文档格式.docx_第3页
第3页 / 共25页
航空客运订票系统方案Word文档格式.docx_第4页
第4页 / 共25页
航空客运订票系统方案Word文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

航空客运订票系统方案Word文档格式.docx

《航空客运订票系统方案Word文档格式.docx》由会员分享,可在线阅读,更多相关《航空客运订票系统方案Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

航空客运订票系统方案Word文档格式.docx

3.6存储结构设计7

4.调试分析7

5.用户使用说明8

6.测试结果10

7.心得体会12

8.附录13

1.需求分析

航空客运订票的业务活动包括:

查询航线、客票预订和办理退票等。

试设讣一个航空客运订票系统,以使上述业务可以借助计算机来完成。

【基本要求】

(1)每条航线所涉及的信息有:

终点站名、航班号、飞机号、飞行周日(星期儿)、乘员定额、余票量、已订票的客户(包括、订票量、舱位等级1,2或3)以及等候替补的客户(包括、所需票量);

(2)系统能实现的操作和功能如下:

1录入:

可以录入航班情况,全部数据可以只放在存中,最好存储在文件中;

2查询航线:

根据旅客提出的终点站名输出下列信息:

航班号、飞机号、星期儿飞行,最近一天航班的日期和余票额;

3承办订票业务:

根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;

若已满员或余票额少于订票额,则需重新询问客户要求。

若需要,可登记排队候补;

4承办退票业务:

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

初始化航班信息如下:

终点站

航班号

飞机号

飞行周日

余票屋

hunan

001

1111111

3

120

shanghai

002

2222222

2

jiangsu

003

3333333

1

通过输入0~5这六个数字选择相应的操作,如:

查询航班,订票,退票等操作;

2.概要设计

两个客户可分别山线性表和队列实现。

为查找方便,已订票客户的线性表应按客户有序,并且,为插入和删除方便,应以链表作存储结构。

由于预约人数无法预计,队列也应以链表作存储结构。

整个系统需汇总各条航线的情况登录在一线性表上,山于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。

每条航线是这表上的一个记录,包含上述8个域、其中乘员域为指向乘员链表的头指针,等候替补的

客户域为分别指向队头和队尾的指针。

注:

由于“航线”可只用一条单链表记录,故釆用全局变量,减少参数的传递。

2.1定义“航线”类型

ADTLairline{

数据对象:

D={aidiW航线链表集,i=l,2,3,n,n>

=0}

数据关系:

Rl={<

ai-1,ai>

ai~l,aiGD,

基本操作:

Lairlinesearch^line()

Lairlinesearch_plane()

Lairlinesearch_date()

Lairlinesearch_addr()

voidboundary()

voidinsert_line()

voidprint_customer(airline*p)

voidbook()

voidwaited(airline*p)

voidRefund()

voidsearch()

voidInitLine()

voidPrintline()

}ADTLairline;

i=l,2,3,n}

//按航班号查找航班〃按飞机号查找航班

//按飞行日期查找航班

//按航班终点查找航班

〃主菜单界面

〃插入新航班

//显示航班客户信息

〃订票系统

//排队订票系统

〃退票系统

//航班查询系统

〃初始化航线信息

〃显示所有航班信息

2.2主函数

voidmain()

{初始化;

do{接受命令;

处理命令(调用相应函数);

}while(“命令”!

二"

退出”);

}

2.3调用关系

3.详细分析

3.1航线和客户的存储结构

客户存储结构体

typedefstmctcustomer

{charname[20];

//

intnum;

〃订票数量

intlevel;

〃舱位等级

customer*next;

〃指向后继乘客

}customer,*Lcustoiner;

航线存储结构体

typedefstructairline

{charter_address[20];

charline_num[10];

〃终点站

〃航班号

charplane_num[10];

intdate;

inttotal;

〃飞机型号

〃飞行日期

〃总人数

intremain;

〃余票数

customer*booked;

〃已定客户信息

customer*wait;

//替补客户信息

airline*next;

〃指向后继航线

}airline,*Lairline;

3.2各个系统模块

(1)浏览航线模块:

定义voidprint_custonier(airline水p),显示成员的信息;

调用voidprintline()函数输出全部航线信息。

(2)浏览订票客户信息模块:

定义订票客户信息的结构体customer,根据输入航班号调用search。

函数寻找客户信息。

(3)査询航线模块:

顺着单链表查找,如果与航班号(航线)一致,输出相关信息,否则,查询不成功。

(4)订票模块:

查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功,否则失败。

(5)退票模块:

输入要退票的乘客,查找乘客资料的链表中是否有这位乘客,有则删去此节点,并在空位上加1,无则退票失败。

如果此时余票额大于等于候补客户的订票数量,那么候补客户订票成功。

3.3算法设计

1.按照航班查找

Lairlinesearch_line()

{

chara[10];

airline*p:

p=L->

next;

P(HPleaseinputthenumberofline:

H);

S(H%sM,a);

for(;

p;

p=p->

next)

if(!

strcmp(a,p->

line_num))break;

returnp;

通过建立节点p实现链表的遍历,利用for循环挨个查找,直到找到为止,再返回找到的这个节点,实现传递。

2.订票系统

{inti;

intflag=O;

air!

ine*p;

customer*cst,*c;

P(nPleasechoosethewayofviewing:

\nH);

〃查询方式选择

P(HThenumberoftheflight====================>

1\n"

);

P(MTheaddressofthefinaldestination================

P(HThedateoftheflight======================:

!

flag;

)//flag为0时一直在循环

{S(”%d”,&

i);

switch⑴〃三种方式查询航班

{case1:

p=search_line();

flag=l;

break;

case2:

p=search_address();

flag=l;

case3:

p=search_date();

default:

P(MWrong!

IPleaseinputagain!

\nu);

输入1,2,3选择操作方式,先进行查询,在通过调用函数实现购票。

3.初始化航线

voidInitLine()〃初始化航线信息

{初始化航线,先建立3条航线方便测试;

4.航班查询

voidsearch()

{inti;

airline*p;

PC'

Pleaseinputthewayofviewingtheflight:

\nH);

P("

Thenumberoftheflight>

l\n"

〃航班号

P(HThenumberoftheplane>

2\nH);

〃飞机

Thedateoftheflight>

3\n”);

〃航班日期

Thefinaladdressoftheflight-一一>

4\n”);

〃航班终点

S(“%d”,&

switch(i)〃按照选择项进行操作

{case1:

p=search」ine();

flag二1;

p=search_plane();

flag=1:

flag=1;

break:

case4:

flag-=1;

default:

P(MWrong,inputagain!

}if(P)

{P(”终点站航班号飞机号飞行周日余票量\n“);

P(n%-9s%9s%13s%1Od%15d\n,\p->

ter_address,p->

line_num,p->

plane_num,p->

date,p->

remain);

P(MBookingthetickets?

(Sure,pleaseinputl;

Elseinputanynumber!

)”);

S(”%cT,&

if(i==l)book();

ElseP(n\n\n\n\nH;

boundary();

ElseP("

Theflightisnotexist!

、(丿_Yr\n\n\n"

}

voidprintline()

{intflag;

airline*p;

P(“终点站航班号飞机号飞行周日余票量\n“);

{P(n%s%s%s%d%d\n,\p->

plane_num,p->

date,p->

P(n\n\n\n\n\nH);

boundary();

通过输入123,4进行选择查询的方式,分别为飞机型号,航班号,目的地位置,飞行日期进行查询。

3.4主函数功能

intflag=l;

boundary();

InitLine();

do

{switch(getchar())

caseT:

pi・irHline();

〃显示所有航线

senrch();

book();

Refimd();

bwak;

case

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1