航班订票系统项目文档Word下载.docx

上传人:b****4 文档编号:16688550 上传时间:2022-11-25 格式:DOCX 页数:23 大小:37.16KB
下载 相关 举报
航班订票系统项目文档Word下载.docx_第1页
第1页 / 共23页
航班订票系统项目文档Word下载.docx_第2页
第2页 / 共23页
航班订票系统项目文档Word下载.docx_第3页
第3页 / 共23页
航班订票系统项目文档Word下载.docx_第4页
第4页 / 共23页
航班订票系统项目文档Word下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

航班订票系统项目文档Word下载.docx

《航班订票系统项目文档Word下载.docx》由会员分享,可在线阅读,更多相关《航班订票系统项目文档Word下载.docx(23页珍藏版)》请在冰豆网上搜索。

航班订票系统项目文档Word下载.docx

该时间精确到分钟。

到港时间:

(Arrival):

用来描述某个航班计划到达目的地机场的时间,到港时间一般代表飞机舱门开启,允许乘客下飞机的时刻,该时间精确到分钟。

出发日期(Date):

用来描述某个航班的出发日期,该日期精确到某一天。

班期(Scheduler):

用来描述某个航班计划在一周之内哪些天有航班,哪些天没有航班。

舱位等级:

(CabinClass):

用来描述航班的不同舱位,一般分为三种:

头等舱(F),公物舱(C),经济舱(Y)。

不同的舱位等级具有不同的机票折扣,详情请参见舱位折扣和机票价格。

**实际情况中航空公司定义的舱位等级可能更复杂,在本项目中为简化业务模型,只对舱位等级作上述三种划分。

乘客类型:

(Passengertype):

用来描述乘坐航班的乘客的类型,一般分为三种:

成人(A)(age>

12),儿童(C)(2<

age<

=12),婴儿(I)(0<

=age<

=2)。

不同的乘客类型具有不同的机票折扣,详情请见乘客折扣。

在这三种乘客类型中,成人和儿童占用座位,而婴儿不占用座位,婴儿票不能单独出售,一张婴儿票必须凭一张成人票售出。

飞机机型:

(AirplaneModel):

用来描述执行某个航班计划的飞机的型号,一般来讲,一个航班计划的各次航班都应该采用同种机型的飞机来执行。

不同的飞机型号有不同的航程及各舱座位数。

详情请参见附录II民航飞机型号一览表。

**实际情况中,各种机型的座位数是不一样的,同一机型还分好几个系列,如B737(波音737)有B737-200、B737-300....B737-900等多个系列,每个系列座位数都不一样。

即使是同一型号、同一系列的机型,所属的航空公司不同,座位数也会不同,因为航空公司在购买飞机时,会根据自己的需要要求厂家采用不同的布局,不同的布局会有不同的头等舱、公务舱、经济舱座位数。

在本项目中为简化业务模型,我们认为同种型号的飞机各舱座位数是固定的。

基准票价:

(FullPrice):

是指某个航班在没有季节折扣时的一张经济舱成人票的价格,该价格作为该航班计划的基准价格,最终机票价格应该在此基础上乘以季节折扣,舱位折扣和乘客类型折扣。

季节折扣:

(SeasonDiscount):

航空公司根据不同季节的客流状况调整的航班的折扣,只有经济舱的成人票才享受季节折扣。

舱位折扣:

(ClassDiscount):

不同舱位在基准价格基础上的价格系数,头等舱为1.5,公务舱为1.3,经济舱为1.0

乘客类型折扣:

(PassengerDiscount):

不同乘客类型在基准票价基础上的价格系数,成人为1.0,儿童为0.5,婴儿为0.1。

机票订单(TicketOrder):

一张成功出票的机票记录,

机票价格:

(TicketPrice):

一张机票的价格,机票价格由以下公式计算:

经济舱成人票票价=基准价格*季节折扣

其他舱位乘客票价=基准价格*舱位折扣*乘客类型折扣

燃油税:

国家统一征收的,由乘坐民航飞机的乘客负担的一种税收,计算办法:

800KM以内(含)的航程,每人税费为60元,800KM以上的航程每人税费为100元,儿童票减半收取,婴儿票免收燃油税。

燃油税的征收不区分乘客舱位。

该项税费捆绑在机票上由航空公司代收代缴。

机场建设费:

国家统一收取的,由乘坐民航飞机的乘客负担的一种收费项目,用于支援民航机场的建设。

收取办法:

乘坐70座以下(含)的小飞机,每人每次收取10元;

乘坐70座以上的大飞机,每人每次收取50元。

儿童和婴儿都不收取机场建设费。

机场建设费的征收不区分乘客舱位。

该项收费捆绑在机票上由航空公司代收代缴。

机票应收款:

一张机票的应收款=机票价格+燃油税+机场建设费。

 

需求分析:

1,系统功能模块(略):

2,系统活动图(略):

3,用例图(略):

客户端用例:

服务器端用例:

概要设计:

1,业务模型:

2,数据库设计

设计出如下数据库表结构:

机场表(AIRPORT):

字段名

描述

类型

约束

备注

airport_code

机场代码

CHAR(3)

PrimaryKey

city

所在城市

VARCHAR(20)

NOTNULL

airport_name

机场名

若为空,则用城市名表示

飞机机型表(AIRPLANE_MODEL):

model

机型

VARCHAR(20)

PRIMARYKEY

max_sail_length

最大航程

NUMBER(6)

first_class_seats

头等舱座位数

NUMBER(3)

business_class_seats

公务舱座位数

economy_class_seats

经济舱座位数

航班计划表(FLIGHT_SCHEDULER):

flight_number

航班号

CHAR(6)

start_date

开始日期

DATE

end_date

结束日期

from_city

出发地机场

REFERENCESairport.airport_code

to_city

目的地机场

departure_time

离港时间

arrival_time

到港时间

airplane

执行机型

REFERENCESairplane_model.model

scheduler

班期

CHAR(7)

sail_length

航程

NUMBER(5)

航班表(FLIGHT):

id

航班编号

NUMBER(8)

CHAR(6)

REFERENCESflight_scheduler.flight_number

departure_date

出发日期

first_class_remain_seats

头等舱剩余座位数

business_class_remain_seats

公务舱剩余座位数

economy_class_remain_seats

经济舱剩余座位数

season_discount

季节折扣

NUMBER(4,2)

NOTNULL

DEFAULT1.0

营业网点表(BRANCH):

网点编号

NUMBER(4)

name

网点名称

VARCHAR(40)

address

地址

VARCHAR(50)

telephone

电话

VARCHAR(15)

province

所在省份

VARCHAR(10)

营业员表(SALES):

营业员编号

NUMBER(6)

branch_id

NUMBER(4)

NOTNULLREFERENCESBRANCH.id

营业员名称

password

登录密码

出票记录表(TICKET_ORDER):

机票编号

NUMBER(10)

flight_id

REFERENCESFLIGHT.id

passenger_name

乘客姓名

certification_number

证件号码

order_date

出票日期

class

舱位等级

CHAR

(1)

NOTNULLCHECKIN(F,C,Y)

passenger_type

乘客类型

NOTNULLCHECKIN(A,C,I)

营业网点编号

REFERENCESBRANCH.id

sales_id

REFERENCESSALES.id

3,DAO接口设计

1)SalesDAO:

packagecom.xie.abs.dao;

importcom.xie.abs.model.*;

/**

*对营业员数据进行访问的接口。

*

*/

publicinterfaceSalesDAO{

/**

*根据给定的姓名和密码在底层数据源中查找营业员的纪录,

*若找到,则返回该营业员对象,若没找到或密码错误则返回null。

*@paramname营业员姓名

*@parampasswd营业员密码

*@return找到的营业员对象或null

*/

publicSalesgetSales(Stringname,Stringpasswd);

*向底层数据中添加一个营业员纪录。

*@paramuser要添加的营业员对象

*@return若添加成功返回true,否则返回false。

publicbooleanaddSales(Salesuser);

*根据指定的营业员的姓名在底层数据源中删除该营业员。

*@return若删除成功返回true,否则返回false。

publicbooleanremoveSales(Stringname);

*修改指定营业员的密码。

*@paramoldPassword旧密码

*@paramnewPassword新密码

*@return若修改成功返回true,否则返回false。

publicbooleanmodifyPassword(Stringname,StringoldPassword,StringnewPassword);

}

2)FlightDAO:

importjava.util.Set;

importjava.util.Calendar;

*对航班和航班计划数据访问的接口。

publicinterfaceFlightDAO{

*根据指定出发地,目的地和出发日期在底层数据源中查找

*得到所有的航班对象的集合。

*@paramfromAddr出发地

*@paramtoAddr目的地

*@paramdate出发日期

*@return航班集合

publicSetgetAllFlights(StringfromAddr,StringtoAddr,Calendardate);

*添加指定的航班计划对象。

*@paramfs要添加的航班计划对象。

*@return添加成功返回true,否则返回false。

publicbooleanaddFlightScheduler(FlightSchedulerfs);

*根据给定的航班编号在底层数据源中删除该航班计划,以及该计划下的所有航班。

*@paramflightNumber要删除的航班计划的航班编号。

*@return删除成功返回true,否则返回false。

publicbooleanremoveFlightScheduler(StringflightNumber);

*该方法更新航班--删除过期航班,创建可以接受预订的航班。

*航班的接受预订期是指从当前日期开始往后60天。

*

publicvoidupdateFlights();

*得到所有航班计划对象

*@return

publicSetgetAllFlightSchedulars();

3)BranchDAO:

*对营业网点数据访问的接口*

publicinterfaceBranchDAO{

*根据给定的编号在底层数据源中查找营业网点的纪录,

*若找到,则返回该营业网点对象,若没找到则返回null。

*@paramid营业网点编号

publicBranchgetBranch(intid);

*查找指定的省份和城市的所有营业网点

*@paramprovince省份

*@paramcity城市

*@return满足条件的营业网点的集合

publicSet<

Branch>

getAllBranch(Stringprovince,Stringcity);

*向底层数据中添加一个营业网点。

*@parambranch要添加的营业网点对象

*@return返回该营业网点的编号。

publicintaddBranch(Branchbranch);

*根据指定的营业网点的名称在底层数据源中删除该营业网点。

*@paramname营业网点名称

publicbooleanremoveBranch(Stringname);

*根据指定的营业网点的编号在底层数据源中删除该营业网点。

publicbooleanremoveBranch(intid);

4)TicketOrderDAO:

*机票出票记录访问接口

publicinterfaceTicketOrderDAO{

*执行出票的操作。

*@paramord订单对象

*@return若出票成功返回true,否则返回false。

publicbooleanorder(TicketOrderord);

*执行退票操作。

*@paramTicketNumber机票编号

*@return退票成功返回true,否则返回false。

publicbooleancancelOrder(intTicketNumber);

*查询指定营业网点在指定时间段内的出票记录

*@parambranch营业网点

*@paramstartDate开始日期

*@paramendDate结束日期

*@return满足条件的出票记录集合

TicketOrder>

getAllTicketOrder(Branchbranch,CalendarstartDate,CalendarendDate);

*查询指定营业员在指定时间段内的出票记录

*@paramsales营业员

getAllTicketOrder(Salessales,CalendarstartDate,CalendarendDate);

*得到指定营业网点指定日期内的营业额。

*@return营业额

publicdoublegetAllTicketMoney(Branchbranch,CalendarstartDate,CalendarendDate);

*得到指定营业员指定日期内的营业额。

publicdoublegetAllTicketMoney(Salessales,CalendarstartDate,CalendarendDate);

*得到所有营业网点指定日期内的营业额

publicdoublegetAllTicketMoney(CalendarstartDate,CalendarendDate);

4,主要工作流程:

详细设计:

1,各功能模块设计

2,系统配置

3,代码框架

4,

代码框架:

附录I:

国内通航机场名及代码表

地区

城市

三字码

北京

PEK

首都

上海

SHA

虹桥

PVG

浦东

重庆

CKG

江北

天津

TSN

滨海

河北

石家庄

SJW

正定

秦皇岛

SHP

山海关

山西

太原

TYN

武宿

常治

CIH

运城

YCU

内蒙古

呼和浩特

HET

白塔

包头

BAV

海拉尔

HLD

东山

锡林浩特

XIL

吉林

长春

CGQ

大房身

JIL

二台子

延吉

YNJ

辽宁

沈阳

SHE

桃仙

大连

DLC

周水子

丹东

DDG

浪头

锦州

JNZ

朝阳

CHG

黑龙江

哈尔滨

HRB

阎家岗

齐齐哈尔

NDG

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

当前位置:首页 > 党团工作 > 其它

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

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