航空订票系统详细设计Word文件下载.docx
《航空订票系统详细设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《航空订票系统详细设计Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
1.3定义:
查询:
对数据库的操作的一种,用于搜索数据信息。
插入:
对数据库的操作的一种,用于将数据存入数据库中。
更新:
对数据库的操作的一种,用于更改数据库中的数据信息。
PostgreSql:
系统服务器所使用的数据库管理系统(DBMS)。
SQL:
一种用于访问查询数据库的语言
事务流:
数据进入模块后可能有多种路径进行处理。
主键:
数据库表中的关键域。
值互不相同。
外部主键:
数据库表中与其他表主键关联的域。
1.4参考资料:
需求分析说明书软件开发小组
软件工程齐治昌谭庆平宁洪等高等教育出版社
实用软件工程郑人杰等,清华大学出版社。
二、总体设计
2.1需求概述
航空订票系统的总目标是:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
具体功能为用户把预定机票的旅客信息(姓名、性别、身份证号码(护照号码)、乘坐时间、出行始发地和目的地等)输入到系统中,系统为旅客安排航班。
当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。
此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。
同时还需完成旅客延误了取票时间的处理,航班取消后的处理,旅客临时更改航班的处理等。
根据可行性研究的结果和客户的要求,分析现有情况及问题,采用B/S结构,将机票预定系统划主要就是服务器端子系统。
2.2软件结构:
图1软件结构图
三、程序描述
3.1各功能详细描述:
本系统主要用于机票预订,所以提供了以下几个子功能:
机票预订,取票通知,查询航班,查询机票,退票,打印机票,各航班的营运统计,以及后台方面的航班的添加,取消航班,机票的生成,以及航班的查询等后台功能。
1、机票预订功能:
用户和机场管理员有权力进行该项功能。
首先通过查询得到旅客所需的航班,确定该航班还有没有被预订的座位,然后选择座位的等级,填写旅客的详细信息之后就可进行网上预订机票。
2、取票通知:
该项功能只有用户和机场管理员有权力进行操作,在机票预订功能成功完成之后,系统会自动给浏览器端发送一条取票信息以及所需缴纳的费用。
旅行社可以利用特定设备将该取票信息打印出来,这就是取票通知。
3、查询航班:
可以通过输入出发地,目的地,日期和时间选定自己航班。
4、查询机票:
该项功能用户、游客、管理员都可以操作,可以通过自己的身份证号以及取票通知上的机票号查询自己的机票信息。
5、退订机票:
该功能只有用户和机场管理员有权力操作,利用身份证号和对应的机票号就可以查询到机票信息,然后就可以退订机票。
6、打印机票:
该功能只有机场管理员有权力操作,只有当管理员确认旅客已经付款后才予以打印机票,可以通过身份证号和对应的取票信息上的机票号查询机票信息,然后服务器返回机票信息,管理员就可以打印该机票信息,交给旅客。
7、各航班的营运统计:
该项功能只有机场管理员才能操作,他可以通过输入年份和月份查询当月个航班的营运情况,以便机场能够及时掌握航班动态。
8、后台的航班添加:
该项功能只有机场管理员才能操作,他通过提供航班的具体信息添加航班信息。
9、后台的取消航班:
该项功能只有机场管理员才能操作,先通过航班号和航班日期查询到航班信息后,取消航班就可以将该航班从数据库中删除。
10、后台的航班查询:
该项功能只有机场管理员才能操作,通过航班号和航班日期查询到航班信息。
11、后台的机票生成:
该项功能只有机场管理员才能操作,可以通过该项功能给刚添加的航班生成对应的飞机票号纪录。
3.2主要的系统功能模块如下:
1、用户模块:
用户用例图如图2所示
(1)用户登陆模块ConsumerDAO.getConsumer()
(2)用户注册模块ConsumerDAO.register()
(3)查询航班模块ConsumerDAO.getFlightByInformation()
(4)订票模块ConsumerDAO.orderTicket()
(5)修改密码模块ConsumerDAO.modifyPassword()
(6)付款模块ConsumerDAO.paying()
(7)退票模块ConsumerDAO.returnTicket()
普通用户
图2
2、管理员模块:
管理员用例图如图3所示
(1)管理员登陆模块ManagerDAO.getManager()
(2)管理员修改密码模块ManagerDAO.modifyPassword()
(3)删除用户ManagerDAO.deleteConsumer()
(4)添加新管理员ManagerDAO.addManager()
(5)删除管理员模块ManagerDAO.deleteManager()
(6)发布新航班模块ManagerDAO.addNewFlight()
(7)删除航班模块ManagerDAO.deleteFlight()
(8)根据信息查看航班信息模块ConsumerDAO.getFlightByInformation()
管理员
图3
3、创新点——通过关键字从其他网站找到一些信息推荐给用户模块:
用例如图4所示。
推荐信息模块InformationDAO.getInformationByKeyWord()
信息采集器
3.3数据库设计:
普通用户(Consumer)
字段名
字段类型
是否为空
默认值
字段含义
注释
consumerId
VARCHAR2(10)
N
用户编号
用以标示不同用户。
consumerName
VARCHAR2(20)
用户名称
用户自己取的名字有利于用户记忆,可以用来登录等。
consumerPassword
用户密码
用于确定用户身份。
consumerGender
VARCHAR2
(1)
用户性别
consumerBookingFligt
Y
用户已订票航班
用于储存用户已订票的航班。
consumerBookingSeat
用户已定机票的座位号
用于储存用户已订票航班的座位号。
consumerIDCardOrPassportNo
用户的身份证号或护照号
用户取票的凭证(身份证号或护照号)
consumerTelephone
VARCHAR2(11)
联系电话
用已与用户取得联系
consumerMailBox
电子邮箱
管理员(Manager)
managerId
管理员编号
用以标示不同管理员。
managerName
管理员名称
管理员自己取的名字有利于其记忆,可以用来登录等。
managerPassword
管理员密码
用于确定管理员身份。
航班表(FLIGHT)
flightId
CHAR(6)
飞机编号
PRIMARYKEY
startDate
DATE
出发日期
飞机起飞的日期
endDate
到达日期
飞机到达的日期
fromAddress
出发地点
飞机起飞地点
toAddress
到达地点
飞机目的地
startTime
出发时间
起飞时间
endTime
到达时间
到达目的地时间
scheduler
CHAR(7)
班期
sailLength
NUMBER(5)
航程
座位表(FLIGHT)
flight_number
航班号
first_class_remain_seats
NUMBER(3)
头等舱剩余座位数
business_class_remain_seats
公务舱剩余座位数
economy_class_remain_seats
经济舱剩余座位数
priceoff
NUMBER(4,2)
季节折扣
calendar
3.4、流程图:
3.5DAO接口设计
设计了通用的DAO接口,而不是直接写访问数据库的实现类,这样可以创建不同的实现类来实现接口,使标准制定和标准实现分离。
当换了数据库,或者换了数据库访问技术,就可以写新的实现类,不用改变原来的代码。
如定义FlightDAO接口,若从文件中读取数据可以定义FlightDaoFromFile实现类,若利用JDBC访问数据可以定义FlightDaoFromJDBC实现类,若利用hibernate访问数据可以定义FlightDaoFromHibernate实现类等。
3.5.1FlightDAO
flightDAO用来航班计划,航班的数据访问。
packagecom.tarena.abs.dao;
importcom.tarena.abs.model.*;
importjava.util.*;
//对航班和航班计划数据访问的接口。
publicinterfaceFlightDAO{
//根据指定出发地,目的地和出发日期在底层数据源中查找
//得到所有的航班对象的集合。
publicSetgetAllFlights(StringfromAddr,StringtoAddr,Calendardate);