大家好,今天给大家介绍基于java+Jsp+Mysql的机场航班起降与协调管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。
文章目录:
此次项目是一个基于Java的机场航班起降与协调系统(机场航班调度系统)。
通过此系统帮助机场地面指挥人员进行更加明确的航班调度和指令发送,尽可能减少航班调度的错误率,
尽可能规避航班调度错误的风险,极大程度地避免空难的发生。减少地面指挥人员指令发布的失误率,
与航班建立数据上的可视的指令发布,使航班在可能的无线电干扰的情况下可以正常起降。实时管理航班信息,
建立地面指挥员与机长之间的指令通信。
本文以技术介绍、机长端需求分析、地面指挥人员端需求分析、系统分析与设计、代码实现几个方面为目标,主要运用了Java(jdk-7u15-windows-i586)技术、mysql-essential-5.1.32-win32、Eclipse IDE for Java DevelopersVersion: Luna Service Release 2 (4.4.2)、apache-tomcat-7.0.77等开发环境与工具;Java、Jsp、JDBC、Servlet和javascript技术以及easyui架包设计实现了机场航班起降与协调管理系统。
功能介绍:
地面指挥员端:
1.指挥员登录
2.航班信息的浏览
3.航班信息的操作
航班的删除
航班的添加
航班信息的修改
航班信息的搜索
4.指挥信息的操作
指挥信息的查询
指令的发布
指令的修改
指令的删除
机长端:
1.机长登录
2.航班信息的查询
3.航班指挥信息的操作
航班指挥信息查询
航班请求的发布
航班请求的删除
航班请求的修改
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:25547个字74页
包含内容:整套源码+完整毕业论文+答辩PPT+任务书+辅导视频+运行截图
资源文件目录简图如下:
提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
1 绪论
1.1 项目背景
省略
航班起降与协调管理系统就显得尤为重要了,他能实时管理航班信息,建立地面指挥员与机长之间的指令通信,这样对于航班飞行安全尤其是在机场及其空域时的航班飞行安全起到了至关重要的作用。
Java语言在现代计算机编程上是核心的且运用范围最广的语言,Java是面向对象的开元的一种计算机语言,运用广泛且灵活,且Java系统稳定,用Java语言进行编程是一种很好的选择。
1.2 项目目的
通过此次项目编写一个基于Java的机场航班起降与协调系统(机场航班调度系统)。通过此系统帮助机场地面指挥人员进行更加明确的航班调度和指令发送,尽可能减少航班调度的错误率,尽可能规避航班调度错误的风险,极大程度地避免空难的发生。减少地面指挥人员指令发布的失误率,与航班建立数据上的可视的指令发布,使航班在可能的无线电干扰的情况下可以正常起降。实时管理航班信息,建立地面指挥员与机长之间的指令通信。
1.3 项目可行性分析
本次项目是设计一个基于JAVA的机场航班起降与协调管理系统。
(1)在经济可行性上来分析的话,该软件是机场内部使用的一个指挥协调软件,属于航空安全投资,本软件开发成本并不高,软件和服务器数据库可以用机场原有的数据库进行开发,比起空难给航空公司造成的损失来说九牛一毛。
(2)在技术可行性上来分析的话,该软件主要运用了Java技术、jQuery-easyui和Mysql数据库技术。Java是到目前来说最稳定的、最可靠的软件开发工具;jQuery-easyui虽然是比较新的前台开发技术,但是他的界面新颖整洁,适合于功能性软件的开发;Mysql数据库也是许多大公司都采用的软件项目开发数据库,不仅稳定而且性能可靠,可以用作本次软件的开发。
(3)在法律可行性上来分析的话,该软件使用的技术都为开源的软件开发工具和语言,虽然Java等开发技术都存在Sun公司的版权问题,但是Java技术是可以免费使用的,没有涉及到法律上的侵权。
(4)在方案可行性上来分析的话,此次软件开发的很大一部分精力都放在了软件的需求分析和设计方面,设计出来的软件可以很好地去实现我们所要完成的软件预先设计的功能。
2 技术介绍
2.1Java技术
2.1.1 Java技术简介
在1995年5月Sun Micro systems公司推出了在计算机和软件领域跨时代的Java程序设计语言,即Java语言,Java语言技术的跨平台、动态的Web、Internet计算迅速被世界各大互联网和计算机软件公司看好,成为了全球运用最广泛的计算机程序设计语言。
Java是支持Internet计算的面向对象程序设计语言,它在C++语言面向对象的基础上增加了许多新的特性,成为了一种更加完善的面向对象的计算机语言。Java语言是高级计算机语言,比C语言更加简单、方便,而且和C++语言相比去除了多继承等的特性,Java语言只有单继承和接口继承等,使程序员写起程序来更加地方便、快捷。Java语言具有一定的健壮性,其安全检查机制是一个非常好的机制,可以及时地发现程序的错误和隐患,以及进行异常处理。Java语言除了本身的安全特性外还提供了防止恶意代码攻击的安全机制,Java语言和它的系统都具有很强的可移植性。
Java程序中的类可以动态地被载入到运行环境中,可以方便地去移植项目。Java的面向对象的特性以及多线程、可移植、高性能和动态性的特征,还有平台兼容的特性导致了Java技术被广泛运用。
2.1.2 Java面向对象的特征
抽象:
抽象就是只选择其中的一部分,不需要了解全部问题,以此来充分表现出当前主题,抽象主要包括过程抽象和数据抽象这两个方法,过程抽象就是利用我们的计算机代码来表现对象的行为特征;而数据抽象就是利用我们的计算机代码来表现对象的特征。它们一个是针对对象的行为特征,一个是针对对象的属性特征。
继承:
继承是一种联结类的层次模型,就是从已经存在的类里面去派生一个新的类,这个新类被成为子类,原来的类被称为父类。Java只支持单继承,是通过extends方法来实现的。Java的单继承不但提高了代码的复用性,同时也使软件的开发效率有了进一步的提高。
封装:
封装就是把过程和数据包装起来,隐藏了类的内部实现机制,对数据的访问只能通过已定义的界面。其实是基于一个基本概念,即被描绘成完全封装对象的现实世界,通过一个被保护的接口来访问对象。从而在不影响使用者使用的前提下,可以改变类的内部结构,并且保护了数据。
多态性:
多态性就是不同类的对象对同一内容作出的不同反应,它包括参数化多态性和包含多态性,而且它具有灵活、抽象、行为共享等的有点,而且也很好地解决了函数的同名问题。
2.2Javascript和jQuery技术
2.2.1 Javascript技术简介
Javascript是一种基于Internet浏览器的脚本语言,他具有一定的网络安全性能,javascript可以和HTML以及CSS和基于Java的服务器语言组成一个完整的具有响应能力和数据处理能力的web网页,他是用来开发客户端的脚本语言,可以实现和用户进行软件前端的交互。Javascript既包括了Java服务器的特点,又包括了HTML的前端开发能力,他是两者的合二为一,他弥补了HTML的部分缺陷,也简化了客户端页面的跳转,但是又不会完全取代HTML和Java在网页和客户端设计中的重要性。
总的来说,Javascript是基于对象和事件驱动的一种具有简单性、安全性、动态性和跨平台性的描述语言,他可以直接实现页面的跳转而不经过服务器的处理,是一种与HTML兼容的脚本语言。
2.2.2jQuery-easyui技术简介
jQuery EasyUI是一组基于jQuery的UI插件集合体,它是为了帮助web前端开发程序员创造用户体验更好的、页面更丰富美观的客户端和网页而存在的,他是基于jQuery的一个插件,它有如combobox、menu以及tree等运用方法简单的UI控件。开发过程简单,运用相当方便,用它书写出来的页面简洁大方,是前端程序员很方便的开发工具。
jQuery EasyUI有以下几个特点:
1、基于jquery用户界面插件的集合;
2、为一些当前用于交互的js应用提供必要的功能;
3、EasyUI支持Javascript和HTML两种渲染方式;
4、支持HTML5(通过data-options属性);
5、开发产品时可节省时间和资源;
6、简单,但很强大;
7、支持扩展,可根据自己的需求扩展控件;
8、EasyUI还存在很多不足,正在通过更新版本来不断完善。
2.3Jsp技术
Jsp的全称是Java Server Pages,是由Sun公司提出的一种动态网页技术标准,它和Java一样具有跨平台性,可以在现在流行的windows和Linux以及其他操作系统上运行。JSP通过Java语言编写的类XML和scriptlets来封装产生动态网页的处理逻辑,其网页还能通过tags访问服务器端的资源应用逻辑。Jsp最大的特点就是将网页的前端设计和后台程序分离,更加清楚和方便地进行网页和客户端的开发。
JSP的工作原理是web服务器在遇到Jsp网页操作和访问发出的页面请求时,首先执行我们所访问和需要相应的程序段然后将结果反馈给客户,Jsp里的Java服务器程序段进行数据库和服务器的响应然后实现动态网页的功能。所以Jsp和serverlet一样是通过服务器的响应来实现网页的动态响应的。
自从Jsp推出后就备受互联网巨头的喜爱和追捧,迅速成为了现在非常流行和应用广泛的服务器端语言,很多互联网公司都建立了兼容Jsp的服务器,比如IBM和Oracle公司。
2.4Mysql
MySQL是一种高性能的数据库管理系统,它的功能强大,具有非常强的灵活性以及多选择的API接口,它的特点就是成本低、性能高、可靠性良好,还有他的健壮性和易用性以及它的快速响应,使他不需要多少人力物力去创建和维护,运用很低廉的成本就可以做出高性能的数据库服务器。它是一个多用户、多线程的SQL数据库服务器,它所支持的SQL语言也成为了现在软件行业应用最广的数据库语言,说起SQL语言,它是一种标准化的语言,运用它来存取信息会非常方便和容易,上手度非常高,非常简单易学。MySQL被广泛运用到一些中小型的企业和网站,并且它的应用范围在逐渐地扩大,他的组织和管理很庞大的信息和基于web的库存查询是MySQL最突出的优点。它还可以减少记录编档的时间、灵活查找序列、灵活输出格式和多个用户同时访问MySQL数据库记录,成为了许多项目数据库的不二之选。
3 需求分析
3.1需求分析
省略
在此航班起降与协调管理系统中,参与到的人员有地面指挥人员和机长,地面指挥人员可以进行航班信息浏览、搜索和操作航班信息、发布航班指令、接收航班请求和获取航班动态。
图3-1 地面指挥人员端用例图
机长端具有查看航班资料信息、发送航班请求、接收塔台指令、更新航班状态等功能。
图3-2 机长端用例图
省略
3.2 地面指挥端需求分析
3.2.1地面指挥端需求描述
地面指挥端的需求分析:首先用户可以先可以在所设计的软件里浏览航班信息,可以搜索航班信息。可以对因为某种原因需要修改、删除的航班进行信息的修改和删除,对加出来的航班班次进行添加操作,发出航班指令和接收航班请求,还可以接收航班的实时状态。所以整理如下:
1.登录
2.浏览航班信息
3.搜索航班信息
4.操作航班信息
修改航班信息
增加航班信息
删除航班信息
5.发送航班指令
6.接收航班请求
7.修改航班指令
8.获取航班状态
3.2.2用户端用例表
表3-1指挥员登录用例表
表3-2航班信息浏览用例表
表3-3 航班信息编辑用例表
表3-4搜索航班信息用例表
表3-5发出航班指令用例表
表3-6接收航班请求用例表
表3-7航班信息修改用例表
表3-8获取航班动态用例表
3.3机长端需求分析
3.3.1机长端需求描述
机长端的需求分析:首先机长可以登录查看自己所飞航班的信息,可以对塔台发送航班请求,接收塔台所发送的航班指令,并实时更新和反馈航班状态所以整理如下:
1.登录
2.查看航班信息
3.接收塔台指令
4.发送航班请求
5.修改航班请求
6.更新航班状态
3.3.2机长端用例表
表3-9机长登录用例表
表3-10航班资料信息用例表
表3-11发送航班请求用例表
表3-12接收塔台指令用例表
表3-13发送航班请求用例表
表3-14更新航班状态用例表
3.4机场航班起降与协调管理系统模块图
图3-3 功能模块图
3.5机场起降与协调管理系统E-R图
图3-4 E-R图
4 系统及功能设计
4.1 项目组成
4.1.1 数据库端
数据库端主要把地面指挥员、机长及其相关的各种信息存储在数据库表中,方便服务器对数据的增删改查,从而达到客户端对数据库信息的增删改查。这里用Mysql中的表来记录各种数据。
4.1.2 服务器端
服务器端与客户端交互,把客户端所传来的数据,请求相对应的操作,调用方法,连接数据库对数据库进行相对应地面指挥员及机长想对数据做出的增删改查,从而达到记录数据的效果。
4.1.3 客户端
客户端安装于机场塔台和航班的设备中,与用户直接交互,对于用户的操作向服务器端发出请求,等待服务器响应。服务器成功响应从而达到地面指挥员和机长想得到的信息及做出相应的操作。这里用eclipse中的浏览器代替。
4.2 数据库的分析与设计
数据库是软件进行信息管理的命门,数据库设计是否清晰、简介直接关系到系统开发和维护的成本。数据库分析包括概念结构设计、逻辑结构设计和物理结构设计。在此系统进行需求分析时已经分析并画出了数据库E-R图(概念结构设计),所以这里着重讨论数据库的逻辑结构设计和数据库表的分析和设计(物理结构设计)。
4.2.1 数据库逻辑结构设计
数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用的 DBMS产品所支持的数据模型相符合的逻辑结构。在进行数据库逻辑的设计时,要确认数据库的逻辑结构,还要保证数据库的完整性和安全性,明确指出数据记录由哪些表项组成,以及数据库数据的类型和取值范围。
在数据库逻辑结构设计中,由我们之前设计的机场航班起降与协调管理系统E-R图可以得出以下关系数据模型(关系中下划实线为主键,下画虚线为外键):
机长(机长编号,姓名,密码);
地面指挥(指挥员编号,姓名,密码);
机长客户端(机长编号);
地面指挥客户端(指挥员编号);
航班信息(航班编号,航班号,飞行区间,起降时间,航班状态,指挥员编号,机长编号);
指挥信息(编号,指令、请求编号,指令、请求名称,发出端,指令、请求内容,
航班编号,发布时间,指挥员编号,机长编号)。
4.2.2 数据库表的分析
根据对地面指挥员端和机长端的需求分析,首先必须登录才可以进行进一步操作,所以首先需要有指挥员表:t_User;机长表:t_Polit;还需要航班信息表t_Grade;在航班进行实时通信时,还需要航班请求和指令表:t_Standard,整理如下:
1.指挥员表:t_User
2.机长表:t_Polit
3.航班信息表:t_Grade
4.航班指挥信息表:t_Standrad
4.2.3 数据库表的设计
机长表的设计:t_Pilot包括机长编号PoliteId(主键)、机长姓名PoliteName、机长密码PolitePassword。
表4-1 机长表
航班信息表:t_Grade包括航班编号gradeId(主键)、航班号gradeName、起降时间gradeDate、飞行区间gradeLine、航班状态gradeState。
表4-2 航班信息表
航班指挥信息表:t_Standard包括编号;编号staId(主键);指令、请求编号staNo;指令、请求名称staName;指令、请求发出端sex;指令、请求内容staDesc;航班编号gradeId(外键);指令、请求发出时间staDate。
表4-3 航班指挥信息表
指挥员表:t_User包括指挥员编号userId(主键)、指挥员姓名userName、指挥员密码userPassword。
表4-4 指挥员表
4.2.4 数据库表的关联
机场航班起降与协调管理系统程序共有四个数据库表,机长表t_Pilot和指挥员表t_User存储机长和指挥员的登录信息数据,不需要关联。而航班指挥信息需要指定是某一航班对应的指挥信息,所以航班信息表t_Grade和航班指挥信息表t_Standard需要建立主外键关联,如图所示:
图4-1 数据库关联图
4.3 项目流程图
本项目分为地面指挥人员端和机长端两个端口来进行描述。
1.地面指挥人员端在未登陆的情况下,不能进入系统主界面,只有在登录后才可以进入指挥员界面,对航班信息进行浏览;然后查看是否有飞机晚点航班信息需要修改、取消航班以及添加航班;之后获取指定航班动态,并发送与接收指令,直至航班离开机场管辖空域脱离管制。对待降落航班下达降落指令和接收航班请求,直至航班降落完成。
图4-2 用户端流程图
2.机长端在登录状态下,才可以进行机长端操作,机长首先查看航班信息,然后更新航班状态,对塔台发送请求并接收塔台指令,并实时更新航班状态,直至航班完成起飞或降落动作。
图4-3 机长端流程图
4.4 指挥员端功能设计
首先建立DynamicWebProject工程:CommandInfoManage;其次建立后台数据库链接和服务器连接,需要建立以下包:
数据库链接:com.java1234.dao;
工程模型:com.java1234model;
工具类:com.java1234.util;
服务器:com.java1234.web;
如图4-4所示
图4-4 指挥员服务器
需要建立与指挥员交会的客户端,如图4-5所示:
图4-5 指挥员客户端
4.5 机长端功能设计
首先建立DynamicWebProject工程:AcceptInfoManage;其次建立后台数据库链接和服务器连接,需要建立以下包:
数据库链接:com.java1234.dao;
工程模型:com.java1234model;
工具类:com.java1234.util;
服务器:com.java1234.web;
如图4-6所示
图4-6 机长系统服务器
需要建立与指挥员交会的客户端,如图4-7所示:
图4-7 机长系统客户端
5 项目环境的搭建
省略
6 系统的实现
6.1登录功能的实现
6.1.1 指挥员登陆
打开软件,进入地面指挥登录界面,如图6-1所示:
图6-1 地面指挥登录界面
地面指挥员登录页面用户名为userName,密码为password,登录按钮为submit按钮,重置按钮为button按钮。
当点击登录时,服务器会进行用户名密码的验证,当用户名和密码为空时,显示用户名密码为空;当用户名密码错误时显示用户名密码错误。当验证正确时,跳转到index.jsp页面,运用到了数据传递的doget和dopost的方法。下面列出了doGet和doPost的主要方法,服务器端部分代码如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName=request.getParameter("userName");
String password=request.getParameter("password");
request.setAttribute("userName", userName);
request.setAttribute("password", password);
}
6.1.2 机长登录
打开软件,出现机长登录界面,如图6-2所示:
图6-2 机长登录界面
机长登录页面用户名为userName,密码为password,登录按钮为submit按钮,重置按钮为button按钮。
当点击登录时,服务器会进行用户名密码的验证,当用户名和密码为空时,显示用户名密码为空、当用户名密码错误时显示用户名密码错误。当用户名密码验证正确时,跳转到index.jsp页面服务器端代码与地面指挥端服务器代码一致。
6.2 主界面的实现
6.2.1 地面指挥端主界面的实现
当登录成功后,进入地面指挥端主界面,主界面由功能菜单和含有两个分页的树组成主界面的功能,主界面由jquery-easyui实现。右上角可以读取当前登录的指挥员姓名和现在时间,左侧功能栏可以选择隐藏和显示。当点击树中相应的按钮时,触发服务器响应弹出对应窗口,窗口可以关闭。如图6-3所示:
图6-3 地面指挥系统主界面
左侧树中两个分页运用了jquery获取分页的值,其的跳转代码为:
$(function(){
//数据
var treeData=[{
text:"根",
children:[{
text:"航班信息管理",
attributes:{
url:"gradeInfoManage.jsp"
}
},{
text:"航班指挥信息管理",
attributes:{
url:"standardInfoManage.jsp"
}
}]
}];
右侧从登录页面获取地面指挥员的登录名,运用了jQuery语言,其代码为:
<div style="padding-top:10px;padding-rignt:20px;">当前用户: <font color="red" size="4">${currentUser.userName}</font></div>
若用户想不经过登录直接访问主页面,则是行不通的,因为页面中还加入了权限设置,防止跳过登录直接访问main页面,其代码为:
if(session.getAttribute("currentUser")==null){
response.sendRedirect("index.jsp");
return;
}
在网页中还加入了一个时间控件,其代码为:
function startTime()
{
var today=new Date();//定义日期对象
var yyyy = today.getFullYear();//通过日期对象的getFullYear()方法返回年
var MM = today.getMonth()+1;//通过日期对象的getMonth()方法返回年
var dd = today.getDate();//通过日期对象的getDate()方法返回年
var hh=today.getHours();//通过日期对象的getHours方法返回小时
var mm=today.getMinutes();//通过日期对象的getMinutes方法返回分钟
var ss=today.getSeconds();//通过日期对象的getSeconds方法返回秒
// 如果分钟或小时的值小于10,则在其值前加0,比如如果时间是下午3点20分9秒的话,则显示15:20:09
MM=checkTime(MM);
dd=checkTime(dd);
mm=checkTime(mm);
ss=checkTime(ss);
var day; //用于保存星期(getDay()方法得到星期编号)
if(today.getDay()==0) day = "星期日 "
if(today.getDay()==1) day = "星期一 "
if(today.getDay()==2) day = "星期二 "
if(today.getDay()==3) day = "星期三 "
if(today.getDay()==4) day = "星期四 "
if(today.getDay()==5) day = "星期五 "
if(today.getDay()==6) day = "星期六 "
document.getElementById('nowDateTimeSpan').innerHTML=yyyy+"-"+MM +"-"+ dd +" " + hh+":"+mm+":"+ss+" " + day;
setTimeout('startTime()',1000);//每一秒中重新加载startTime()方法
}
6.2.2 机长端主界面的实现
当登录成功后,进入机长端主界面,主界面由功能菜单和含有两个分页的树组成主界面的功能,主界面由jquery-easyui实现。右上角可以读取当前登录的机长姓名和现在时间,左侧功能栏可以选择隐藏和显示。当点击树中相应的按钮时,触发服务器响应弹出对应窗口,窗口可以关闭,和地面指挥端功能相类似。如图6-4所示:
图6-4 机长系统客户端主界面
6.3 地面指挥管理功能的实现
6.3.1 地面指挥端航班信息管理功能的实现
点击地面指挥端中的航班信息管理按钮,弹出航班信息管理界面,界面可以关闭和刷新。航班可以进行搜索、添加、修改和删除等操作。若地面指挥人员想要查看指定信息的航班,那么输入航班名称即可搜索出对应的航班;若航班加出班次,则地面指挥人员可以点击添加添加航班信息,但是航班状态需要由机长进行填写;若航班班次取消,则点击删除按钮删除要取消的航班,若误点了已经起飞或者降落的航班的删除按钮,则弹出窗口航班正在运行,不能进行删除;若航班修改了架次,则点击修改按钮进行航班信息的修改。如图6-5所示
图6-5 航班信息管理
显示航班信息需要读取数据库,进行搜索操作时也需要读取数据库,其读取数据库的部分代码如下:
public ResultSet gradeList(Connection con,PageBean pageBean,Grade grade)throws Exception{
StringBuffer sb=new StringBuffer("select * from t_grade");
PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and", "where"));
return pstmt.executeQuery();
}
public int gradeCount(Connection con,Grade grade)throws Exception{
StringBuffer sb=new StringBuffer("select count(*) as total from t_grade");
}
服务器端需要读取每一条数据的行和页,这里服务器端也运用了doget和dopost方法。
数据操作有添加功能、删除功能和修改功能,如图所示:
图6-6 添加航班信息
图6-7 修改航班信息
图6-8 删除航班信息
在增加、修改航班信息时,航班信息的每个信息都是必输入项,所以设置一个输入字符的验证,用jquery进行验证直接调用easyui语句:required=“true”
在执行增加、删除和修改操作时,会在数据库中读取和写入信息以数据删除和添加为例,其代码为:
public int gradeDelete(Connection con,String delIds)throws Exception{
String sql="delete from t_grade where id in("+delIds+")";
PreparedStatement pstmt=con.prepareStatement(sql);
return pstmt.executeUpdate();
}
public int gradeAdd(Connection con,Grade grade)throws Exception{
String sql="insert into t_grade values(null,?,?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, grade.getGradeName());
pstmt.setString(2, grade.getGradeDate());
pstmt.setString(3, grade.getGradeLine());
pstmt.setString(4, grade.getGradeState());
return pstmt.executeUpdate();
}
6.3.2 地面指挥端航班指挥信息管理功能的实现
从主页面点击航班指挥信息页面,打开航班指挥信息分页,如图6-9所示:
图6-9 航班指挥信息管理
航班指挥信息管理的主要功能是航班指令的发布、航班指令的修改和删除,还有不同的条件查询。我们这里提供了各种不同条件的航班指令信息查询方法方便航班指令信息的查看和管理。当收到航班发出的请求或者遇到情况时,地面指挥端点击发布指令进行指令的发布,在发布指令界面可以向任意一搜航班发送信息。当信息发送错误时,可以点击修改指令进行修改,或者点击删除指令重新对指令进行发布。如图:
图6-10 指令信息发布
图6-11修改指令信息
图6-12 删除指令信息
在显示航班指令信息和执行航班指令信息的操作时,都需要访问数据库或者将修改写入数据库,以指令信息的读取为例,则我们需要如下代码:
public ResultSet standardList(Connection con,PageBean pageBean,Standard standard)throws Exception{
StringBuffer sb=new StringBuffer("select * from t_standard s,t_grade g where s.gradeId=g.id");
return pstmt.executeQuery();
}
public int standardCount(Connection con,Standard standard)throws Exception{
StringBuffer sb=new StringBuffer("select count(*) as total from t_standard s,t_grade g where s.gradeId=g.id");
PreparedStatement pstmt=con.prepareStatement(sb.toString());
ResultSet rs=pstmt.executeQuery();
}
在删除航班信息时,如果航班已经发出指令,则不能删除航班,这就涉及到数据库的关联操作:
public boolean getStandardByGradeId(Connection con,String gradeId)throws Exception{
String sql="select * from t_standard where gradeId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, gradeId);
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
return true;
}else{
return false;
}
}
6.4 机长端功能的实现
6.4.1 机长端航班信息显示的实现
点击机长端中的航班信息查询按钮,弹出航班信息查询界面,界面可以关闭和刷新。可以查看此次航班的信息,并对航班现在的状态进行实时的更新。在机长想要查看自己所飞航班的信息时,点击下拉框,选择自己将要飞行的航班班次;若航班状态发生改变,则点击更新航班状态按钮对航班状态进行实时更新。如图6-13所示:
图6-13 航班信息查询
显示航班信息需要读取数据库,进行搜索操作时也需要读取数据库,其读取数据库的代码与地面指挥端的代码基本一致。
服务器端需要读取每一条数据的行和页,这里服务器端dopost和doget方法代码也和地面指挥端的代码基本一致。
对指定航班状态进行更新,如图所示:
图6-14 更新航班状态
在更新航班状态时,会在数据库中读取和写入信息,代码为:
public int gradeCount(Connection con,Grade grade)throws Exception{
StringBuffer sb=new StringBuffer("select count(*) as total from t_grade");
if(StringUtil.isNotEmpty(grade.getGradeName())){
sb.append(" and gradeName like '%"+grade.getGradeName()+"%'");
}
PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and", "where"));
ResultSet rs=pstmt.executeQuery();
}
public int gradeModify(Connection con,Grade grade)throws Exception{
String sql="update t_grade set gradeName=?,gradeDate=?,gradeLine=?,gradeState=? where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, grade.getGradeName());
pstmt.setString(2, grade.getGradeDate());
pstmt.setString(3, grade.getGradeLine());
pstmt.setString(4, grade.getGradeState());
pstmt.setInt(5, grade.getId());
return pstmt.executeUpdate();
}
6.4.2 地面指挥端航班指挥信息管理功能的实现
机长端航班指挥信息管理的主要功能是航班指令的发布、航班指令的修改和删除,还有不同的条件查询。我们这里提供了各种不同条件的航班指令信息查询方法方便航班指令信息的查看和管理。当收到塔台发出的请求或者遇到情况时,机长端点击发布指令进行请求指令的发布,在发布指令界面可以向塔台发送信息。当信息发送错误时,可以点击修改指令进行修改,或者点击删除指令重新对指令进行发布。如图6-15所示:
图6-15 航班指挥信息管理
航班指挥信息管理的主要功能是航班请求的发布、航班请求的修改和删除,还有不同的条件查询,如图:
图6-16 请求信息发布
图6-17修改请求信息
图6-12 删除请求信息
在显示航班指令信息和执行航班指令信息的操作时,都需要访问数据库或者将修改写入数据库,则我们需要如下代码来访问数据库:
public ResultSet standardList(Connection con,PageBean pageBean,Standard standard)throws Exception{
StringBuffer sb=new StringBuffer("select * from t_standard s,t_grade g where s.gradeId=g.id");
PreparedStatement pstmt=con.prepareStatement(sb.toString());
return pstmt.executeQuery();
}
public int standardCount(Connection con,Standard standard)throws Exception{
StringBuffer sb=new StringBuffer("select count(*) as total from t_standard s,t_grade g where s.gradeId=g.id");
PreparedStatement pstmt=con.prepareStatement(sb.toString());
ResultSet rs=pstmt.executeQuery();
}
7 系统的测试与维护
7.1 测试描述
在软件开发的生命周期中,软件测试是无处不在的,它是软件开发整个过程的非常重要的组成部分,软件完成的好坏就是由软件测试决定的。软件测试有静态测试和动态测试,所谓静态测试就是不需要去执行软件,而是直接用人脑的思维去评判软件的好坏;动态测试需要进行软件的运行,来检测软件的好坏。在软件的不同阶段也有着不同的软件测试程序,在软件初步开发阶段有单元测试,在软件开发中后期有集成测试和系统测试,最后在软件验收前有验收测试。从软件工程的算法角度分还有黑盒和白盒测试。
7.2 测试目的
1.确定该系统中的各数据信息和该测试的各个部件。
2.确定该系统能够很好的处理以下的几点功能:
地面指挥员端:
1.指挥员登录
2.航班信息的浏览
3.航班信息的操作
航班的删除
航班的添加
航班信息的修改
航班信息的搜索
4.指挥信息的操作
指挥信息的查询
指令的发布
指令的修改
指令的删除
机长端:
1.机长登录
2.航班信息的查询
3.航班指挥信息的操作
航班指挥信息查询
航班请求的发布
航班请求的删除
航班请求的修改
7.3 测试范围
1.单元测试,是指对软件开发中的最小可运行单元进行动态运行测试和静态测试,单元测试通常被用于测试在特定场景下所被测试的函数行为特征。
2.集成测试是单元测试的更高级阶段,它用来测试每个单元的协同配合情况,测试每个单元集成起来是否可以达到预期的效果。
3.系统测试是对系统整体在开发阶段进行的测试,他是测试所有集成模块所组成的完整系统的功能是否完善,是否与需求分析时确定的系统功能所吻合,是否应该对程序的某一部分进行最后的修改。
4.验收测试主要以用户测试为主,主要测试客户的满意度;或者是软件测试人员陪同客户进行程序的功能和客户满意度测评,是软件开发阶段的最后一个步骤,测试通过则系统就可以交付使用。
7.4 测试用例
表7-1 部分测试用例
7.5 测试结果分析
本基于JAVA的机场航班起降与协调管理系统,在所有的按钮的测试、输入框和其他功能组建的测试中,顺利实现功能,并且功能相对完善,经过各项测试,本系统基本完成了系统的开发目的,通过了单元测试、集成测试、系统测试及验收测试,基本达到了测试的要求,完成测试,软件可以进行验收。
8 结束语
省略
参考文献
[1]周雪芹. 基于java的软件开发全过程实战[M]. 北京:科学出版社,2016.
[2]李恩临.基于Java的面向对象开发技术[M].北京:中国财富出版社,2016.
[3]郭卫.机场航班运作管理信息系统设计与应用 [J]. 计算机工程, 2005,(13):3.
[4]及燕丽,彭小卫,宋贤群. 一种基于UML类图的关系数据库表设计方法[A]. 2008.
[5]于凤波.机场航班信息管理系统的设计[J].民航科技,2004,(05):2.
[6]罗峥等. 机场航班信息显示系统的设计与实现[D]. 北京:北京邮电大学,2006.
[7]唐远新等.Oracle数据库实用教程[M].北京:高等教育出版社,2005…
[8]李爱萍.系统分析与设计[M].北京:人民邮电出版社,2015.
[9]Wigglesworth.Java programming[M].Course Technology,1999.
[10]James Wightman. Pro SQL Server 2005 Integration Services[B]. Apress, 2008
[11]Aart van Harten .Intercontinental airline flight schedule design[C]. Scientific and Technical Documents Publishing House,1998.
致 谢
省略
外文原文
省略
中文翻译
省略
本项目源码及完整论文如下,有需要的朋友可以点击进行下载
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基基于java+Jsp+Mysql的机场航班起降与协调管理系统设计与实现(源码+文档)_Jsp_机场航班起降与协调管理系统.zip于 |