职场文秘网

首页 > 条据书信 > 道歉信 / 正文

基于Web的航空机票售票管理信息系统毕业设计

2020-11-21 10:06:38

基于Web的航空机票售票管理信息系统 院 系 计算机学院 专 业 班 级 学 号 姓 名 指导教师 负责教师 2009年X月 摘 要 本文主要介绍了航空售票系统信息管理的设计和实现过程。首先叙述了开发该系统的背景、目的及意义。比较多的篇幅阐述了系统的需求分析、概要设计、详细设计以及功能的实现。本系统主要包括基本信息管理、业务处理、信息查询。基本信息管理包括售票员信息管理、乘客信息管理、航班信息管理、乘客保险信息管理、机票价格信息管理;
业务处理包括机票销售、退票处理和销售结算,信息查询主要包括客户信息查询、航班信息查询、机票销售查询、退票信息查询。

系统采用JSP和Java开发;
后台数据库采用MySQL。面向对象可视化编程是本系统的最大特点,清晰的人机交互界面可以更方便的实现航空售票管理功能。经测试系统性能良好,人机界面比较友好,操作简便,有一定的使用价值。

关键词:航空港信息管理;
航班信息管理;
售票管理;
退票管理;
保险信息管理;
预订票管理 Abstract The paper introduces the process of design and implementation on information management system which is concerning selling tickets in the airline company. First of all, this paper describes the background, purpose and significance of developing this system, and then explains system requirement analysis, outline design, detailed design and program achievement. This system includes the basic information management, transaction management and information query. Basic information management includes the conductors information management, passengers information management, flights information management, passenger insurance information management and ticket price information management; transaction management includes selling airplane tickets, refunding airplane tickets and balancing sale; information query includes customer information query, flight information query, sold ticket information query, refunded ticket information query. JSP, Java and MySQL DataBase were adopted in the process of developt this system. Object-oriented visual programming is the special feature of this system, and implicit interface between machine and men could be more convenient for conductors when using. System tests show that the system has better performance, friendly interface, convenient operation, so it is to use at a certain extent. Key words: management of airport information , management of flight information; management of sale tickets; management of return tickets; management of insurance information; management of book tickets. 目 录 1 绪论 1 1.1 题目背景 1 1.2 题目内容 2 1.3 系统设计目标 3 1.4 经济技术分析 3 1.5 本文结构 4 2 需求分析 5 2.1 角色及其职能 5 2.2 数据流图 5 2.3 概念结构设计 6 2.3.1 实体-联系(E-R)图 6 2.3.2 各实体详细E-R图 7 2.4 设计工具环境 8 2.4.1 Java语言 8 2.4.2 Eclipse开发平台 9 2.4.3 MySQL 9 2.4.4 JSP 9 3 概要设计 12 3.1 总体结构设计 12 3.2 数据库逻辑设计 13 3.2.1 人员信息 13 3.2.2 机票信息 14 4 详细设计 19 4.1 系统部分时序图 19 4.2系统的流程设计 20 4.3系统功能的详细实现 22 4.4详细设计中关键技术的实现 25 4.4.1数据库的连接 26 4.4.2验证码的实现 26 5 系统测试与调试 28 5.1软件测试常识 28 5.2系统功能测试计划 28 5.3系统功能模块测试 29 5.3.1管理人员模块的测试 29 5.1.2乘客模块测试 29 5.1.3售票员模块测试 29 5.4调试中的问题 29 结论 31 参考文献 32 致 谢 33 1 绪论 1.1 题目背景 在当今社会, 随着经济的不断发展, 必然带动交通业和旅游业务的不断扩大, 特别是航空售票和订票的信息管理日异复杂, 传统的手工登记和集中管理已经难以满足快节奏、高效率的现代生活需求。这就需要在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的订票售票的自动化的计算机系统。

航空售票管理系统是指应用计算机和网络通信设备以及应用软件进行电子售票的信息管理系统,它可以进行信息收集、存储、处理、提取和数据通信,能满足用户对信息的使用需求的计算机应用软件系统。

现在社会对数据库系统的认识不够,绝大部分基层人员还只认为信息化可以简化工作程序,降低劳动强度,提高工作效率。对航空信息化能带来航空服务手段的重大变革,航空科技的发展等重大意义尚无认识。航空售票信息管理系统是航空公司的重要的管理工作之一。售票管理是指管理者通过一定的管理手段,使乘客(用户)能更加了解自己在买票时涉及到的相关费用。航空售票管理信息系统包括航空港信息、乘客保险信息、售票以及退票等业务的管理以及相关的统计图形显示,其中不同权限的人可以进行不同的操作,管理员对该系统进行综合的管理。

目前,计算机技术和产品的发展日新月异,将会给信息处理带来更多的手段,同时也会带来更加丰富的信息表达形式。随着经济的不断发展,航空售票和订票的信息管理日异复杂。过去传统的售票已经不能满足现代航空业务流量剧增的客观要求,所以急需开发“航空售票管理系统”。

下面介绍开发本软件的重要意义。

(1)航空售票管理系统,应用于所有航空售票处的客户资料和送票情况管理,能对客户累计购票情况进行统计分析,具有自动编号、快速查询、客户购票统计、售票管理、密码设置等功能,能根据任意身份证号快速定位到某一客户,并录入购票明细情况。能打印各种客户资料报表,具有较强的可扩充性。经过运行使用后,效果良好。通过使用该软件,有利于提高工作效率,加强与客户之间的沟通和了解,增强客户的信任感,从而达到提高机票销售的效率。

(2)数据库是数据管理的最新技术,是计算机科学的重要分支。今天,信息资源已成为各个部门的重要财富,建立一个满足航空售票信息处理要求的行之有效的信息系统也成为一个航空公司发展的重要条件。航空售票管理系统,它是航空部门机票管理系统的一部分,其作用是对所有待售机票和已售机票进行有效的管理。通过本系统不仅可以进行售票工作,而且还可以对旅客情况和航班情况进行查询,并可随时进行增加,修改,删除等操作,使管理人员能够有效地对机票进行有效的管理。因此,通过航空售票管理系统,使航空售票管理工作系统化,规范化,自动化,从而大大提高了售票管理工作的效率。

(3)民航售票系统实施的目的是要带给旅客快捷方便的服务,其开发过程中不仅要考虑到人力,资金和时间的约束,也要为旅客们提供更便捷的服务。在设计中,重点是售票系统中的方便快捷,能提供给旅客以优质高效的服务,并提高销售的效率和便捷,为航空公司带来良好的效益。为企业的决策层提供准确、精细、迅速的机票销售信息。

1.2 题目内容 随着信息技术的发展,航空售票业也成为一个高度依赖信息业的行业。信息技术的飞速发展不仅使航空售票工作者逐渐摆脱了繁重的手工劳动、提高了工作效率,而且推着航空事业向现代化管理迈进。现代化的航空售票也应该有现代化的管理系统。在科技日益发达的今天,人们对旅游出行更加重视。因此,航空售票进行现代化管理就变的尤为重要。

毕业设计的主要任务就是设计实现一个航空售票信息管理系统,完成对航空公司的正常售票等业务的管理。具体任务如下:
(1)主要航空港基本信息管理;

(2)主要民航航线基本信息管理;

(3)售票信息管理;

(4)预定票信息管理;

(5)退票信息管理;

(6)飞机票价格(包括打折)管理;

(7)乘客保险信息管理;

(8)上述信息的统计及图形显示。

1.3 系统设计目标 此次毕业设计的主要任务就是设计实现一个航空售票信息管理系统,其中包括管理员对基本信息的管理,系统可实现对所有信息的添加、删除、修改功能,售票员可以根据乘客的要求进行售票和退票,乘客可以通过网上预订自己所要的票,并且可以查询自己预订票信息以及个人保险信息,管理员具有最高权限,可以对所有信息进行增删改查,售票员除了具有售票和退票权限外还具有查看所有信息权限。通过设计这个系统可以极大地提高售票效率和方便性,也可以极大地减少成本,不仅节省了大量的人力、物力、财力,也为历史数据的查询及使用提供了便捷。为航空公司更好的、更有效的正常售票提供了方便条件。

1.4 经济技术分析 (1)经济可行性 航空售票信息管理系统是整个航空管理系统中的一个子系统,是根据各部分管理的功能开发的。从任务量上来说最好由多人开发,虽然不需要投入太多的人力、物力、财力,但是这样可以保障功能的完善,质量的提高。如果航空公司没有一个规范严谨的售票信息管理系统,那么在面对众多乘客订票管理方面所需要消耗的人力是巨大的。仅乘客保险信息一项,就需要对乘客身份证号、保险类型、保险费、保险金额等许多数据进行枯燥的管理,很容易出错。尤其在类似于沈阳这样的人员众多的城市,数据量大的特点更是十分明显。工作量大、效率低下是航空售票信息管理长期以来的诟病。而通过计算机管理航空售票不仅节约了人力资源,而且提高了效率与准确性,使效益在质量上有了很大的飞跃。所以,从经济角度上来说是完全可行的。

(2)技术可行性 此系统应用JSP技术作为开发工具。Java语言具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中极为健壮的编程语言。JSP技术还拥有很多的优势,一次编写到处运行,系统的多平台支持,多样化和功能强大的开发工具支持,强大的可伸缩性。系统后台数据库采用MySQL。所以,从技术角度上来说是完全可行的。

1.5 本文结构 此论文共分为绪论、需求分析、概要设计、详细设计和系统测试几个章节。

在需求分析与概要设计章节中共分为用户需求分析、角色及其功能、数据流图、E-R图、模块图和设计环境及工具的介绍等几部分。本论文的重点之一将以用户的需求分析为主,从用户的角度出发使系统的功能与用户的要求达成一致。这需要全面地理解用户的各项要求,准确地表达用户需求,设计出系统的各项功能以解决“做什么”的问题。同时通过时序图、ER图、模块图等,更为详细的说明此系统的功能和此系统的设计思路。在本章节的最后还将说明本系统所使用的工具和设计环境,并简略的叙述其相关情况。

在详细设计章节中共分为数据库结构设计、程序流程图等几部分。本章节是此论文的另一重点,在此章节中将详细的对本系统进行介绍。数据库的结构设计是本次毕设的一个重要环节,设计出正确的数据库结构有助于准确的叙述出各个实体之间的关系,进而实现系统的各项功能。在本章还将通过程序流程图给出设计程序的基本思路,同时设计出准确、高效的程序代码。

在系统测试章节中共分为测试环境、测试结果、测试工具和测试界面等几部分。在此章节将对此系统的具体功能、运行情况等进行测试。通过此章节完成对系统的最后检测找出不足并加以完善。

2 需求分析 2.1 角色及其职能 本系统的角色是乘客、售票员和管理员。售票员除了具有售票和退票的操作权限外还有查询所有信息的权限,管理人员具有对任何信息进行增加,删除、修改和查询的操作,可以查询统计信息。乘客可以通过登录后查询和修改与自己有关的信息。

2.2 数据流图 经过初步的需求分析,得到系统的主要功能要求如下:
(1) 乘客查询自己的保险信息和订票信息;

售票员售票和退票以及查询相关信息;

管理人员可以对各项信息进行增加、删除、修改、查询操作。

根据分析得到的系统功能要求,设计出航空售票信息管理系统的数据流图,如图2.1所示。

航空售票信息管理系统 管理员 旅客 管理员 旅客 保险信息、售票信息、退票信息、价格信息、 预订票信息、航空港信息、航班信息、客机信息、机票信息 查询与管理 查询 结果 结果 图2.1航空售票管理信息系统的数据流图 2.3 概念结构设计 2.3.1 实体-联系(E-R)图 概念模型的表示方法很多,其中最为著名最为常用的是实体-联系方法(E-R图)。

实体-关系图方法是抽象和描述现实世界的有力工具。用 E-R图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。

系统E-R图如图2.2所示。

图2.2系统的E-R图 2.3.2 各实体详细E-R图 航 班 航班号 发出城市 起飞时间 到达城市 始发日期 座位总数 客机编号 剩余座位 飞行距离 图2.3航班的E-R图 机票编号 始发城市 终到城市 始发时间 航班编号 仓位类型 机票价格 座位编号 机票 图2.4机票的E-R图 身份 证 号 乘客姓名 乘客性别 联系电话 乘客类型 具体住址 航班编号 飞机编号 乘客 飞机类型 座位数量 所属机场 飞机 图2.5乘客和飞机的E-R图 机场编号 客机数量 机场类型 机场位置 机场性质 备注 公司名称 公司编号 机场 信誉度 所在城市 备注 航空公司 图2.6机场和航空公司的E-R图 实体的属性如下所示:
机票(编号(KEY)、始发城市、终到城市、仓位类型、始发日期、始发时间、航班编号、座位号、机票价格);

航班(编号(KEY)、始发城市、终到城市、始发日期、始发时间、客机编号、头等舱价格、公务舱价格、经济舱价格、剩余座位、座位总数、飞行距离);

乘客(乘客ID(KEY)、姓名、性别、联系方式、联系地址、乘客类型);

飞机(编号(KEY)、客机类型、所属航班、头等舱座位数、经济舱座位数、公务舱座位数、所属机场);

订票(机票编号(KEY)、乘客姓名、乘客类型、折扣比例、乘客ID、仓位类型、航班编号、始发城市、终到城市、始发日期、机票价格、保险类型);

航空公司(公司编号(KEY)、公司名称、信誉度、所在城市、备注);

机场(编号(KEY)、名称、客机数量、机场位置、机场性质);

退票(机票编号、乘客ID、姓名、机票类型、机票日期、应退金额);

机票价格(编号(KEY)、客运季节、普通乘客折扣、会员折扣比例)。

2.4 设计工具环境 2.4.1 Java语言 Java语言是1995年由Sun公司开发的编程语言,它的出现是源于对独立平台语言的需要。Java语言是目前使用最为广泛的编程语言之一,它具有简单、面向对象、稳定、与平台无关、多线程、动态等特点。

2.4.2 Eclipse开发平台 Eclipse 是基于Java的、开放源代码的可扩展开发平台,它最初由IBM公司投入巨资开发,后来被捐赠给国际开放源代码团体。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括了Java开发工具(Java development Tools,JDT)。虽然大多数用户很乐于将Eclipse当作Java IDE 来用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许开发人员构建与Eclipse环境无缝集成工具。

Eclipse可以集成不同的软件工具开发供应商的产品,任何开发工具厂商都可以将他们的开发工具或组件加入到Eclipse 平台,用户可以通过相同的接口使用不同的工具。也就是说,可以在同一集成环境中同时使用不同开发商开发的软件工具。由于Eclipse具有这种整和不同工具的特性,开发者可以综合性能调节、监测、调试等处理,从而可以在较短的时间内开发出更高性能和质量的应用软件。因此,Eclipse 平台不仅得到了许多开发者和新兴的中小企业软件公司的支持而且得到IBM、Sun、Oracle等大型软件公司的支持。

2.4.3 MySQL MySQL是一个精巧的SQL 数据库管理系统,以操作简便著称。由于其强大的功能、丰富的应用编程接口以及精巧的系统结构设计,在基于数据库的应用软件开发中得到了广泛的应用。MySQL 是客户机/服务器模式的分布式系统,由SQL服务器、客户端、管理工具和应用编程接口等组成。它平台无关性的优点使其能在多个操作系统上运行。此外,MySQL 还是多线程的,不仅具有运行速度快,可处理大批量数据等特点,还支持多CPU使用。

2.4.4 JSP 系统用JSP技术作为开发工具。JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

1. JSP技术的优势 (1)JSP的效率和安全性更高。JSP在执行之前先被编译成字节码,字节码由Java虚拟机解释执行,比源码解释的效率高;
服务器还有字节码的Cacher(缓存)机制,能提高字节码的访问效率。第一次调用JSP网页速度可能稍慢,因为它被编译成缓存内容,以后就快的多了。

(2)JSP组件方式更方便。绝大多数JSP页面依赖于可重用的、跨平台的组件来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使用这些组件为更多的使用者或者客户所使用。基于组件的方法加速了总体开发过程,并且使用各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

(3)JSP适应平台更广。几乎所有平台都支持Java,JSP+Javabean可以在所有平台下畅通无阻。从一个平台移植到另一个平台,JSP和Javabean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。

(4)简单标识简化页面开发。Web页面开发人员不一定都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化Javabean组件,设置或者检索组件属性,下载Applet以及执行使用其他方法更难于编码和耗时的功能。

3 概要设计 3.1 总体结构设计 航空售票管理信息系统共分为航空港基本信息管理、民航航线基本信息管理、售票信息管理、预定票信息管理、退票信息管理、飞机票价格(包括打折)管理、乘客保险信息管理和统计信息及图形显示几个模块。其中管理员有添加、删除、修改权限。具体功能模块如图3.1所示。

图3.1总体模块图 3.2 数据库逻辑设计 数据库是系统的后台部分,用来存储信息以供前台调用和输出。数据库设计的是否合理将直接影响到系统的稳定性、安全性及可维护性,同时也会影响到后期的编码。在进行了需求分析和概要设计后,接下来将详细介绍系统中各部分信息的存储结构。

3.2.1 人员信息 人员信息包括乘客信息表、售票人员信息表、管理员信息表;
具体表格如表3.1,表3.2,表3.3所示。

表 3.1管理人员信息表 属性名 数据类型 长度 允许空 字段描述 Manager_Id Varchar 10 × 管理员编号 Name Varchar 15 √ 姓名 Password Varchar 10 × 密码 *注:管理人员信息表主要存储系统管理人的相关信息,用于管理员登录系统时验证身份,登录系统后,可以修改数据库的任何信息。主键:Manager_Id。

表 3.2售票员信息表 属性名 数据类型 长度 允许空 字段描述 Salemen_id Varchar 10 × 售票员号 Password Varchar 10 × 密码 Salemen_name Varchar 15 √ 姓名 *注:售票员信息表主要存储航空公司所有售票员的相关信息,用于系统管理员登录系统时验证身份,登录系统后,可以进行售票和退票以及查询操作。主键:Salemen _id。

表 3.3 乘客信息表 属性名 数据类型 长度 允许空 字段描述 Cust_Id Varchar 10 × 乘客编号 CustomerID Varchar 18 √ 身份证号 Cust_name Varchar 15 √ 姓名 sex Varchar 2 √ 性别 Cust_type Varchar 12 √ 乘客类型 Cust_tel Varchar 15 √ 联系方式 Password Varchar 10 √ 密码 *注:乘客信息表主要是对乘客信息的存储,添加乘客信息存入该表,乘客用户登录时验证输入信息是否正确,删除和修改乘客信息时即删除和修改该表中对应的相关信息。主键:Cust_id 。

3.2.2 机票信息 机票信息包括订票信息表、乘客保险信息表、机票信息表、航班信息表、客机信息表、航空港信息表、保险信息表和机票价格信息表,这些机票信息表用来存放与机票相关的所用操作信息如表3.4,表3.5,表3.6,表3.7,表3.8,表3.9,表3.10,表3.11所示。

表3.4客机信息表 属性名 数据类型 长度 允许空 字段描述 planeNo Varchar 10 × 客机编号 airlineNo Varchar 15 × 航班项目 planeType Varchar 8 √ 客机类型 commonNum Integer 8 √ 经济舱座位数 commercialNum Integer 8 √ 公务舱座位数 firstNum Integer 8 √ 头等舱座位数 suoshufly Varchar 15 √ 所属航空港 description Varchar 30 √ 备注 *注:客机信息表中存储了每架客机的详细信息,登录系统后可以查询该表中的相关信息。为管理人员统计客机数据提供信息。主键:planeNo。

表3.5订票信息表 属性名 数据类型 长度 允许空 字段描述 ticketNo Varchar 10 × 机票编号 customerName Varchar 10 √ 乘客姓名 customerType Varchar 15 √ 乘客类型 discount Integer 8 √ 折扣比例 airlineNo Varchar 10 × 航班编号 departCity Varchar 10 √ 始发城市 arrivalCity Varchar 10 √ 到达城市 ticketDate Date 10 √ 机票日期 serviceType Varchar 15 √ 仓位类型 ticketPrice Integer 8 √ 机票价格 safetype Varchar 10 √ 保险类型 *注:订票信息表中记录了乘客订票的信息,每有一位乘客订票,就在该表中插入一条信息,为管理员统计数据提供信息。主键:ticketNo。

表 3.6航空港信息表 属性名 数据类型 长度 允许空 字段描述 hangkong_id Varchar 10 × 航空港编号 hangkong_name Varchar 15 √ 航空港名称 planenum Integer 8 √ 飞机数量 position Varchar 12 √ 具体位置 application Varchar 12 √ 航空港性质 xinyudu Varchar 10 √ 信誉度 description Varchar 30 √ 备注 *注:航空港信息表中记录了沈阳各个航空港的基本信息,每一个新增加的航空港信息都会添加到这里,为管理员查询信息提供信息,管理员可以对表进行添加、删除、修改和查询等操作。主键:hangkong_id。

表3.7航班信息表 属性名 数据类型 长度 允许空 字段描述 airlineNo Varchar 10 × 航班编号 departCity Varchar 10 √ 始发城市 arrivalCity Varchar 15 √ 到达城市 departDate Date 15 √ 始发日期 dapartTime Varchar 12 √ 始发时间 arrivalTime Varchar 15 √ 到达时间 planeNo Varchar 10 × 客机编号 commonPrice Integer 4 √ 经济舱价格 commercialPrice Integer 4 √ 公务舱价格 firstPrice Integer 4 √ 头等舱价格 distance Integer 8 √ 飞行距离 ticketnum Integer 4 √ 已订票数量 maxpassagernum Integer 4 √ 最大乘客人数 *注:航班信息表中存储了所有航班的相关信息,管理员可以对该表的信息进行增删改查等操作,其他人员只有查询权限。主键:airlineNo。

表3.8 乘客保险信息表 属性名 数据类型 长度 允许空 字段描述 safeid Varchar 10 × 保险编号 customerID Varchar 18 × 乘客身份证号 customerName Varchar 10 √ 乘客姓名 safemoney Integer 4 √ 保险费 safetime Varchar 10 √ 保险期限 safepei Integer 8 √ 保险金额 safetype Varchar 15 √ 保险类型 *注:乘客保险信息表中存储了乘客买航空保险的信息,乘客在订票的同时如果选择了买保险会把此信息插入进来。乘客可以通过身份证号查询自己的保险信息。主键:safeid。

表3.9飞机票价格信息表 属性名 数据类型 长度 允许空 字段描述 Price_id Varchar 10 × 编号 seasontype Varchar 10 √ 客运季节 vipdiscount Integer 4 √ VIP折扣 commondiscount Integer 4 √ 普通乘客折扣 description Varchar 30 √ 备注 *注:该表中存储各个客运季节不同类型的乘客将享受不同的折扣优惠信息,由管理员对该表进行添加,修改和删除,售票人员和乘客可以对飞机票价格信息进行相关查询。主键:Price_id。

表3.10 机票信息表 属性名 数据类型 长度 允许空 字段描述 ticketNo Varchar 10 × 航班编号 departCity Varchar 10 √ 始发城市 arrivalCity Varchar 10 √ 到达城市 departDate Date 10 √ 始发日期 departTime Varchar 10 √ 始发时间 airlineNo Varchar 10 × 航班编号 serviceType Varchar 10 √ 仓位类型 siteNo Integer 8 √ 座位号 ticketPrice Integer 8 √ 机票价格 ticketNum Integer 8 √ 机票数量 description Varchar 30 √ 备注 *注:该表中存储了所有机票的详细信息,由管理员对该表进行添加,修改和删除,乘客和售票员可以对该信息进行相关查询。主键:ticketNo。

表3.11 保险信息表 属性名 数据类型 长度 允许空 字段描述 safeid Varchar 10 × 编号 safetype Varchar 15 √ 保险类型 safemoney Integer 8 √ 保险费 safetime Varchar 15 √ 保险期限 safepei Integer 8 √ 保险金额 description Varchar 30 √ 备注 *注:该表中存储航空公司为乘客指定的保险详细信息,由管理人员对该表进行添加,修改和删除,售票员和乘客可以对保险信息进行相关查询。主键:safeid。

4 详细设计 4.1 系统部分时序图 时序图是通过表示随着时间的推移所发送的消息序列,来体现对象之间的动态协作关系,它主要是为了表示对象之间的交互过程,即对象之间发送消息的顺序,以及引起的一系列事件。

图4.1登录人员登录系统时序图 图4.1为登录人员登录系统主界面的时序图,登录人员先在系统的登录界面输入登陆信息,系统对登录信息进行判断,信息不正确则返回错误提示,信息正确便可进入操作者所属权限下要执行的操作。该系统设定了三种登录人员,即售票员、管理员和乘客,并为他们设定了各自的访问权限。

1:选择菜单 7:显示改后信息 6:保存新信息息 5:填写修改信息 4:显示界面 3:选择 2:列出菜单 管理人员 newtickets mainmenu1menuu menu tickets 图4.2管理人员对信息进行操作的时序图 图4.2为登录人员登录系统后进行各种操作的时序图,登录人员进入操作界面先在操作界面选择何种操作,更正后的信息会保存在数据库里。例如,选择的是修改信息就会将更新后的信息显示在页面上。

4.2系统的流程设计 系统的流程设计对系统的编码起着至关重要的地位,根据系统的功能要求,做出几个重要的功能的流程图。

(1)用户登录模块 为了安全性,进入本系统需要(包括“管理员“和“售票员”)身份验证,只有用户通过帐号与密码一致性的验证,才能进入系统。登录情况有三种:一是帐号与密码一致,二是帐号不存在,三是密码不正确,每一种情况系统都会有提示。另外,用户也可以选择取消登录。

当输入帐号时,系统会自动搜索数据库(使用SELECT函数)辨别此用户是“管理员“还是“售票员”,并且显示出来,倘若是管理员,那么在用户管理模块中可以修改用户密码以及增加新一般用户,否则只能修改密码。设计出的登录流程图如图4.3所示。

结束 图4.3系统登录流程图 (2)售票模块 该流程详细描述售票员售票功能,当用户发出订票请求后,系统搜索数据库中相应的机票信息,如果没找到则该机票已经售完。如果找到相应的机票信息,系统会将相关机票售予该用户。设计出的售票流程图如图4.4所示。

图4.4售票流程图 4.3系统功能的详细实现 下面介绍系统的详细功能设计。

(1) 用户登录 系统登录界面如图4.5所示。在这里设置了一个图片验证码,可以更好的保护用户的信息。当用户输入正确的用户账号和密码以及验证码时,系统会跳转到另一个界面,也就是主窗口。若用户名密码不正确,系统将给出提示:“您输入的用户名和密码不正确,请您重新输入”,然后继续重新输入。

图4.5用户登录界面 (2) 管理员主界面 用户登录后,根据登录的帐号进行判断:若是admin(管理员),则可以对系统中的所有信息进行增加、删除、修改和查询等操作,如图4.6所示。图4.7所示的是管理员对航班信息的管理。

图4.6主界面(管理员) (3) 售票员售票 用户登录后,根据登录的帐号进行判断:若是salemen(售票员),则可以进行售票和退票以及查询机票信息等操作,图4.8所示售票员根据乘客请求输入机票的查询条件,从数据库中找到相应的机票,当售票员点售票时,将弹出如图4.9所示的界面,提示输入乘客的个人信息以及一些订票相关选项,乘客信息输入完成点提交信息时,会显示售票成功。

图4.7查询航班(管理员) 图4.8 查询机票(售票员) (4) 售票员退票 当乘客需要退票时,首先提供给售票员自己机票的编号,售票员根据机票编号从数据库查到关于此票的订票信息如图4.10所示,当点退票时,数据库中该票的信息会立刻更新,同时该类机票的数量也会加一,以便及时将此票售予下位乘客。在退还票价时,要扣掉机票价格20%的手续费,如图4.11所示。

(5) 乘客预订机票 乘客如需预定机票,可以直接通过互联网在网上预订机票,预定机票过程类似于售票过程,不同的是预定机票不需要在预定时付钱,一旦该票被预定了就不能被售出,如果乘客有什么特殊情况也可以上网取消预订,乘客可以在网上注册成为我公司的会员用户,可以享受更超值的订票优惠。

图4.9 输入乘客信息(售票员) 图4.10退票界面(售票员) 图4.11 退票金额(售票员) 4.4详细设计中关键技术的实现 以下主要介绍主要功能的关键技术的实现过程。

4.4.1数据库的连接 数据库连接的建立及关闭对系统而言是耗费系统资源的操作。在多层结构应用程序环境中,这种耗费资源的动作对系统性能的影响很大。在传统的数据库连接方式中,一个数据库连接对象均对应一个逻辑数据库连接,每次操作都打开一个逻辑连接,使用完后再关闭连接,这样的反复操作将造成系统性能的急剧下降。

数据库连接池是应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请、使用和释放,当连接的数量大于连接池中的连接数时,可以动态地根据情况增加或减少池中的连接数。

用JDBC(Java DataBase Connectivity)连接MySQL数据库需要经过下面几个步骤:
(1) (2)载入JDBC驱动:
Class.forName(“org.gjt.mm.mysql.Driver“); (3) 建立与数据库的连接:要建立与数据库的连接,首先要创建指定数据库的URL。利用DriverManager的getConnection方法连接数据库的URL对象,URL格式如下:
Stringurl=(jdbc:mysql://localhost:3306/my database?user=root&password=esoft&useUnicode=true&characterEncoding=gb2312”); (4) 调用执行HQL语句。

(5) 结束连接。

4.4.2验证码的实现 为防止用户利用机器自动登录以及灌水,故而采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号生成一幅图片,图片里加一些干扰元素(防止OCR),由用户肉眼识别其中的验证码信息并输入表单,再提交给网站验证,验证成功后才能使用某项功能。

验证码的实现流程是:
(1)服务器端随机生成验证码字符串,保存在内存中,并写入图片发送给浏览器端显示。

(2)浏览器端输入验证码图片上的字符,然后提交服务器端,提交的字符与服务器端保存的字符进行比较,若一致就继续,若不一致就显示错误,不能进入操作的主界面。

攻击者编写的robot程序很难识别验证码字符,所以不能顺利完成登录以及其它操作。用户可以识别填写,这就实现了阻挡攻击的作用。就实际的效果来说,验证码只是增加攻击者的难度,而不可能完全的防止。

5 系统测试与调试 当程序完成时,对程序的测试必不可少,为使程序有效运行,测试与调试是唯一的手段,测试的目的是为了发现尽可能多的缺陷。这里的缺陷是一种泛称,它可以指功能的错误,也可以指性能低下、易用性差等。

5.1软件测试常识 软件测试过程按测试的先后次序可分为4个步骤进行:单元测试、集成测试、确认测试和系统测试,最后进行验收测试。

单元测试:分别完成每个单元的测试任务,以确保每个模块能正常工作。单元测试大量的采用了白盒测试方法尽可能发现模块内部的程序差错。

集成测试:把已测试过的模块组装起来,进行集成测试。其目的在于检验与软件设计相关的程序结构问题。这是较多的采用黑盒测试方法来设计测试用例。

确认测试:完成集成测试以后,要对开发工作初期制定的确认准则进行检验。确认测试是检验所开发的软件能否满足所有功能需求的最后手段,通常采用黑盒测试的方法。

系统测试:完成确认测试以后,给出的应该是合格的软件产品,但为检验它能否与系统的其它部分(如硬件、数据库及操作人员)协调工作,需要进行系统测试。

验收测试:检验软件产品质量的最后一道工序是验收测试,它突出了客户的作用,同时软件开发人员也应有一定程度的参与。

鉴于程序自身的特点做了单元测试和集成测试。

5.2系统功能测试计划 软件测试并不单纯等同于程序测试。软件测试应该贯穿整个软件定义与整个开发周期。因此需求分析、概要设计、详细设计以及程序编码等各个阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应该是软件测试的对象。

在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验证中,任何一个环节发生了问题都可能在软件测试中表现出来。

在这部分中,为了确保每个阶段功能的实现,在系统完成后,每个分支都走了一遍,也有发现的问题,但经过改正和查阅资料都解决了。

5.3系统功能模块测试 5.3.1管理人员模块的测试 管理员进入系统主界面后,可以点击添加信息,在弹出的下一个页面中选择要添加哪一类信息,在弹出的信息表中键入相应的数据,点击确定按钮,系统将对输入信息进行判定,判断输入是否为空及输入信息类型是否符合要求,如果正确系统将返回操作成功提示界面,否则返回错误提示信息。

例如:输入信息点击确定按钮返回操作成功提示后,查询该表在数据库中的信息,如果表中存在添加信息,就表明测试成功。

5.1.2乘客模块测试 乘客用户进入自己所有权限的操作界面后,点击要查询的项目,在弹出请输入身份证号码后就可以查询到自己的相关信息。若该项目没有记录则输出为空。

例如,要查询自己预订机票的情况,就要点击个人预订信息查询输入身份证号和密码就显示出自己所有预订机票的相关信息,这样就表明测试成功。

5.1.3售票员模块测试 售票员进入该权限下的主界面后,根据乘客的订票需求通过售票系统买票给乘客以及退票,还可以查询各种与机票相关的信息,成功获得信息证明测试正确。

5.4调试中的问题 (1)在访问系统时,发现不用登录直接访问程序中的Servlet或者某些jsp页面也可以直接进入主页面,最后为了保证访问的安全性,除了登录页面其他页面全放在WEB-INF目录下,并且在Servlet加判断语句用户是否登录,如果没登录自动跳会登录页面。

(2)在系统的用户登录模块,开始时不能进行信息的提示,如果不输入用户名、密码或验证码中的某一项只能是进入错误的界面,后来加上了判断的语句,就能及时提示用户填写否则不能进入下一个界面。

(3)在刚开始具体编写程序时,经常把整型和字符串相混淆,还有一些类似的错误。后来经过熟悉以后就变得越来越熟练。

(4)在编写代码的初期,出现错误最多的地方就是用SQL语句实现添加、修改、查询和删除数据。首先是SQL语句书写错误,由于数据库表中各列的数据类型不同,所以在书写SQL语句时需要注意相关列的数据类型是否一致,其次是执行这些语句时出现的错误,例如executeQuery()方法只能执行查询语句,其余的操作都需调用executeUpdate()方法来执行,刚开始对这两个方法不是很理解,总是调用错误导致功能无法实现。

(5)在更新信息时,更改的信息如果是汉字就会出现乱码,后来才发现没有在程序中添加支持汉语的语句(Request.setCharacterEncoding( ))。

结论 本毕业设计是开发一个航空售票系统,实现查询乘客需求的航班信息和当前航班的售票订票情况,实现订票,对机票数据和乘客的信息进行管理,实现更新航班信息和航空公司的信息,按乘客要求进行退票处理,管理退票数据,进行数据的备份和恢复的功能。

通过对开发工具的学习和对一些算法的研究设计,培养了自学能力和独立分析、解决问题的能力。总之,在毕业设计过程中收获颇多,这里有知识的提高,经验的积累,也有成功后的喜悦。这些都会对未来的学业及事业之路有着非比寻常的意义。

在设计过程中,发现需要用到很多以前学过的知识,特别是软件工程的方法,从需求分析、软件设计、软件实现到后期的测试,都做得一丝不苟,翻阅资料,进行测试,不断发现问题、分析问题、解决问题,从而对系统进行完善与维护。期间,自己遇到很多问题,不断摸索,解决各种问题,逐渐了解并初步掌握了这些技术,提高了自己的动手操作能力,加深了信息系统和数据库编程的理解。

刚接到毕业设计题目的时候,感觉不知所措,因为从没买过机票,对售票系统不太了解,最后通过上网查阅各种相关售票资料以及在指导老师的指导下,对题目有了一定的认识。在开发的过程中也遇到许多的问题。从这些问题可以看出来,在开发软件的过程中,对需要用到的技术要有充分的了解之后才能开始编写,而不是仅仅因为能够实现目前的功能就不加思索的开始编写代码。

本设计实现了系统的主要功能,而在退票管理和航班调度功能方面需要进一步完善;
在实际的售票中,由于各个售票点同时在售票,因此需要重视系统同步问题,这些不足都是要在以后的工作中逐步完善的。

参考文献 [1] 卢秉亮. Microsoft SQL Server2000数据库服务器安全管理技术分析[J]. 计算机应用研究,Vol 19 (增刊), P82-P84, 2002年12月 [2] Oracle9i数据库的安全性策略2005年8月,沈阳航空工业学院学报,第22卷,第4期 [3] 申吉红等.JSP 课程设计案例精编[M].北京:清华大学出版社,2007 [4] 教务管理信息系统的开发2002年3月,沈阳航空工业学院学报,第19卷,第1期 [5] 卢潇主. 软件工程[M]. 北京: 北京交通大学出版社, 2005 [6] 教学计划管理MIS的设计与实现2003年3月,沈阳航空工业学院学报,第20卷,第1期 [7] 学生成绩管理及学费管理信息系统的软件开发2003年5月,沈阳航空工业学院学报,第20卷,第2期 [8] 史斌星, 史佳. Java基础编程贯通教程[M]. 北京: 清华大学出版社,2007 [9] 耿祥义. Java基础教程[M]. 北京:清华大学出版社, 2006 [10] 孙卫琴. Java面向对象编程[M]. 北京:电子工业出版社, 2007 [11] 希尔德. Java参考大全[M]. 北京: 清华大学出版社, 2006 [12] 许家珆,曾翎,彭德中. 软件工程:理论与实践[M]. 北京: 高等教育出版社2004 [13] 一个基于C/S的考试考场编排MIS的设计与实现2003年2月,微处理机,第1期,P40-P43 [14] 教师教学质量评估信息系统设计与实现2003年4月,微处理机,第2期,P31-P32,总98期 [15] 王国辉等.JSP数据库系统开发案例精选[M].北京:人民邮电出版社, 2006 [16] 胡燕.数据库技术及应用[M]. 北京: 清华大学出版社, 2006 [17] (美)W alter Savitch. Absolute Java.USA:Addison-Wesley.,2004 致 谢 经过三个月的努力拼搏,本次毕业论文设计已经接近尾声,作为一个本科生的毕业论文,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。

在论文写作过程中,得到了XX老师的亲切关怀和耐心的指导。X老师严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着作者。从课题的选择到项目的最终完成,X老师都始终给予作者细心的指导和不懈的支持。多少个日日夜夜,X老师不仅在学业上给以精心指导,同时还在思想、生活上给以无微不至的关怀,除了敬佩XX老师的专业水平外,卢老师治学严谨和科学研究的精神也是永远学习的榜样,并将积极影响今后的学习和工作。在此谨向卢老师致以诚挚的谢意和崇高的敬意。

     在论文即将完成之际,作者的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了无言的帮助,在这里请接受诚挚的谢意!最后还要感谢含辛茹苦的父母,谢谢你们! 另外,要感谢计算机学院领导,为毕业设计提供了场地,还要感谢计算机学院微机室的老师们,正是他们的不辞辛劳、早出晚归,才使毕业生们拥有了一个良好的毕业设计环境,有充裕的时间来完成大学期间的最后一项任务—毕业设计。

再次感谢各位老师以及同学。

Tags:

搜索
网站分类
标签列表