




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-5"\h\z\o"CurrentDocument"摘要 2ABSTRUCT 3\o"CurrentDocument"第一章绪论 4\o"CurrentDocument"1.1课题研究的背景 4\o"CurrentDocument"课题研究的目的和意义 4\o"CurrentDocument"国内外研究现状 5\o"CurrentDocument"第二章系统分析 6\o"CurrentDocument"系统调查 6\o"CurrentDocument"系统的可行性分析 6\o"CurrentDocument"第三章需求分析 9\o"CurrentDocument"业务流程图 9\o"CurrentDocument"系统逻辑模型的提出 11\o"CurrentDocument"数据字典 123.4数据库设计 ……………..13\o"CurrentDocument"数据库的概要设计 14\o"CurrentDocument"2数据库的详细设计 14\o"CurrentDocument"数据实体E-R图 14\o"CurrentDocument"创建数据库 17\o"CurrentDocument"3.4.3系统的运行环境 19\o"CurrentDocument"第四章系统设计 19\o"CurrentDocument"系统的总体设计 19\o"CurrentDocument"交互界面设计 19\o"CurrentDocument"业务逻辑设计 22\o"CurrentDocument"4.2系统的详细设计 25\o"CurrentDocument"交互界面详细设计 25\o"CurrentDocument"业务逻辑详细设计 26\o"CurrentDocument"功能模块的实现 30\o"CurrentDocument"结论 30\o"CurrentDocument"参考文献 32\o"CurrentDocument"致谢 32摘要本航空订票系统是一个基于Java的AWT开发,根据现今航空业的飞速发展,为了缓解航空公司对机票管理的压力而开发的这个航班查询与订票系统。论文首先阐述了本课题的研究背景和研究的意义以及现今国内外对于本课题研究概况做了简要的介绍。在系统设计阶段,对交互界面的设计采用了Swing的MVC框架,结合AWT实现了交互界面显示,在后台业务层的实现采用了MVC分层模式实现了对前台交互界面请求的处理。在数据库设计阶段,通过对本行业的调查的具体的规划,在此基础上进一步的抽象规划得到了整个数据表的整体框架和数据库表。并进一步的详细阐述了数据库之间的关联。结合着整个项目,本项目采用C/S结构,使用Swing技术进行交互界面的设计。后台数据库选用MySQL数据库。从快速开发方面考虑,运用了JDBC框架实现对数据库的各项操作。关键字:C/S结构;Swing;JDBC;Java;航班查询与订票系统ABSTRUCTTheairsearchingandbookingsystemisadevelopmentofJavaAWT,inaccordancewiththecurrentrapiddevelopmentoftheaviationindustry,airlinesinordertoeasethepressureonthemanagementofthedevelopmentofthebookingsystem.Firstthepaperelaboratedtheresearchbackgroundandthesignificanceonthesubjectandinternationalprofileofthisissueonabriefintroduction.Inthesystemdesignstage,thedesignofthepagesusingtheSwingofMVCframeworktoachievedisplaytheinterchangeofpages,inthebackgroundofthebusinesstoachievealayeredModeloftheMVContheprospectsofachievingthepagesdealingwiththerequest.Inthedatabasedesignstage,throughtheinvestigationoftheindustry'sspecificplanning,onthebasisoffurtherplanningbytheabstractoftheentiredatatableoftheoverallframeworkanddatabasetables.AndfurtherIelaboratedthelinkamongdatabases.Accordingtoentireproject,thesystemusesCSstructure,whiletheuseofSwingtechnologyforthedesignofinterchangepages.ThedatabaseweusedisMySQL.Fromtherapiddevelopmentconsiderations,useJDBCframeworktoachievetheoperationofthedatabase.Keywords :CSstructure;AWT;JDBC;Java;AirSearchingandBookSystem第一章绪论1.1课题研究的背景伴随着人们更多的使用飞机作为交通工具,国内机票票务市场也在快速发展。据预测,我国2007年机票票务市场将比2008年增长10.5%,达700多亿元人民币。而与此同时,人们希望机票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的机票表现出极大的关注,于是,到机场购票方式当然会面临巨大的挑战,这种方式必须改变了,否则无法满足人们的需求。机票代理窗口购买机票是一种非常好的方式,但随着人们工作和生活节奏的加快,到代理点购买机票就可以节约时间了,而且机票价格及航班的选择对于消费者来说仍然可以是透明的,所有相关信息都能够展示给购票者,即购票者只能直接看到机票代理商所提供信息,在原有老系统的基础上,我们可以增加代理商网点,让购票者随时随地都能够买到机票。因此,航班查询与订票系统就应运而生,这种简单的C/S(客户端/服务器)模式的系统安装方便,快捷,安全,高效的连接到机场的服务器,给人们带来极大地方便。课题研究的目的和意义航班查询与订票系统的使用已成为人们生活的一部分,方便了人们的出行旅游,提高了工作效率,改善了我们的生活方式。尽管航班系统日趋成熟,功能也将更强大,服务方式也有很大的变化,但也并不是尽善尽美。本系统的目的和意义就在于以下考虑:某航空公司为了满足机票代理商订购和查询机票的功能,某航空公司提出了一个客户端预定和查询机票的项目。应某机票代理公司的要求,我要编写一个民航预定和查询机票系统,这个系统能够免去顾客繁琐的来回机场购票系统,同时也是让机场和互联网相连的一个渠道,让机票的购买实现网络化,这个系统的编写也能够更大的解放人力物力,能够有效的促进社会的进步和发展,同时也让机场售票步入网络化的时代。航班查询与订票系统作为面向代理商和广大用户的售票的终端,具有操作简单、流程顺畅、效率高、完善严谨,系统稳定的特点,是根据市场的实际需要,融合机场的实际业务运作特点和管理需要,推出的体现当前行业最先进管理思想的解决方案。1.3国内外研究现状随着互联网技术的日益成熟,近年来基于网络的订购机票日益流行。越来越多的人们可以通过航空公司代理点、航空公司的网站以及其他旅游、机票销售的专业网站订机票。网上订票在一订程度上提高了购票的透明度和自主性,但上述网站在方便消费者的同时,仍存在许多不足的地方。国外的电子商务技术已经发展成熟,人们在网上购物,订票已经是司空见惯的事情了。而中国才处于初级阶段,各方面都还不完善,网上电子支付不普及和网上信誉难以审核就是两大难题,网上购票的普及与认可还需要一段很长的路要走。所以,开发工作者们都在寻求一种符合中国国情并能切实推广的航空票务系统,在这个过渡时期,传统的C/S模式的购票模式也是必不可少的,许多人还是相信代理商订购的机票,毕竟网上支付的风险会更大些。05年底,苏州信息亭公司继开通了汽车票售票业务后,又新开发了航空票务系统,市民只要到信息亭终端机上点击“票务中心——电子机票”按钮,就可以进入到信息亭的电子机票销售系统,选择自己需要的航班、填写好乘机人的详细资料、用光大银行卡完成结算,轻松购得了一张电子机票。在乘机时,市民可凭自己的有效证件到机场柜台办理登机手续,换取登机牌,就可以开始自己的开心之旅了。这的确是使市民享受到了便捷专业的电子机票购买服务,但我认为这个系统也有不完善处,比如使用电子机票销售系统必须在终端机上进行,而购买机器需要投入很多的资金,增加了成本。还有,在换取登机牌时也还是要经过一系列的手续。基于这些,我们致力于开发一种简单的航班查询与订票系统以供航空公司的代理商使用。第二章系统分析系统调查1994年,全球信息网的迅猛发展为Java提供了良好的契机。Java的首次公开露面始于网页上一个小小的转动着的咖啡杯。这个Javaapplet的出现打破了Web站点沉寂的风格,为原本以静态文字和图片为主的互联网世界带来了新的生机和情趣。经历了几年的发展,Java已经从最初的Web页面修饰工具发展成如今的Internet/Intranet计算平台。Java的应用也已经不仅仅局限于客户端,由于针对服务器端应用的Java技术的推出,如Serverlet、RMI(RemoteMethodInvocation)、EJB等等,更多的开发人员开始使用Java开发和部署企业关键任务应用。Java的广泛应用,除可以归因于其强大的跨平台特性、内在的安全机制及其分布式计算等特性外,Java提供的图形类库也可以说功不可没。Sun公司在其发布的早期Java版本JDK1.0中就提供了Java图形类库AWT(抽象视窗工具库),用于图形用户界面的开发。在JDK1.1中AWT又不断地得以改进。此后,为满足商业化应用对图形用户界面的更高要求,Sun公司与Netscape、IBM公司合作共同开发了新一代Java图形类库JFC(Java基础类)。系统的可行性分析任何系统的存在都必然有它存在的一面,航班查询与订票系统是为了缓解航空业对于这几年飞速发展的机票的紧张管理。民航系统是面向群体的不定向用户的一个系统,因此,这个系统就要求安全,高效率和稳订的特点,鉴于这些因素,我作了以下的分析:语言的可行性分析Java是一种简单的面象对象、分布式、解释健壮、安全结构中立的可移植性能很优异的多线程的动态的语言。将它作为本系统的主要开发语言主要体现在以下几点:1、简单Java语言是简单的,它摒弃了C++中很好使用很难理解也很容易出错的特性,如操作符重载,多继承等,特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧,因而它是简单易学的,它可以让我们放心的来关注我们的业务流程而不需要考虑各种内存溢出的情况。2、面向对象Java语言的设计完全是面向对象的,提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。3、分布式Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。本系统是BS模式的,用户的访问主要是通过Internet来访问和实现其业务的。使用Java语言能很好的满足本系统的需要。4、健壮Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java提供Null指针检测数组边页检测异常出口字节代码校验。本系统是一个长期运行型的系统,Java语言的健壮性让我们的系统能够很好的来维护和管理我们的系统。5、 安全Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和一些浏览器本身提供的功能结合起来,使它更安全。本系统是一个WEB系统,安全性尤其重要,采用Java能够让我们的系统处于一个安全的环境,不受外来的非法操作而崩溃。6、 网络应用系统Java是一种与平台无关的语言,因此用Java开发的网络应用系统可以在各种平台上运行,大大增加了开发效率,减少重复劳动。而且,Java集成的网络功能分有利于开发网络应用系统。本系统就是一个基于网络环境的开发,使用Java可以很好的满足本系统的要求。框架的可行性分析任何系统都会有它自己的框架,框架的好坏决定了这个系统的工作效率和以后维护的难易程度。本系统在结构上使用的是C/S架构,但框架设计上同样用了目前非常流行的模型层-视图层-控制层(MVC)模式。但是它有别于通常的MVC模式,它是采用Java的Swing的MVC模式,下面我们对JavaSwing的MVC模式的可行性进行分析:尽管MVC设计模式通常是用来设计整个用户界面(GUI)的,JFC的设计者们却独创性的把这种设计模式用来设计Swing中的单个的组件(Component),例如表格Jtable,树Jtree,组合下拉列表框JcomboBox等等。这些组件都有一个Model,—个View,—个Controller,而且,这些Model,view,controller可以独立的改变,就是当组件正在被使用的时候也是如此。这种特性使得开发GUI界面的工具包显得非常的灵活。MVC设计模式把一个软件组件区分为三个不同的部分:Model,View,Controller。Model是代表组件状态和低级行为的部分,它管理着自己的状态并且处理所有对状态的操作,Model自己本身并不知道使用自己的view和Controller是谁,系统维护着它和View之间的关系,当Model发生了改变系统还负责通知相应的view。View代表了管理Model所含有的数据的一个视觉上的呈现。一个Model可以有一个以上的View,但是Swing中却很少有这样的情况。Controller管理着Model和用户之间的交互的控制。它提供了一些方法去处理当Model的状态发生了变化时的情况。使用键盘上的按钮的例子来说明一下:Model就是按钮的整个机械装置,View/Controller就是按钮的表面部分。2.2.3结构的可行性分析现在的系统归纳起来有2中结构:CS(client/service)和BS(browser/service).CS是针对特定群体的一种模式,它需要在客户端安装相应客户端软件,它的安全性比BS高。BS是面向不订向的群体,它不需要用户安装任何软件,只要用户有浏览器即可登陆和此系统进行交互。基于对系统的安全性的要求,航班查询与订票系统才C/S结构。C/S结构的主要特点有:1、交互性强,界面友好.在C/S模式中,Client机运行的应用程序是针对特定的用户和任务设计;2、 具有出错提示、在线帮助等辅助功能;3、 各Client机上运行的应用程序可根据用户的不同需要设计出满足用户方便使用的界面风格;3、系统的并行性非常好;5、合理的任务分工和协同操作,可以充分发挥数据库服务器和客户机各自的处理功能;6、网络开销小,开发工具丰富,技术成熟。第三章需求分析业务流程图本系统是航班查询与订票系统,代理商只要安装客户端程序再连上服务器端的数据库便可以进行航班查询、机票订购、和退订的功能的页面,在航空公司服务器端实现了管理员的登录(需要用户名和密码)。当登录后,管理员可以根据具体情况对航班的增删查改等操作。具体业务流程请参见图3-1和图3-2:图3-1系统结构图更新航班删除航班添加航班查看航班列表除班除按航空公司删除按一更新航班删除航班添加航班查看航班列表除班除按航空公司删除按一\航,航班系统管理员管理航班图3-2系统结构图说明系统逻辑模型的提出本系统在网络上时采用C/S模式进行客户端与服务器的连接,实现了代理商航班查询、机票预定、与退票功能。页面显示是用Java的AWT(abstructwindowtoolkit)呈现的,虽然没有其他语言做出来的页面漂亮,但是它继承在Java中,这便于开发,节约开发周期。
在代码的实现部分采用了Swing框架,完成了表现层的MVC分层。同时在业务层代码的实现部分采用分层框架,实现了表现层和业务层代码的分离。本系统的模型如图3-3所示。数据库数据库数据库数据库图3-3系统模型图说明在客户端,用户只需要安装客户端程序就可以通过Intenet和服务器建立连接,来完成相应的功能。服务器,是整个系统中最重要的部分,服务器主要处理客户端发送来的请求,通过JDBC(JavaDataBaseConnection)来和数据库建立连接从而查询很更像数据库中的数据。数据库,是计算机应用系统中必不可少的一种专门管理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像以及声音等,本系统主要是文字和数码的数据,数据是所有计算机系统所要处理的对象。通过SQL(StructureQueryLanguage)对数据库中的记录进行管理,数据库系统是的数据持久化的一种最重要的实现方式。3.3数据字典业务数据如下:1、航班(Flight):用来描述由某个航空公司执行的某个订期航班的班期表。例如:由中国国际航空公司执行的每天早上8:00从北京起飞,上午10:00到达上海的CA1202就是一个航班。航班中包含如下属性:航班号、航空公司、起始日期、结束日期、出发地、目的地、班期、成人票价、儿童票价、座位数、折扣率等。主要属性介绍如下:航班号:由航空公司给航班定义的唯一标识号码,该号码由2位英文字符和3位数字组成,2位英文字符是航空公司编码,4位数字是航班编码。例如:CA1202就是一个航班计划的航班号,其中CA代表中国国际航空公司,1202代表航班的编号。出发地:用来描述某个航班的起飞城市和机场,所有国内机场均用三个英文字母的代码表示。目的地:用来描述某个航班的到达城市和机场,所有国内机场均用三个英文字母的代码表示。起始日期:用来描述某个航班的开始日期,该日期精确到某一天。结束日期:用来描述某个航班的结束日期,该日期精确到某一天。班期:用来描述某个航班在一周之内哪些天有航班,哪些天没有航班航空公司:用来描述某个具体的航空公司。成人票价:成人订票的票价。儿童票价:儿童订票的票价,是成人票价的50%。座位数:某个航班的最大座位数。折扣率:某个航班的票价折扣率。2、订座信息(orderedSeats):它用来描述某个航空公司的某个航班的订票信息,以及座位的剩余情况。订座信息表包括如下属性:航班号、航班日期、所订座位数。航班号:与航班表中的定义一致。航班日期:描述某个航班的离开日期,精确到某一天。所订座位数:秒素某个航班座位被预定的数量。3.4数据库设计数据库的概要设计本系统的用户有2类:系统管理员和代理商,管理员的操作功能和代理商的操作大不相同,因此,在本系统中需要分别进行数据管理,首先有如下2个实体类。系统管理员实体数据:只需要记录管理员的登录名,姓名,密码,电话和邮箱,其中登录名和密码是管理员功能模块登录验证时所必须的。代理商实体数据:包括真实姓名,性别,证件号码,联系方式,电子邮件等等。这些信息中在代理商注册时填写的信息,这些信息由代理商自行维护,代理商的这些数据在航班管理时需要用到,因此,在代理商填写的时候需要认真填写真实的资料。除此之外,我们还需要三个数据实体,分别是航班实体数据,航班已订票实体数据和订票记录实体数据。航班实体数据:它记录了航班的基本信息,如航班号、所属航空公司、起飞时间、降落时间、起飞城市、降落城市、票价、座位数、班期等。航班已订票实体数据:记录了各个航班在具体的日期内已经售出的机票数,改表包含了三个字段:航班号、飞行日期和已订票数。订票记录实体数据:记录了订单的详细信息,包括:订票者的真实姓名、身份证号、订购得成人票数和儿童票数、联系电话。数据库的详细设计数据实体E-R图根据上面的数据库逻辑设计,我们可以确定这些数据的实体对应关系,用E-R图分别表示实体和属性,以及用E-R图表示实体之间的关系。
密码邮箱登录名电话号码姓名系统管理员密码邮箱登录名电话号码姓名系统管理员图5-1系统管理员实体属性说明
航班号折扣率所属航空公司班期起始城市到达城市儿童票价起始时间成人票价到达时间航班航班号折扣率所属航空公司班期起始城市到达城市儿童票价起始时间成人票价到达时间航班订单号订票日期姓名客户证件号I订票类型成人票数航班号、丿到达航班总金额订单号订票日期姓名客户证件号I订票类型成人票数航班号、丿到达航班总金额儿童票数订票记录图5-5订票记录实体属性说明1n生成订票记录航班图1n生成订票记录航班图5-6航班与订票记录之间的关系说明1n产生订票记录代理商图1n产生订票记录代理商图5-7代理商与订票记录之间的关系说明创建数据库经过前面的分析,我们在MySQL数据库中创建一个名为hangban的库,并在其中创建以下几张表:航班(flight)表:用于存储具体航班的基本信息。订票记录(bookinfo)表:用户存放用户预订机票订单的基本信息。航班已订票数(orderedSeats)表:用来存放某个班期航班的已经被订票数。
代理商(agent)表:存放代理商的基本信息。面是这4张表的字段说明:字段名描述类型约束id唯表示符intPrimarykeyagentName代理商姓名varchar(40)Notnullpassword密码varchar(40)Notnullgender性别varchar(1)NotnullidNumber证件号码varchar(18)Notnulltelephone联系电话varchar(ll)Notnullemail用户邮箱varchar(40)Notnull图5-8代理商表字段描述说明字段名描述类型约束id唯表示符intPRIMARYKEYAirFirm航空公司名Varchar(20)NOTNULLflight_number航班号CHAR(6)NOTNULLstartCity出发城市Varchar(10)NOTNULLdestCity目的城市Varchar(10)NOTNULLchildFee儿童票价Double(4)NOTNULLadultFee成人票价Double(4)NOTNULLarriveDate到达日期dateTimeNOTNULLSeats座位数Int(3)NOTNULLweek班期Char(7)NOTNULLstartDate出发日期dateTimeNOTNULLdiscount折扣率Double(4,2)NOTNULLDEFAULT1.0图5-9航班表字段描述说明
字段名描述类型约束FlightNumber航班号CHAR(6)NOTNULLflightDate班期dateTimeNOTNULLorderedSeats已订票数IntNOTNULL图5-10已订票数表字段描述说明字段名描述类型约束bookId订单号Char(20)PrimarykeyName乘客姓名Varchar(20)NOTNULLcustomerld证件号Varchar(20)PrimarykeyflightNumber航班号Char(6)NOTNULLstartDate出发日期dateTimeNOTNULLarriveDate到达日期dateTimeNOTNULLchildFee儿童票价Double(4)NOTNULLadultFee成人票价Double(4)NOTNULLCost总票价Double(4)NOTNULL图5-11订票记录字段描述说明3.4.3系统的运行环境硬件需求:PIII/256M/10G及以上配置,要求为系统分配足够的数据库磁盘空间推荐配置:PIV2G/512M/40G操作系统需求:Windows2000及以上操作系统。数据库软件需求:MySQL数据库。章系统设计系统的总体设计本系统采用C/S结构,所以对页面的设计方面我没有做太高要求,只是用了JavaSwing开发出简单的交互页面,但是能够完成整个流程的交互,而且操作过程简单,实用。因为时间的关系,我把一些业务代码写进了页面层,所以代码的耦合性相对的提高了,这方面也是我将来需要改进的地方。下面我先介绍一下基本交互界面功能。交互界面设计本系统我采用C/S结构,一般都是代理商与服务器单独打交道,故交互界面也不是很多,代码的复用率较轻。页面设计中我采用的是JavaSwing来显示页面,它能显示动态的页面,能够根据用户不同的请求显示出不同的页面。我的设计思想是:通过一个主界面,上面有不同的按钮,当我们点击是根据不同的按钮事件监听到不同的事件源,从而判断是什么功能,跳到相应的交互界面去。其他界面的设计思想也如此。主界面上的按钮有:查询、订票、退票、管理和关于我们五个按钮,具体解释如下:查询按钮实现功能:跳转到航班查询界面。订票按钮实现功能:跳转到订票界面。退票按钮实现功能:跳转到退票界面。管理按钮实现功能:这是系统管理员登录按钮,需要输入用户名和密码才能跳转到系统管理界面。关于我们按钮实现功能:显示我们这个小组的组员信息。其他交互页面设计我在详细设计里会以截图的形式显示出来。4.1.2业务逻辑设计业务逻辑处理的具体实现代码,是表现层所有功能实现的代码的集合,它能够根据界面上发送过来的请求来实现响应的功能,它是一个系统的核心,没有这一层我们所有的操作都只是表象,所操作的数据永远不能保存到数据库中。在这里,我们实现的功能有:航班查询:分为单程查询、双程查询和联程查询,点击相应的按钮后,自动跳到不同的界面。用户输入出发地,目的地,订票数和出发时间等信息后,点击查询按钮就能查找到相应的航班。航班预订:在航班查询的页面上,所查询到的航班后都会有一个订票操作,点击订票,转入到输入乘客信息和联系人信息,填写完之后就转入到了订票页面,确认你输入的信息无误后,完成了预订操作,相关的数据就已经更改。航班退订:点击退票按钮,自动跳到退票窗口,输入你所订票的详细信息以及订票数,点击退票,当系统判断你输入的数据无误后,显示退票信息和退票后的金额。以上是代理商的功能块,下面是系统管理员功能快:当系统管理员点击“管理”按钮后,输入相应的用户名和密码,判断正确后就可以登录到系统管理界面。这个界面的功能有:查询所有航班:管理员输入出发地,目的地,和出发时间,点击查询就能查找到相应的航班。航班删除航班:在查询页面的航班后都有删除和修改操作,点击删除,删除此航班,更改数据库数据,完成删除。更新航班:在查询页面的航班后都有删除和修改操作,点击修改,进入要修改的页面,填写要修改的详细信息后,确订无误后,修改完成。添加航班:在管理员页面首页有一个增加航班的选项,选中后转入要增加的航班,填写航班的信息后,提交,增加完成。4.2系统的详细设计交互界面详细设计交互界面设计我用的是JavaSwing集合JavaAWT设计出所有的交互界面。下面我们对各个界面及其功能作出详细的介绍:1、主界面主要实现客户端的航班查询,订票,退票,管理和我们的开发信息。图4-1主界面窗口说明2、订票界面完成代理商的订票功能,当订票完毕后自动显示客户订票信息。昌航班查诲与定票系薮国内机票实时速定-Ini第一航班号:机票类型: 忖单程「往返「联票机票预定|返回主页面|X|图4-2订票窗口说明3、退票界面根据代理商输入的退票信息完成客户的退票功能。图4-3退票窗口说明4、查询界面实现普通查询和综合查询功能。图4-4综合查询窗口说明图4-5普通查询窗口说明5、管理界面实现系统管理员对航班进行管理。江12w查看数据库删隊更新插A航班管理系统输入有效认证账号list密码••••GY1000Ion...bei...gui...200...200...1200 1800 1操作查看图4-6显示所有航班列表窗口说明图4-7删除航班窗口说明4.2.2业务逻辑详细设计业务逻辑方面这个系统分了六个包分别是:assist、main、query、ticketbook、ticketrefund和manage,每个包分别完成各自的功能,但包之间又有联系,比如assit包几被其他所有的包调用。assist包是一个辅助包,有两个类DatabaseManager和SeatInfo,DatabaseManager主要完成数据库的连接,和一些对数据库的基本查询,更像和修改等操作;Seatinfo则主要完成提取座位信息,以供其他类的调用。main包是主界面的接口,显示系统的所有功能,由两个类组成:Interface.和Main。interface类完成所有主界面的页面功能,定义所有按钮和页面初始化数据;Main类调用interface类显示一个主窗口和按钮。query包是当点击了主界面的“查询”按钮时调用的包。这个包中有四个类:Query、CommonQuery、ComprehenQuery和ResultTable。Query是一个窗口类,它会调用CommonQuery和ComprehenQuery两个类,分别实现普通查询和综合
查询连个功能;CommonQuery是普通查询,可以按航空公司查询、按航班查询和按目的地查询,根据所选按钮,执行相应的查询方式;ComprehenQuery是综合查询,实现了单程、双程和联程查询功能;ResultTable是对查询出的结果进行格式化处理,主要使用了Swing的JTable组件。Ticketbook包实现订票功能,主要有三个类:TicketBook、BookInfo和ClinetFram。TicketBook实现订票功能;ClinetFram发回客户订票信息;Bookinfo将客户的订票信息插入到数据库中,保存客户订票信息。Ticketrefund包实现退票功能,这里面就一个类:Ticketrefund实现客户的退票功能,退票成功后更新数据库中的数据。manage包实现系统管理员对航班的管理,这个包有五个类:DeletePanel、InsertPanel、UpdatePanel、FlightList和Management。它们分别在后台实现对航班的增加、删除、修改和查询;Management则实现的是管理员的操作界面。这些包的图形表示为:图4-8assist和main包说明CommenQuery+initComboxes+itemStateChanged+executeFligh+executeAirFirmQuerytQueryComprehenQuery+initComboxes+actionPerformed+executeSingleQuery+executeMutipleQuery+formSQLString+showResult+executeDestinQuery+showResult图4-9manage、query包说明CommenQuery+initComboxes+itemStateChanged+executeFligh+executeAirFirmQuerytQueryComprehenQuery+initComboxes+actionPerformed+executeSingleQuery+executeMutipleQuery+formSQLString+showResult+executeDestinQuery+showResult图4-9manage、query包说明图4-10ticketbook、ticketrefund包说明4.2.3功能模块的实现1、系统管理员登录功能的实现系统管理员登录功能的实现是采用Javax.swing.JOptionPane类下的showInputDialog方法判断管理员登录得用户名和密码是否正确,如果正确则转入到航班管理界面,否则提示是密码还是用户名输入错误信息,然后转入管理员登录界面让他重新登录2、航班查询功能的实现查询功能包括代理商的查询和系统管理员的查询,都是从同一张表中查询出输入的查询信息,如果没有则输出提示信息,不同之处是查询的方式和条件不一样。代理商这边的查询分得更细些,有单程查询、双程查询和联程查询。系统根据代理商选择的按钮(按钮事件),从而判断是那种查询方式,然后代理商会在相应的文本区(TextFields)内输入查询条件,我们使用Javax.swing.JTextField类的getText()方法获得代理商输入的文本作为查询条件。在显示查询结果时我们则用的是我们自己定义的一个类(ResultTable)格式化输出查询结果,ResultTable继承Javax.swing.JTable类。3、订票功能的实现订票功能是所有业务逻辑中最复杂、最重要和最麻烦的一项,因为我们一方面必须判断座位信息表(seatlnfo)中的座位数是否足够订票,另一方面还要判断代理商输入的航班信息与数据库中存储的航班信息是否一致,这里需要频繁的访问数据库。所以,这不但复杂而且要耗费许多时间。当代理商在订票窗口里输入订票信息后,点击“订票”按钮,系统监听到按钮事件,判断是否可以订票。这里所有的按钮均实现ActionListener接口的actionPerformed()方法以实现对按钮事件的监听。系统会根据代理商所购机票的飞行日期、航班号自动生成航班号,航班号的生成是用这段代码实现:StringbookNum=string[3]+string[4]+string.valueOf((int)(500*Math.random()));string[3]是航班日期,string[4]是航班号,string.valueOf((int)(500*Math.random()))则生成[0,500]的随机数,这样来构成订单号。4、 退票功能的实现退票功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂房安装承包协议合同
- 幼儿园教师合同协议书
- 人才委托服务合同
- 大数据技术解决方案服务合同
- 工程造价之~合同
- 基坑支护冠梁施工劳务合同
- 绿化种植协议合同
- 轮胎合伙协议合同
- 先签协议后解除劳动合同
- 合同协议契约精神
- 课标版高中《音乐鉴赏》学业水平测试题库(含答案)
- 第13课 现代战争与不同文化的碰撞和交流 课件(17张PPT)
- 生产安全事故应急预案(含深井铸造)
- CRRT vs 中毒血液净化模式选择
- 《等量代换》ppt(基础教育)
- 高压液氧泵原理、结构及检修、结构及检修
- 结核病防治知识培训试题及答案
- 变频器日常维护及常见故障处理85页PPT课件
- XX光伏电站项目方案(自投)
- 《长方体正方体》课前小研究
- MIL-STD-105E抽样计划表
评论
0/150
提交评论