您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 航空订票系统详细设计
详细设计报告一、引言1.1编写目的:本阶段在系统的需求分析的基础上,对航空订票系统做详细设计。主要解决了实现该系统程序模块具体设计问题。包括确定算法,数据结构,模块接口的使用,数据库的动态操作以及界面设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有详细设计进行详细的说明。在下一阶段的编码过程中,程序设计员可参考此详细设计报告,在详细设计对机票预定系统所做的算法设计,数据结构以及数据库动态操作的基础上,对系统进行编码。1.2项目背景:开发软件名称:航空订票系统。用户:航空公司运行环境:宿舍电脑。开发平台:MyEclipse7.0PostgreSql数据库。系统架构:该系统采用java+jsp框架1.3定义:查询:对数据库的操作的一种,用于搜索数据信息。插入:对数据库的操作的一种,用于将数据存入数据库中。更新:对数据库的操作的一种,用于更改数据库中的数据信息。PostgreSql:系统服务器所使用的数据库管理系统(DBMS)。SQL:一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域。1.4参考资料:需求分析说明书软件开发小组软件工程齐治昌谭庆平宁洪等高等教育出版社实用软件工程郑人杰等,清华大学出版社。二、总体设计2.1需求概述航空订票系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。具体功能为用户把预定机票的旅客信息(姓名、性别、身份证号码(护照号码)、乘坐时间、出行始发地和目的地等)输入到系统中,系统为旅客安排航班。当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。同时还需完成旅客延误了取票时间的处理,航班取消后的处理,旅客临时更改航班的处理等。根据可行性研究的结果和客户的要求,分析现有情况及问题,采用B/S结构,将机票预定系统划主要就是服务器端子系统。2.2软件结构:图1软件结构图三、程序描述3.1各功能详细描述:本系统主要用于机票预订,所以提供了以下几个子功能:机票预订,取票通知,查询航班,查询机票,退票,打印机票,各航班的营运统计,以及后台方面的航班的添加,取消航班,机票的生成,以及航班的查询等后台功能。1、机票预订功能:用户和机场管理员有权力进行该项功能。首先通过查询得到旅客所需的航班,确定该航班还有没有被预订的座位,然后选择座位的等级,填写旅客的详细信息之后就可进行网上预订机票。2、取票通知:该项功能只有用户和机场管理员有权力进行操作,在机票预订功能成功完成之后,系统会自动给浏览器端发送一条取票信息以及所需缴纳的费用。旅行社可以利用特定设备将该取票信息打印出来,这就是取票通知。3、查询航班:可以通过输入出发地,目的地,日期和时间选定自己航班。4、查询机票:该项功能用户、游客、管理员都可以操作,可以通过自己的身份证号以及取票通知上的机票号查询自己的机票信息。5、退订机票:该功能只有用户和机场管理员有权力操作,利用身份证号和对应的机票号就可以查询到机票信息,然后就可以退订机票。6、打印机票:该功能只有机场管理员有权力操作,只有当管理员确认旅客已经付款后才予以打印机票,可以通过身份证号和对应的取票信息上的机票号查询机票信息,然后服务器返回机票信息,管理员就可以打印该机票信息,交给旅客。7、各航班的营运统计:该项功能只有机场管理员才能操作,他可以通过输入年份和月份查询当月个航班的营运情况,以便机场能够及时掌握航班动态。航空订票系统数据输入数据输出数据输入页面信息录入用户登陆或注册数据处理、查询数据判断PostgreSql判断查询数据库操作返回账单等确定错误原因返回机票信息打印账单等显示错误原因打印机票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()图22、管理员模块:管理员用例图如图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()用户注册或登录搜索飞机票预订飞机票删除已定机票付款普通用户生成交易信息并请用户确认图33、创新点——通过关键字从其他网站找到一些信息推荐给用户模块:用例如图4所示。推荐信息模块InformationDAO.getInformationByKeyWord()3.3数据库设计:普通用户(Consumer)字段名字段类型是否为空默认值字段含义注释consumerIdVARCHAR2(10)N用户编号用以标示不同用户。consumerNameVARCHAR2(20)N用户名称用户自己取的名字有利于用户记忆,可以用来登录等。consumerPasswordVARCHAR2(20)N用户密码用于确定用户身份。consumerGenderVARCHAR2(1)N用户性别consumerBookingFligtVARCHAR2(20)Y用户已订票航班用于储存用户已订票的航班。consumerBookingSeatVARCHAR2(20)Y用户已定机票的座位号用于储存用户已订票航班的座位号。consumerIDCardOrPassportNoVARCHAR2(20)N用户的身份证号或护照号用户取票的凭证(身份证号或护照号)信息采集器附近旅馆信息附近餐馆信息交通状况管理员登录发布新航班删除用户管理员修改密码删除航班查看航班信息管理员增加新管理员删除管理员consumerTelephoneVARCHAR2(11)N联系电话用已与用户取得联系consumerMailBoxVARCHAR2(20)N电子邮箱用已与用户取得联系管理员(Manager)字段名字段类型是否为空默认值字段含义注释managerIdVARCHAR2(10)N管理员编号用以标示不同管理员。managerNameVARCHAR2(20)N管理员名称管理员自己取的名字有利于其记忆,可以用来登录等。managerPasswordVARCHAR2(20)N管理员密码用于确定管理员身份。航班表(FLIGHT)字段名字段类型是否为空默认值字段含义注释flightIdCHAR(6)N飞机编号PRIMARYKEYstartDateDATEN出发日期飞机起飞的日期endDateDATEN到达日期飞机到达的日期fromAddressVARCHAR2(20)N出发地点飞机起飞地点toAddressVARCHAR2(20)N到达地点飞机目的地startTimeDATEN出发时间起飞时间endTimeDATEN到达时间到达目的地时间schedulerCHAR(7)N班期sailLengthNUMBER(5)N航程座位表(FLIGHT)字段名字段类型是否为空默认值字段含义注释flightIdCHAR(6)N飞机编号flight_numberCHAR(6)N航班号PRIMARYKEYfirst_class_remain_seatsNUMBER(3)N头等舱剩余座位数飞机到达的日期business_class_remain_seatsNUMBER(3)N公务舱剩余座位数economy_class_remain_seatsNUMBER(3)N经济舱剩余座位数priceoffNUMBER(4,2)N季节折扣calendarDATEN出发日期3.4、流程图:客户端启动登录有效数据?出票航班查询修改密码Noyes输入查询条件验证有效?Noyes已查航班?No输入乘客信息验证有效?Noyes输入新密码验证有效?Noyes封装request对象将request对象写向服务器分拣请求调用FligthDao调用TicketOrderDAO调用BranchDao调用BranchDao出票请求查询航班请求修改密码请求登陆请求封装response对象将response对象写往客户端解析request对象将结果显示在客户端图5流程图3.5DAO接口设计设计了通用的DAO接口,而不是直接写访问数据库的实现类,这样可以创建不同的实现类来实现接口,使标准制定和标准实现分离。当换了数据库,或者换了数据库访问技术,就可以写新的实现类,不用改变原来的代码。如定义FlightDAO接口,若从文件中读取数据可以定义FlightDaoFromFile实现类,若利用JDBC访问数据可以定义FlightDaoFromJDBC实现类,若利用hibernate访问数据可以定义FlightDaoFromHibernate实现类等。3.5.1FlightDAOflightDAO用来航班计划,航班的数据访问。packagecom.tarena.abs.dao;importcom.tarena.abs.model.*;importjava.util.*;//对航班和航班计划数据访问的接口。publicinterfaceFlightDAO{//根据指定出发地,目的地和出发日期在底层数据源中查找//得到所有的航班对象的集合。publicSetgetAllFlights(StringfromAddr,StringtoAddr,Calendardate);//执行出票的操作。publicbooleanorder(Orderord);//添加指定的航班计划对象。publicbooleanaddFlightSchedular(FlightSchedularfs);//根据给定的航班编号在底层数据源中删除该航班计划,//以及该计划下的所有航班。publicbooleanremoveFlightSchedular(StringflightNumber);//得到所有航班计划对象publicSetgetAllFlightSchedulars();//添加航班publicbooleanaddFlight(Flightfl);}3.5.2TicketOrderDAOTicketOrderDAO用来访问票单数据。packagecom.tarena.abs.dao;importjava.util.Set;importjava.util.
本文标题:航空订票系统详细设计
链接地址:https://www.777doc.com/doc-5081360 .html