基于Java的航空订票系统的设计与实现

摘 要
伴随着居民生活水平的提高,人们更加追求物质和精神上的生活,出门旅行便成为一种寻常的休闲活动。随着人们旅行范围遍布全球,航空出行逐渐成为了主流旅行方式。由于目前航班信息种类繁多,因此设计一个航空订票系统为用户提供航班信息,可以更好的帮助用户购买机票,满足出行需求。
该系统主要使用Java语言和MySQL数据库进行开发,主要功能为订单客户管理,航空机票管理,航班信息管理,人员用户管理,机型管理。管理员可以控制航班的相关信息,包括机票信息,机型信息,航班信息等。而用户可以通过登录本系统,进行机票的筛选,选择出适合本人的航班并购买机票。与其他订票系统相比,本设计能够更加清晰直观的满足游客购票需求。

关键词:航空订票系统;Java;JSP;MySQL;Tomcat

Abstract
With the improvement of residents’ living standards, people are more pursuing material and spiritual life, and traveling has become a common leisure activity. As people travel globally, aviation has gradually become the mainstream mode of travel. Due to the wide variety of flight information currently available, designing an air reservation system to provide users with flight information can better help them purchase tickets and meet their travel needs.
The system is mainly developed using Java language and MySQL database, and its main functions include order customer management, air ticket management, flight information management, personnel user management, and aircraft type management. Administrators can control flight related information, including ticket information, aircraft type information, flight information, etc. Users can log in to this system to filter their flight tickets, select the flight that suits them, and purchase the ticket. Compared with other ticket booking systems, this design can more clearly and intuitively meet the ticket purchasing needs of tourists.

Keywords: Airline Reservation System; Java; JSP; MySQL; Tomcat
目 录
1 引 言 1
1.1 课题开发的背景和现状 1
1.2 课题开发的意义 1
2 相关技术介绍 3
2.1 Java语言 3
2.2 JSP技术 3
2.3 JDBC技术 4
2.4 Tomcat服务器 4
2.5 MySQL数据库 4
2.6 本章小结 4
3 系统需求分析与可行性分析 5
3.1 编程与运行环境 5
3.1.1 系统运行环境 5
3.1.2 编程环境 5
3.2 可行性分析 5
3.2.1 技术可行性 6
3.2.2 经济可行性 6
3.2.3 操作可行性 6
3.3 系统业务功能需求分析 6
3.3.1 普通用户功能需求分析 6
3.3.2 管理员功能需求分析 7
3.4 本章小结 8
4 系统总体设计 9
4.1 系统总体结构设计 9
4.2 系统功能结构设计 9
4.2.1 登录模块设计 9
4.2.2 用户管理模块设计 9
4.2.3 航班管理模块设计 9
4.2.4 订票管理模块设计 10
4.2.5 订单管理模块设计 10
4.2.6 留言评论模块设计 11
4.2.7 个人中心模块设计 11
4.3 数据库设计 11
4.3.1 概念模型设计 11
4.3.2 逻辑结构设计 12
4.4 本章小结 15
5 系统详细设计及实现 16
5.1 登录模块实现 16
5.2 用户管理模块实现 18
5.3 航班管理模块实现 19
5.4 订票管理模块实现 20
5.5 订单管理模块实现 22
5.6 留言评论模块实现 24
5.7 个人中心模块实现 25
5.8 本章小结 26
6 系统测试与分析 27
6.1 测试原则 27
6.2 系统测试 27
6.2.1 登录模块测试 28
6.2.2 用户管理模块测试 29
6.2.3 航班管理模块测试 29
6.2.4 订票管理模块测试 30
6.2.5 留言评论模块测试 31
6.2.6个人中心模块测试 31
6.3 本章小结 33
7 总 结 34
7.1 工作总结 34
7.2 展望 34
参考文献 35
致 谢 36

1 引 言
1.1 课题开发的背景和现状
随着网络技术的迅速发展,数据分析给我们的生活带来了极大的方便。在航班订票这一领域,航班的乘坐人数信息和飞机的起飞降落时间是乘客最关心的数据,如何简洁明了有效地展现与航班有关的各种信息对于机务工作者来说是至关重要的。近年来,因为航班数字信息化的不断推进和航班相关的领域充分利用现代技术,各航空公司把各种机型的航班信息等大量数据通过数据传输的方式对外公布。我们可以将公布的数据进行整理归类,然后对数据进行分析,这样我们就能够设计一款方便旅客查询航班各种信息的航空订票系统。
全国航空行业前景一直都很广阔,这里也统计了去年航空行业整体的发展水平。
航空订票系统作为航空公司的核心业务系统之一,对公司的收益和竞争力有着重要影响。研究航空订票系统可以帮助企业发现商业机会,通过提供更加便捷、高效、个性化的订票服务来吸引用户,并增加公司的营收和市场份额航空订票系统直接关系到用户的出行体验。研究航空订票系统可以帮助我们了解用户需求和期望,针对性地改进系统界面、交互设计和功能支持,从而提升用户的满意度和忠诚度[1]。
目前关于基于Java的航空订票系统的研究相对较少,尤其是在特定功能、性能优化和系统设计等方面的深入研究较少。因此,需要更多不同领域的研究者投入到这个领域,提供更多丰富的视角和研究内容。当前的研究主要侧重于系统架构、用户体验、系统安全等方面,缺乏对不同研究领域的综合性研究。需要进行跨学科的合作研究,将技术、管理、运营等因素综合考虑,从而提供更全面、综合的研究结果。
1.2 课题开发的意义
一个航空订票系统的研发,对于航空公司来说,能够让机务人员办公时方便为旅客查询航班信息,例如,何时飞机起飞降落,哪架飞机晚点,哪趟航班乘客已经坐满。这样就会使机务人员工作更加高效。对于旅客来说,航空订票系统的研发,能够让旅客居家就可以登录航空网站,查询到自己想要的航班信息,省去了旅客去机场前台寻求服务的时间,让旅客不必因为订票而来回奔波。所以,航空订票系统的研究与实现,无论对于航空公司,还是对于旅客,都是非常有帮助的一个系统。

2 相关技术介绍
航空订票系统主要基于Java来实现的。相关技术还有JSP、JDBC、Tomcat、MySQL等技术。本章主要对设计所要使用的开发工具及相关技术进行介绍。
2.1 Java语言
Java在企业应用开发中广泛应用,如应用程序、客户端和服务器端的Web程序。同时,Java也在其他领域内被广泛使用,如嵌入式设备、游戏开发和移动应用开发等。Java的特点包括跨平台、面向对象、简单易用、可靠和安全等,这些优势使得Java适合于各种不同规模和类型的应用开发。Java还拥有庞大的社区和强大的生态系统,各种开发框架、工具和库都可以在Java平台上快速构建应用程序。Java的成功也得益于它的良好跨平台性。Java程序可以在不同的操作系统(如Windows、Mac OS X、Linux和UNIX)上运行,而无需进行特殊的修改。这使得Java成为企业级应用开发中最受欢迎的编程语言之一[2]。
2.2 JSP技术
JSP(Java Server Pages)是一种在Java Web应用程序开发中广泛使用的技术。它允许开发人员将动态内容和静态内容混合在同一个页面中,以生成动态的HTML或XML文档JSP允许开发人员在页面中嵌入Java代码,以及使用内置对象(如请求、响应、会话等)来处理和生成动态内容。这使得开发人员能够根据用户请求的不同生成不同的页面内容,提供更个性化的用户体验[3]。
由于JSP是基于Java的,开发人员可以利用Java的丰富特性和强大的功能来处理复杂的业务逻辑和数据处理。同时,开发人员还可以轻松地与其他Java技术(如JavaBean、Servlet等)进行集成。JSP使用标签和脚本来将页面的展示逻辑与业务逻辑分离,使开发人员能够更好地组织和维护代码。这种分离使得设计师和开发人员可以并行工作,提高开发效率。JSP可以与各种Java开发框架和第三方库进行集成,如Spring、Struts、Hibernate等。这为开发人员提供了更多的选择,使得开发更加高效和灵活[4]。
2.3 JDBC技术
JDBC(Java Database Connectivity)是Java语言中用于连接和操作关系型数据库的一种标准API。通过JDBC,开发人员可以使用驱动程序建立与数据库的连接。连接管理器负责管理连接的创建、维护和释放。通过连接管理器,开发人员可以从连接池中获取数据库连接,并在使用完毕后将其返回连接池,以便其他请求使用。语句和结果集(Statement and ResultSet):使用JDBC,开发人员可以创建并执行SQL语句。通过Statement对象,可以执行包括查询、插入、更新、删除等操作。执行查询语句后,可以通过ResultSet对象获取查询结果集,并对结果进行迭代和处理。JDBC是Java语言中的标准API,具有很好的跨平台性。开发人员可以在不同的操作系统和数据库平台上使用相同的代码,而无需进行修改[5]。
2.4 Tomcat服务器
Apache Tomcat(简称为Tomcat)是一个开源的Java Servlet容器,用于处理Java Web应用程序的请求和响应。它是Apache软件基金会的一个开源项目,被广泛用于部署和运行Java Web应用程序。Tomcat是一个强大而灵活的Java Web容器,用于部署和运行Java Web应用程序。它提供了许多功能和特性,使得开发者能够轻松地构建、部署和管理Java Web应用程序。由于其开源性质和广泛的社区支持,Tomcat成为了Java Web开发中最受欢迎的服务器之一。
2.5 MySQL数据库
MySQL是一种开源的关系型数据库管理系统(RDBMS),它被广泛应用于Web开发和其他数据驱动的应用程序中。MySQL具有高度可靠性和稳定性,是经过广泛测试和验证的数据库系统。它能够处理大量的并发连接和高负载,具有低故障率和高可用性。MySQL遵循SQL标准,与其他数据库系统兼容。它支持多种编程语言的开发接口,如Java、Python、PHP等,方便开发人员使用自己熟悉的编程语言进行数据库开发和集成。它支持多种存储引擎,如InnoDB、MyISAM等,开发人员可以根据具体需求选择最适合的存储引擎来优化数据库性能[6]。
2.6 本章小结
在这一章里,重点阐述了该软件的开发平台、开发技术的特征,并对该软件所采用的技术及其实现方式做了详尽的阐述。其中包括对Java技术、JSP技术、MySQL数据库的特性、适用范围等方面进行详细介绍。
3 系统需求分析与可行性分析
在当今互联网行业,对用户需求进行合理分析并评估项目可行性,是企业和程序员必备的能力。这一过程对于软件项目的开发至关重要,它不仅帮助企业确定需求,还确保项目能够成功启动。
3.1 编程与运行环境
3.1.1 系统运行环境
航空订票系统采用Java语言进行开发、服务器选择Tomcat、数据库采用MySQL。本项目采用原生的Java代码,严格遵循开发的JavaEE规范,前端采用JSP进行开发。
3.1.2 编程环境
航空订票系统采用idea、MySQL数据库、Navicat等开发工具,采用Java语言、JSP进行开发。
3.2 可行性分析
可行性研究是一个非常重要的项目立项评审工作,它包括了从技术层面、经济层面和操作层面上对项目进行的分析与评价,从而确定软件项目的开发价值和实现难度,并判断该项目能否给企业带来经济收益。
在技术层面上,为了判断本课题的技术可行性,必须对本课题的技术路线、开发工具、开发周期等进行分析与评价。从经济学角度来看,要从投资成本、预期收益、市场需求等多个角度来判断该工程是否可行。从运作层面来看,要从运作环境、团队合作、客户服务等多个角度来决定其运作的可行性。这三个方面的分析,对于一个企业来说,都是很有必要的。要想做好项目的可行性分析,首先要做好项目的可行性分析,这样才能为项目的开发提供一个科学的基础。同时,由于项目自身的特性以及不断变化的市场环境,需要对项目进行不断的更新与改进。只有综合考虑技术、经济、运营等多种因素,并时刻关注和响应市场的变化,才能保证软件项目的成功。
3.2.1 技术可行性
Java是一种成熟的,应用广泛的程序设计语言,具有很强的生态系统,并且有大量的开发资源。开发基于Java的航空订票系统具有较高的技术可行性,可以利用Java框架和工具来实现系统的各个组件和功能[7]。
3.2.2 经济可行性
在经济可行性分析过程中,需要识别和评估各种风险因素,如市场竞争、需求波动、技术变革等。对于明显的风险,需要制定应对策略或计划适当的风险储备。经济可行性分析可以帮助评估基于Java的航空订票系统的投资回报和商业可行性,为项目决策提供依据,并在后续的经营过程中进行合理的资源配置和风险管理[8]。
3.2.3 操作可行性
操作可行性分析的一个关键方面是确保系统的可靠性。系统应具备高可用性,能够持续提供稳定的服务,并能够处理用户订票、支付等操作的要求。需要对系统的架构、服务器配置、负载均衡等进行评估,以确保系统能够在需要时可靠地运行。运营可行性分析也应将使用者经验这一要素纳入考量。该系统应该具有良好的人机接口,使作业过程简单化,减轻使用者的工作量。需要对系统的界面设计、交互流程进行评估,以确保用户能够方便、快速地完成订票等操作[9]。
3.3 系统业务功能需求分析
3.3.1 普通用户功能需求分析
普通用户功能包括:登录、查询航班、机票预订、查询订单、个人信息的查看和修改。

  1. 登录
    每个用户可以用自己的账号和密码来登录,并且必须输入正确的验证码,如果没有账户可以注册一个唯一的账号。
  2. 查询航班
    旅客在主页选择出发城市和到达城市,然后选择出发时间,系统就会筛选出适合该旅客的航班信息。
  3. 机票预订
    旅客在查询完自己所需要的航班信息后便可以进行购票。为了旅客的安全,在进行订票服务时旅客需要填写自己的个人信息。
    4.查询订单
    用户可以查询自己的购票信息,方便后期如果出现疑问时进行信息核对。
  4. 个人信息的查看和修改
    用户可以查看自己的信息包括用户名、真实姓名、手机号、地址、邮箱,并可对自己的信息进行修改。
    6.评论留言
    用户可以对系统提出合理性建议并且评论留言。
    普通用户功能用例图如图3-1所示。
    在这里插入图片描述

图3-1 普通用户功能用例图
3.3.2 管理员功能需求分析
管理员功能包括:管理员登录、航班信息管理、订单信息管理、用户信息管理、留言评论管理。

  1. 管理员登录
    管理员能够可以根据自己的账号密码来进行登录和退出。
  2. 航班信息管理
    由于不确定因素过多,需要确定航班是否能够起飞或者是否增加新的航班。所以,航班信息管理的功能是机务人员及时的添加或者删除航班信息,以便于旅客及时的订票退票,尽量减少旅客浪费的时间。
  3. 订单信息管理
    订单信息管理功能是,机务人员可以在订单信息管理界面中查看购票人的账号,姓名,身份证号,联系方式等详细的购票人信息,和订单信息。
  4. 用户信息管理
    管理员可以查看所有注册系统的用户信息,包括用户名、加密后的密码等信息。
  5. 留言评论管理
    管理员可以查看所有用户的留言内容,包括留言人、留言时间、留言内容,也可对不良的留言信息进行删除。
    管理员功能用例图如图3-2所示。
    在这里插入图片描述

图3-2 管理员主要功能用例图
3.4 本章小结
本章重点阐述了该系统所采用的技术及其实现。首先,本章对该方案的可行性进行了详细的阐述,并对其进行了安全性、经济性、操作性等方面的论证。其次,本章对该系统进行了需求分析,将其分成了两个部分:一个是需求可行性分析,一个是用例分析。
4 系统总体设计
4.1 系统总体结构设计
系统采用B/S架构,MVC模式思想。总体设计分为三层。
第一层:用户界面层,其任务是显示界面。
第二层:业务逻辑层,它负责对业务进行逻辑处理,制定业务规则,实现业务过程,以及其他与业务要求有关的业务。
第三层:数据库层,crud数据库[10]。
4.2 系统功能结构设计
在对该系统进行需求分析的基础上,提出了一种基于用户管理,航班管理,订票管理,订单管理,留言评论,个性化中心等模块。系统设计总体结构图如图4-1所示。
4.2.1 登录模块设计
为保证旅客的信息安全,保证旅客的安全,旅客购票的安全性,旅客购票时,旅客的姓名、口令是旅客登录的重要手段。用户经登录确认后,方可进入该预订系统,办理预订等业务。在没有账号的情况下,用户可以使用注册功能,获取一个独特的账号和密码,从而更好的使用该系统。在登录、注册等功能的设计上,着重于用户的使用体验、安全等方面的考虑,并对系统进行了持续的优化与升级,以适应用户的需要。
4.2.2 用户管理模块设计
管理员拥有访问用户管理模块的权限,可以浏览和编辑航空订票中所有注册用户的账号信息,包括账号名、加密后的密码等。管理员可以根据需要,对用户信息进行删除操作,以确保所有信息的更新和记录,从而更好地管理系统使用者。
4.2.3 航班管理模块设计
当管理员点击航班信息管理模块时,就会弹出航班资料清单,其中将每一航班的航班号,出发地点,目的地,出发机场,到达机场,起飞时间,到达时间,头等舱,商务舱,经济舱价格。新的飞行信息可被添加。
在这里插入图片描述

图4-1 系统设计总体结构图
4.2.4 订票管理模块设计
使用者可以查看他们所希望的航班,还可以根据他们的起点和目的地,来查找自己适合的时间,来选择适合的航班来预订机票,用户点击订票后须填写姓名以及身份证号,选择机舱类型填写联系人电话以便接受航班信息。信息填写完后点击提交订单,就会生成订单信息。
4.2.5 订单管理模块设计
在机票预订系统中,定单管理是一个非常重要的功能模块。在此模式下,一般使用者可以查询到自己订票的详情,如航班号码,乘机人,日期,旅客身份证,联络电话等。管理人员除上述一般使用者外,还有检视全部买卖指令的功能。通过该系统,管理员可以看到各个用户的订购情况,从而更好的管理和满足客户的需要。在该模块中,我们注重了用户体验和操作的简洁性,使用户可以方便地完成订单查阅操作。同时,我们也采取了安全的技术措施,确保订单数据的私密性和系统的安全性。
4.2.6 留言评论模块设计
为了更好地了解用户的需求,航空订票系统中提供了留言评论功能。这个功能允许用户在系统内留下评论和意见,让管理员可以更直观地了解用户对系统的评价和需求。
通过留言评论功能,用户可以表达对订票系统的赞赏、建议或遇到的问题。用户可以在留言中提供他们对系统的使用体验、界面设计、功能的改善建议,或者报告任何遇到的问题和Bug。管理员可以在系统后台查看到所有的留言信息,并进行适当的操作。他们可以根据用户的留言,更加了解用户对系统的期望和关注的问题,以便进一步改进系统的功能和用户体验。
4.2.7 个人中心模块设计
个人中心模块是航空订票系统中的一个重要模块,为用户提供了一个方便管理个人信息的平台。在该模块中,用户可以修改个人信息,包括账号名、真实姓名、手机号、地址、邮箱等,以更好地管理自身信息。
我们在该模块的设计中,借鉴了用户反馈和技术实践的经验,采取了优化用户体验和提高安全性的创新方案,使得模块交互更加顺畅、功能更加丰富,同时也满足了航空订票系统的运营和管理需要。并且在实际使用中,具有较高的实用性和稳定性。
4.3 数据库设计
4.3.1 概念模型设计
通过对航空订票的需求分析和数据抽象,抽取出系统中与数据相关主要的各个实体以及实体间的联系[11],从而得到系统的E-R图,系统E-R图如图4-2所示。
在这里插入图片描述

图4-2系统E-R图
4.3.2 逻辑结构设计
基于数据库的分析和概念结构的设计,将对应的数据库的概念模型转换成了逻辑结构,也就是设计了数据库的结构[12]。本系统中主要MySQL数据表的结构设计如下。

  1. 航班信息表
    航班信息表保存着航空订票系统的所有的航班信息,其中carId是航班id,类型为int,数据为主键自增,carCno是航班号,类型为varchar,数据长度为50,不能为空,carShiFaDi是始发地,类型为varchar,数据长度为50,不能为空, carPrice是航班价格,类型为Money,不能为空, carMuDiDi是目的地,类型为varchar,数据长度为100,不能为空, carJiChang是始发机场,类型为varchar,数据长度为100,不能为空。carCreateTime是航班日期,类型为Date,不能为空。航班信息表如表4-1所示。
    表4-1 航班信息表
    字段名 数据类型 长度 是否为主外键 能否为空
    carId int 10 是 否
    carCno varchar 150 否 否
    carShiFaDi varchar 150 否 否
    carCreateTime date 0 否 否
    carJiChang varchar 150 否 否
    carPrice
    carJiChang money
    varchar 10
    150 否
    否 否
  2. 订单表
    订单表主要存放的是用户的所有订单,其中id是默认id,数据类型为int,为主键自增,orderNumber为订单编号,数据类型为varchar,数据长度为150,不能为空,User为用户名,数据类型为varchar,数据长度为150,不能为空,Price为订单金额,数据类型为Moeny,不能为空,person为乘机人,数据类型为varchar,不能为空,phone为乘机人手机号,数据类型为varchar,不能为空,carCno为航班号,数据类型为varchar,数据长度为150,不能为空。订单表如表4-2所示。
    表4-2 订单表
    字段名 数据类型 长度 是否为主外键 能否为空
    Id int 10 是 否
    orderNumber varchar 150 否 否
    User varchar 150 否 否
    Price int 10 否 否
    Person
    phone int
    int 10
    10 否
    否 否
  3. 用户表
    用户表是用来存储注册用户信息的。其中id是默认id,数据类型为int,为主键自增,Name为用户账号,数据类型为varchar,数据长度为150,不能为空,mima为用户密码,数据类型为varchar,数据长度为150,不能为空,phone为手机号,数据类型为varchar,数据长度为11,不能为空,photo为头像,数据类型为varchar,不能为空。用户表如表4-3所示。
    表4-3 用户表
    字段名 数据类型 长度 是否为主外键 能否为空
    Id int 10 是 否
    Name varchar 150 否 否
    mima varchar 150 否 否
    Phone varchar 11 否 否
    photo varchar 150 否 否
  4. 管理员表
    管理员信息表存储着管理员的信息。要想登录到这个系统,必须先有一个管理员,也就是登录账号和密码,这张表就是为了存储这个账号和密码而建立的。每次要登录到这个系统时,用这个账户和密码来登录到该系统。登录的时候需要把刚才存储在这张表中的信息和自己的账户和密码进行比对,看是否一致,如果一致则可以登录到该系统。其中id是主键,数据类型为int,为主键自增,Name为管理员登录用户名,数据类型为varchar,数据长度为150,不能为空,mima为管理员密码,数据类型为int,数据长度为10,不能为空,staId为身份id,数据类型为int,数据长度为10,不能为空,realName为真实姓名,数据类型为varchar,数据长度为150,不能为空,Phone为手机号,数据类型为varchar,数据长度为150,不能为空,carCreateTime为创建时间,数据类型为date,不能为空,Sex为性别,数据类型为varchar,数据长度为150,不能为空,statt为管理员备注,数据类型为varchar,数据长度为100,不能为空,States为账号状态码,数据类型为int,数据长度为10,不能为空。管理员表如表4-4所示。

4.4 本章小结
本章主要是针对航空订票系统的总体设计,包含系统功能模块设计和数据库设计。结合实际生活中的需求,数据库是本章的重点,包括需求分析、数据库概念结构设计和数据库逻辑结构设计。通过使用E-R图展现了每个实体之间的特性和相互之间的关系,为数据库设计模型奠定了基础。

5 系统详细设计及实现
5.1 登录模块实现
航空订票系统为了保证用户账户和个人信息的安全性,设置了严格的登录验证机制。用户需要先在登录页面输入自己的账号和密码,然后输入显示的验证码,才可以进行登录。验证码的作用在于通过识别人类的视觉能力,防止恶意用户使用自动化机器人程序登录或刷单。验证码的出现大大增强了航空订票系统的安全性和稳定性。通过该安全措施,系统可以有效地避免漏洞的出现和人工的差错,提高系统的准确性和效率。同时,该验证过程还可以提醒用户、商家和管理员注意安全和保护自身的账户信息。
在本系统中,只有经过验证的用户才可以享受下单和订票的权利,其他未登录的用户只能浏览信息和查看相关页面。这样可以有效避免未经授权的访问和滥用,保障航空订票系统和用户的利益。
系统登录流程图如图5-1所示。
在这里插入图片描述

图5-1 系统登录流程图
本系统的登录页面,集成在login_reg.jsp文件中,关于登录的主要代码如下:
function login(){//登录
var username = $(“#login-username”).val(),
password = $(“#login-password”).val(),
validatecode = null,
flag = false;
//判断用户名密码是否为空
if(username == “”){
$.pt({
target: $(“#login-username”),
width: ‘auto’,
height: ‘auto’,
content:“用户名不能为空”
});
flag = true;
}
登录界面效果图如图5-2所示。
在这里插入图片描述

图5-2 登录界面效果图
5.2 用户管理模块实现
用户管理模块是航空订票系统的重要组成部分之一,提供了管理员对用户信息进行管理的平台。在这个模块中,我们首先通过数据库查询,收集并展示所有用户信息,包括用户名、密码、用户头像等基本信息。服务端连接器的作用则是将数据库中的用户信息以接口形式传输到页面并展示。
管理员可以通过操作栏中的删除按钮对用户信息删除,以保持数据的准确性和实时性。
主要的后端代码如下:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
String sort=req.getParameter(“class”);
if(sort.equals(“user”)) {
String user_name=req.getParameter(“id”);
db_conn conn=new db_conn();
String sql=“delete from common_user where user_name='”+user_name+“'”;
用户管理界面效果图如图5-3所示。
在这里插入图片描述

图5-3 用户管理界面效果图
5.3 航班管理模块实现
航班管理模块是航空订票系统的一个重要组成部分,提供了对航班信息管理的功能。在该模块中,管理员可以执行多种操作,包括查看航班信息、添加航班信息、删除航班信息等。
首先,管理员可以通过点击查看按钮,浏览数据库中所有航班的信息,包括航班号、始发地、目的地、始发机场、到达机场、起飞时间、到达时间、价格等。同时,管理员可以点击添加航班按钮,填写表单信息后向数据库发送新建航班的请求,完成新增操作。
除此之外,在需要删除某个航班信息时,管理员可以先查询数据库中相应的信息,并删除该账号及其所有关联信息。
主要代码如下:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding(“utf-8”);
String flight_id=req.getParameter(“flight_id”);
String start_place=req.getParameter(“start_place”);
String end_place=req.getParameter(“end_place”);
String start_airport=req.getParameter(“start_airport”);
String end_airport=req.getParameter(“end_airport”);
String take_off_time=req.getParameter(“take_off_time”);
String landing_time=req.getParameter(“landing_time”);
String first_class_price_str=req.getParameter(“first_class_price”);
Integer first_class_price=Integer.parseInt(first_class_price_str);
String business_class_price_str=req.getParameter(“business_class_price”);
Integer business_class_price=Integer.parseInt(business_class_price_str);
航班信息管理界面效果图如图5-4所示,添加航班界面效果图如图5-5所示。
在这里插入图片描述

图5-4 航班信息管理界面效果图
在这里插入图片描述

图5-5 添加航班信息界面效果图
5.4 订票管理模块实现
订票管理模块是航空订票系统的核心功能之一,提供了方便的订票管理平台。在该模块下,用户可以点击订票按钮填写订单信息进行订票。
为了接收飞机的资料,使用者必须填上名字,身份证号码,以及联络人的电话号码。完成数据后,按下“发送”命令,即可向数据库提交表单数据。
主要代码如下:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding(“utf-8”);
HttpSession session = req.getSession();
if(session.getAttribute(“user_id”)!=null) {
String user_id=session.getAttribute(“user_id”).toString();
String f_i=req.getParameter(“flight_id”);
String passenger_name=req.getParameter(“passenger_name”);
String passenger_id=req.getParameter(“passenger_id”);
String contact=req.getParameter(“contact”);
String contact_phone=req.getParameter(“contact_phone”);
}else {
resp.sendRedirect(“default/order.jsp”);
}
}else {
resp.sendRedirect(“default/order.jsp”);
}
}
查看航班信息效果图如图5-6所示,订票界面效果图如图5- 7所示。
在这里插入图片描述

图5-6 查看航班信息效果图
在这里插入图片描述

图5-7 订票界面效果图
5.5 订单管理模块实现
订单管理模块是航空订票系统非常重要的功能之一,提供了方便快捷的订单管理和查询功能。
点击订单列表按钮,用户可以浏览所有已提交的订单。通过查询数据库,系统可以准确地获取订单的详细信息。在此功能页面上,管理员可以查看所有用户已经提交的订单的更多详细信息,如航班号、乘机人、乘机日期、仓位、乘客证件、联系人、联系电话等,以更好地跟踪订单状态。主要代码在order_list.jsp,order.jsp文件中。
主要代码如下:

订单列表

订单管理订单列表

列表内容

图5-8 用户订单信息界面效果图
在这里插入图片描述

图5- 9 管理员订单信息界面效果图
5.6 留言评论模块实现
留言评论功能是为迎合用户而开发的功能,提供了让用户提出宝贵意见的交互平台。当用户点击留言板按钮时,将会触发ajax点击事件,增加相应的留言信息到数据库中。留言评论功能的设计,为用户提供了意见反馈的平台等新型体验,使用户能够轻松快捷地反应问题,并节省时间和成本。同时,系统的安全性和数据保护机制确保用户的个人信息不受非法攻击和泄漏。主要代码在feedback_list.jsp文件中。
主要代码如下:

留言列表

留言管理留言列表

留言评论界面效果图如图5-10 所示。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/08175e80ed9e49a2a94b504f1a4aa3cf.png)

图5-10 留言评论界面效果图
5.7 个人中心模块实现
在个人中心模块中主要实现的功能是修改个人信息。
用户可以通过该模块的“修改个人信息”按钮,随时修改个人资料,包括用户名、头像、姓名、身份证号、所在城市、联系电话、邮箱、QQ号等个人信息。在页面中填写完整信息后,点击提交按钮,系统会将请求发送到后台服务连接器获取请求,并执行对数据库中用户表的操作,实现用户信息的更新和保存。
主要代码如下:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
Object user_id = session.getAttribute(“user_id”);
if(user_id != null) {
RequestDispatcher rd = getServletContext().getRequestDispatcher(“/index/user_center.jsp”);
rd.forward(req, resp);
session.setAttribute(“url”, “/jsp_plane_ticket_book/user_center”);
}else {
resp.sendRedirect(“index/login_reg.jsp”);
}
}
修改个人信息效果图如图5-11所示。
在这里插入图片描述

图5-11 修改个人信息界面效果图
5.8 本章小结
本章已经进入了整体的设计阶段,对整个系统进行了结构设计,并对各模块的功能进行了分割。这一章实现了上一节所设定的目标,并且把这些模块分成了两个主要的部分,分别给了使用者和管理员。这一章将详细描述该系统所包含的各个子模块的功能以及具体的实现,并对这些功能进行了测试,而且为了简单明了的介绍这些功能,画出了功能流程图。行文至此,意味着开发工作即将结束,接下来将进入测试阶段。

6 系统测试与分析
在对航空预订系统进行测试与分析时,可以分别对各个模块进行测试与分析,如航班管理、订单管理、留言评论、用户管理等。通过对每一个模块的完整性,正确性,稳定性的检测与分析,可以让我们对系统的每一个方面有一个更加全面的认识,并且能够在检测过程中找到问题或缺陷,从而保证整个系统的正常运转,并改善其性能。
6.1 测试原则
软件测试是保证软件质量和正确性的重要环节,测试应覆盖系统的各个功能和模块,包括订票、查询、评论留言等功能。确保所有功能都被测试到,以减少潜在的缺陷和错误。利用自动化测试工具和框架,减少手动测试的工作量和时间,并提高测试的效率和一致性。自动化测试可以针对重复性的测试任务,如回归测试和性能测试等。测试应可重复执行,以便在出现问题时能够重现和调试。确保测试环境的一致性,并提供详细的测试用例和测试数据,以便复现问题和验证修复效果。根据功能的重要性和风险程度,确定测试的优先级,确保对关键功能和可能存在的风险进行优先测试。这有助于在有限的时间和资源下,将重点放在最关键的测试任务上。
6.2 系统测试
系统测试是软件开发生命周期中的一个关键阶段,旨在对整个系统进行验证和评估,以确保其符合预期的需求和质量标准。系统测试是在集成测试之后,对系统作为一个整体进行的测试活动。系统测试通过执行一系列测试用例,验证系统的各项功能是否按预期工作。这包括核实系统的各个模块和组件之间的交互是否正确,以及系统是否满足用户和业务需求。通过系统测试,可以发现和修复系统中的问题和缺陷,并确保系统在交付给最终用户之前达到预期的质量标准和业务需求。
6.2.1 登录模块测试
登录模块主要对用户在各种情况下的登录操作进行了测试,具体包括了正常登录、用户名和密码验证、账号锁定、验证码输入等,对用户能否顺利登录并显示出相关页面进行了测试。对登录网页的设计与版面进行测试,其中包含了不同的输入方块与按钮的显示、排列与提示,并对界面风格与设计进行了测试[13]。确保使用者能顺利且容易地进行注册。
登录测试用例和测试结果如表6-1所示,登录模块界面如图6-1所示。
表6-1 登录测试用例和测试结果
测试点 测试用例 预期结果 与预期结果是否一致

注册过的用户登录系统 输入错误的密码登录
输入错误的验证码登录 点击登录时
登录失败 是
点击登录时
登录失败 是
未注册用户登录系统 输入错误的账号登录系统 点击登录时
登录失败 是
在这里插入图片描述

图6-1 登录模块界面
6.2.2 用户管理模块测试
用户管理模块主要测试对用户账号的管理和信息的修改是否会正确处理触发。用户管理测试用例和测试结果如表6-2所示,用户管理模块界面如图6-2所示。
表6-2 用户管理测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
禁用用户账号 点击禁用按钮 提示“操作成功” 是
解除禁用账号 点击解除禁用按钮 提示“操作成功” 是

修改用户信息
点击修改按钮但不输入信息提交 提示“请输入正确收货信息”

点击修改按钮更改用户信息
提示“操作成功”

在这里插入图片描述

图6-2 用户管理模块界面
6.2.3 航班管理模块测试
当管理者发布航班时,要将航班的资料准确地填写出来,其中包括航班号码,起点,终点,出发机场,到达机场,起飞,到达时间,票价等内容。如果填写的航班信息缺失或格式有误,系统将提示管理员填写正确格式的航班信息。当管理员正确填写航班信息并提交后,系统将提示航班发布成功。
航班管理测试用例和测试结果如表6-3示,添加航班信息如图6-3所示。

表6-3 航班管理测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致

添加航班信息 点击添加航班按钮,输入必填信息,提交 提示航班添加成功 是
点击航班添加按钮,不输入信息,提交 提示添加失败 是
查询航班信息 点击航班信息列表 显示所有航班信息 是
在这里插入图片描述

图6-3 添加航班信息
6.2.4 订票管理模块测试
用户点击订票按钮显示跳转填写订票信息页面,填写正确的个人信息点击提交订单,显示所有已完成订单信息。订票系统的测试用例和测试结果如表6-4所示。订票信息查询效果图如图所示6-4所示,填写订票信息效果图如图6-5所示。
表6-4 订票系统的测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
点击订票跳转页面 点击订票按钮 跳转到填写订单页面 是
提交订票信息 不填写信息 订单提交失败 是
提交订票信息 正确填写信息 提交成功 是
在这里插入图片描述

图6-4 订票信息查询效果图
在这里插入图片描述

图6-5 填写订票信息效果图
6.2.5 留言评论模块测试
用户点击留言板后,可以填写留言内容,也可查看其它用户的留言信息。
留言评论的测试用例和测试结果如表6-5所示。填写留言内容效果图如图6-6所示。
6.2.6个人中心模块测试
个人中心模块主要测试修改个人信息时错误填写是否会显示错误信息。修改信息测试用例和测试结果如表6-6所示。
表6-5 留言评论的测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致

填写留言内容提交 填写昵称、留言点击加入提交评论按钮
留言成功 是
填写昵称点击提交评论按钮
留言失败 是
填写留言点击提交按钮
留言失败 是
在这里插入图片描述

图6-6 填写留言效果图
表6-6 修改密码测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致

修改个人信息 输入正确的个人信息点击保存按钮
提示修改成功

未输入姓名时点击保存按钮
提示修改失败

未输入手机号 提示修改失败 是
个人信息修效果图如图6-7所示。
在这里插入图片描述

图6-7 个人信息修改效果图
6.3 本章小结
本章是系统测试,主要介绍了软件测设背景、软件测试的意义、黑盒测试和测试用例及其分析。使用黑盒测试进行测试,为测试提供了很多优势,使测试结果更客观、独立和有效,提高了系统的稳定性,以确保系统的正常运行[14]。

7 总 结
7.1 工作总结
通过对该系统的研制与实施,我深刻地体会到了科技的发展与应用所产生的社会效应。在此过程中,我得到了深刻的学习与成长经历。技术在不断地更新与革新,在开发航空订票系统的过程中,我一直在学习与探索新的技术与方法,并努力寻找更具创新性的解决方案,来满足未来不断更新与发展的需要。技术的更新与革新一直在持续着,在研制航空订票系统的过程中,我一直在学习与探索新的技术与方法,并致力于寻找更具创新性的解决方案,来满足未来不断升级与发展的需要。
7.2 展望
在日益增长的旅游需求下,航空订票系统有着十分广泛的应用和市场。在今后的岁月里,航空预订体系的发展将会得到进一步的扩展与完善!
航空订票体系将逐步扩展到世界各地,并向国外拓展。以多方面的手段,来满足各区域的需要及市场。综上所述,技术创新、多样化和人性化是今后航空订票系统发展不可缺少的关键要素,航空订票系统要继续深化数字化转型与创新,才能在市场上占有更多的资源和更多的用户支持。

参考文献
[1] 张志云.探究计算机软件开发中Java编程语言的应用[J].信息记录材料,2023,24(04):110-112.
[2] 李慧伟.新工科背景下“Java开发”课程改革研究[J].科技风,2023(12):141-143.
[3] 王麟阁.“JavaEE架构与应用开发”课程思政建设与实践[J].中国信息技术教育,2023(08):101-103.
[4] 徐海燕.JAVA编程在计算机应用软件中的应用特征与技术[J].电子技术与软件工程,2023(03):29-32.
[5] 李俊萌.计算机软件测试技术与开发应用策略分析[J].信息记录材料,2023,24(03):50-52.
[6] 李华.计算机软件开发中Java编程语言的应用及细节问题分析[J].电子技术与软件工程,2023(04):49-52.
[7] 赵将.Java语言在计算机软件开发中的应用[J].数字技术与应用,2023,41(03):160-162.
[8] 任蕾蕾.计算机软件开发中数据库安全设计研究[J].网络安全和信息化,2023(03):55-57.
[9] 王淼.MySQL查询优化与研究[J].信息记录材料,2022,23(05):227-229.
[10] 谢霜.基于Java技术的网络管理体系结构的应用[J].网络安全技术与应用,2022(10):14-15.
[11] 董明.计算机软件系统开发中的主要问题与应对研究[J].网络安全技术与应用,2021(11):51-52.
[12] 刘洁.基于计算机软件开发的Java编程语言分析[J].电子技术与软件工程,2021(09):41-42.
[13] 李想.计算机软件开发中的数据库测试技术研究[J].电子技术与软件工程,2021(19):39-40.
[14] 张林.计算机软件Java编程与应用分析[J].电子技术,2020,49(10):16-17.

致 谢
首先,我要由衷地感谢我的导师。感谢您对我论文研究的指导和悉心培养。您不仅在学术上给予了我宝贵的指导意见,还在思维方法和研究方法上提供了极大的帮助。感谢您的悉心指导,让我能够系统地展开研究,开启了我的研究之路。
同时,我要感谢参与本研究的各位参与者。正是他们的协助和合作,我才得以顺利进行实验和调研。
在此,我要特别感谢我的同学和朋友们。与你们的交流和讨论让我受益匪浅,也让我的论文更加丰富和有深度。你们的陪伴是我在论文写作路上的精神动力。
此外,我还要忠心感谢我的家人和亲人们。感谢你们一直以来的关心、鼓励和支持。家庭的温暖和鼓励让我感受到坚定的前行力量,在任何时候都不放弃追求和探索。
最后,我要感谢学校和图书馆为我提供的学习和研究资源。感谢学校提供的良好的学习环境和学术氛围,让我能够专注于完成我的研究工作。感谢图书馆提供的丰富的书籍和期刊,为我提供了广阔的学术知识。
对于以上的一切,我心怀感激之情。在未来的学习和研究道路上,我将时刻铭记您们的帮助和鼓励。

航空客运订票系统 特点:超详细的JAVA代码注释,代码保护性,无论输入什么都不会崩溃; 【问题描述】航空客运订票的业务活动包括:查询航线、添加航班,客票预订和办理退票等七大功能,已实现操作文件。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。 【基本要求】 (1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量); (2)系统能实现的操作和功能如下: ①录入:可以录入航班情况,全部数据可以只放在内存中,最好存储在文件中; ②查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; ③承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补; ④承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 【测试数据】由读者自行指定。 【实现提示】两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述8个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。 【选作内容】当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。读者还可充分发挥自己的想象力,增加你的系统的功能和其他服务项目 I/O流操作时用到了GSON,解压即可看到,如果发现报错,读者可以配置一下Gson的路径,在属性,JAVA构建路径中删除原有的三个GSON库,添加外部,下载的GSON库。如果不用可以将Main类中new ReadFlightLine();注释掉即可。
目 录 前 言 1 第1章 需求分析 2 §1.1 开发必要性 2 §1.2 可行性分析 2 §1.2.1 经济可行性分析 2 §1.2.2 技术可行性分析 3 §1.2.3 现有系统的分析 3 第2章 系统分析 4 §2.1 系统逻辑模型的提出 4 §2.2 系统的功能介绍 4 §2.3 系统开发工具和开发语言 5 §2.3.1 开发工具 5 §2.3.2 开发语言 6 第3章 总体设计 7 §3.1 系统功能设计 7 §3.2 系统功能模块简介 7 第4章 数据库设计 10 §4.1 概念结构设计 10 §4.2 逻辑结构设计 11 §4.3 物理结构设计 12 第5章 详细设计 14 §5.1 关键业务流程描述 14 §5.1.1 航空售票管理 14 §5.1.2 管理员管理流程 14 §5.2 系统界面设计 15 §5.2.1 主功能界面 15 §5.2.2 其他功能界面 16 §5.3 模块代码实现 18 §5.3.1 航空订票查询模块 18 §5.3.2 航空售票管理模块 19 第6章 系统测试 21 §6.1 软件测试的目标 21 §6.2 具体测试 21 结 论 24 参考文献 25 致 谢 27 §5.3.1 航空订票查询模块 航空订票查询主要实现对票据信息种类的添加、修改和删除功能。票据信息种类是系统内容的最高级别,所以在添加、修改或删除票据信息时,也必须选择该票据信息所属的票据信息种类。下面是票据信息种类的添加、修改和删除功能的主要实现代码。 public void actionPerformed(ActionEvent e) { this.flightNumber = flightField.getText().trim(); if (flightNumber.length() == 0) //未输入信息 { JOptionPane.showMessageDialog(null,"请输入航班号或者从列表中选择", "错误信息",JOptionPane.ERROR_MESSAGE); return; } executeFlightQuery(); } public void executeFlightQuery() { String sqlString = "SELECT DISTINCT * FROM " +"flight " + "WHERE flight=" + "\'" + flightNumber + "\'"; ResultSet rs = sqlBean.executeQuery(sqlString); if (rs != null) showResult(rs); else JOptionPane.showMessageDialog(null,"没有连上数据库!", "错误信息",JOptionPane.ERROR_MESSAGE); } 以上是对数据添加的程序代码,该段代码实现了获得用户数据输入,并把数据插入到数据库当中的功能。 。。。。。。。。。。。。。。。。。。。。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值