一绪论11.1课题背景及现状..........................................................................11.2开发工具介绍..............................................................................1二需求分析..............................................................................................2(一)航空售票系统的数据需求(二)数据字典(三)主要数据流图三概要设计..............................................................................................6四逻辑设计..............................................................................................7五详细设计..............................................................................................7(一)基本查询语句(二)程序流图中某些加工实现采用IPO图的方式描述(三)数据库的逻辑结构设计六测试结果............................................................................................12七小结....................................................................................................17参考文献..................................................................................................18附录(主要源代码)..............................................................................191一绪论1.1课题背景及现状随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断的完善更新航空售票系统,提高航空售票系统的工作效率。航空公司为方便旅客,需开发一个订票系统。系统的操作者是有登录密码和用户名的售票员。系统要实现的基本功能是航班的调整,售票,订票,取票,退票,乘客信息的管理,乘客购票的统计;而系统在以后扩展时还可以实现的功能有:对机组工作人员的管理,预定机票的送票情况管理等。此系统的开发由我们分模块完成,而我所负责的模块是实现系统的航班调整,售票,订票,退票,取票,航班查询功能。举一个旅客订票的例子:预定机票的旅客信息,包括姓名、性别、地址、证件号、目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。航空售票系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点1.2开发工具介绍本次课程设计应用的开发工具主要是用java语言和SQLServer2005。java版本jdk1.6.0.4版本,JavaIDE使用的是eclipse3.2版本。本次数据库课程设计是以SQLServer数据库作为后台以java作为前台的应用型设计课程,综合了数据库与java两大课程创建应用型的数据库系统,大大提高了我们学生的动手能力,做到了理论与实践相结合,完成系统的分析,设计和开发。2二.需求分析(一)航空售票系统的数据需求包括如下几点:数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。数据的一致性与完整性由于系统的数据是共享的,在不同的旅行社中中,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。数据的共享与独立性整个机票预定系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。系统能实现的操作和功能如下:①查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,价格和剩余票额等业务。②承办订票业务:根据客户提出的要求(航班号或者终点站)查询该航班票额情况,若尚有余票,则为客户办理订票手续.输出座位号;若已满员,则需重新询问客户要求。若需要,可购买下一次航班或者等待看有没有人退票;③承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所剩票额能满足他的要求.则为他办理订票手续,否则依次询问其它排队候补的客户。3两个客户名单可分别由线性表和队列实现。为查找方便.已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线约情况登录在一张线性表上,由于航线基本不变采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的—个记录,包含上述8个域,其中乘员名单域为指向乘员名单链表的头指针,等侯替补的客户名单域为分别指向队头和队尾的指针(二)数据字典数据条目:系统管理要求=[乘客资料表|机组人员资料表|购买信息表|航班信息表|飞行信息表|订单信息表]乘客资料表=证件号+姓名+性别+年龄+家庭地址+电话+旅客类型+目的地机组人员资料表=编号+职称+姓名+年龄+性别购买信息表=旅客证件号+航班+票价航班信息表=航班号+出发地+目的地+起飞时间+抵达时间+航班类型+剩余票数+价格飞行信息表=航班号+飞机号+航程+中转站订单信息表=姓名+证件号+航班号+机型+舱位+座位+订票日期4(三)主要数据流图如下:(1)功能模块设计5(2)主要层次结构图:各项业务管理界面乘机资料人明细管理售票管理票务管理购送票管理定单信息管理退出点击关闭该界面回到登陆界面乘客机组人员订票情况客户购票统计送票情况航班删除航班增加航班修改查询业务退票业务售票业务取票业务订票业务旅客航班查询机场航班查询6三概要设计航空订票系统E-R图如下:旅客姓名电话证件号旅客类型地址性别年龄购买票价飞机型号航班舱位座位飞行航班号飞机型号航班订票订票旅客航班号出发地目的地起飞时间到达时间票价航班类型剩余票数起飞日期姓名证件号目的地起飞时间航班订票日期取票日期机型舱位座位1nn111117四逻辑设计根据E-R图和相关要求,把ER模型图转换为关系表,进行数据模型转换,系统用到五个基本表:旅客(passenger)表;购买(buy)表;航班(flight)表;飞行(fly)表;飞机(plane)表将E-R图转换成关系模型,关系的主码用横线标识:旅客(passenger)(姓名,证件号,电话,旅客类型,性别,年龄,地址)购买(buy)(旅客证件号,航班,票价)航班(flight)(航班,出发地,目的地,起飞时间,抵达时间,航班类型,剩余票数,票价,起飞日期)飞行(fly)(航班,型号,航程,中转站)飞机(plane)(型号,舱位,座位,航班)五.详细设计(一)基本查询语句订票业务:每次当有旅客需要订票时,首先需要对机场的航班情况进行查询,当有符合旅客的航班的机票剩余时旅客可以订票,并记录下旅客的相关信息,用到的SQL语句为:insertintopassenger(姓名,证件号,年龄,性别,旅客类型,地址,电话);然后旅客的订票信息存入数据库,并分配相应的航班和取票信息;退票业务:当有旅客退票时,需要根据录入旅客相关的信息将数据库peopleorder表中相应的记录删除,所用SQL语句为:deletefrompeopleorderwhere姓名=’旅客姓名’,证件号=’旅客证件号码’,状态=‘买票’;航班增加/删除/修改业务(需要管理员权限):当航空公司需要对机场航班情况进行调整时,如增加/删除/修改操作,通过以下SQL语句实现:增加:insertintoflightvalues(‘航班号’,’出发地’,’目的地’,’起飞时间’,’抵达时间’,’航班类型’,’剩余票数’,’票价’,’起飞日期’)删除:deletefromflightwhere航班号=’航班号码’;修改:updateflightset[任意属性列]=[修改值]where航班号=’航班号码’;8(二)程序流图中某些加工实现采用IPO图的方式描述:“收集旅客信息数据算法”IPO表系统:航空售票作者:孙启欢模块:收集数据算法日期:2008.12.7编号:1被调用:取数据模块调用:输入:姓名、性别输出:格式化之后的数据处理:格式化后的各种数据=格式化(相关输入数据)局部数据元素:注释:本加工仅采集数据,未进行实质性的数据变换9“收集航班信息数据算法”IPO表系统:航空售票作者:孙启欢模块:收集数据算法日期:2008.12.7编号:2被调用:取数据模块调用:输入:航班,出发地,目的地,起飞时间,抵达时间,剩余票数,票价,起飞日期,航班类型输出:格式化之后的数据处理:格式化后的各种数据=格式化(相关输入数据)局部数据元素:注释:本加工仅采集数据,未进行实质性的数据变换10“订票/售票/取票/退票相关数据算法”IPO表系统:航空售票作者:孙启欢模块:审核数据算法日期:2008.12.7编号:3被调用:审核数据模块调用:输入:旅客的相关信息,飞机/航班的相关信息输出:订单信息,机票信息处理:订单信息=旅客信息+所购买航班信息+取票信息机票信息=旅客购买航班的详细信息局部数据元素:11(三)数据库的逻辑结构设计(航空订票系统使用的数据表)旅客(passenger)(姓名,证件号,电话,旅客类型,性别,年龄,地址)购买(buy)(旅客证件号,航班,票价)航班(flight)(航班,出发地,目的地,起飞时间,抵达时间,航班类型,剩余票数,票价,起飞日期)飞行(fly)(航班,型号,航程,中转站)12飞机(plane)(型号,舱位,座位,航班)七测试结果在航空售票系统的开发过程中,我完成的模块是需要系统实现如下功能:航班的调整(增加/删除/修改),订票/售票,退票,取票,航班查询测试过程中有如下主要代表性功能界面(1)主要功能界面如下:13(2)订票客户资料界面(3)订单号创立成功14(4)航班退票系统主界面(5)点击退票当订单号不存在时15(6)点击查询可知道该订单号的详细信息(7)管理主界面(需要输入帐号密码)16(8)航班管理系统管理员可以更新数据库(包括插入,删除,更新,和查看数据库)八小结数据库课程设计