1、1摘 要在现实生活中,人们往往要处理大量繁杂的数据。在这种情况下,利用日趋成熟的计算机技术和数据库查询技术来进行数据处理非常方便。各种信息查询软件也就随之出现了。当今的航空客运服务业发展十分迅速,它是现代生活高节奏的一个有力体现。在航空服务业中,飞机订票业务是一项重要内容,它大大方便了人们的旅行。当前中国民航市场扩大迅速,随着生活水平的提高,越来越多的人选择飞机出行,对航空公司的服务要求的越来越高,为了适应快速发展的需求,查询大量数据,有效地稳定的查询航空公司,在此将开发一个航空公司信息查询系统,要求能通过该系统为旅客提供方便的航空路线查询。【关键词】:航空信息查询;软件工程;Java2目 录
2、一、系统设计概述 .4(一)系统的开发的目的与意义 .4(二)系统的开发背景 .4二、可行性研究与需求分析 .6(一 )可行性研究 .6(二)需求分析 .7三、 总体设计 .8(一)总体设计原理 .8(二)系统功能分析 .9(三)系统模块设计 .9(四)系统结构图 .9(五)系统的数据库设计 .10四、详细设计 .12(一)设计概述 .12(二)系统登录界面设计 .13(三)系统首界面设计和查询设计 .14(四)系统维护设计 .14五、系统测试、编译与发行 .15(一)程序功能测试 .15(二) 测试 bug: .16结束语 .17参考文献 .183一、系统设计概述(一)系统的开发的目的与意义
3、随着科学技术的不断的进步和发展,计算机已经应用到各个领域。在科学研究、军事领域、计算机图形学、以及小到我们的日常生活中计算机无处不在,尤其是目前,计算机软件技术的发展已达到了相当高的水平,它含盖了我们生活的方方面面,例如:大型超市查询系统、公司查询系统、教学查询系统、酒店查询系统等都是现在的热点开发项目。目前,我国一些旅行社和酒店的机票预定还停留在人工处理阶段,这已经严重制约了工作效率,在计算机技术高速发展的今天,有必要引入高效的计算机系统,来协助处理机票预定工作。因此,开发一套具有完整的存储,查询,核对,打印机票功能的实时机票预定系统更现紧迫。机票预定系统应克服存储乘客信息少,查询效率低下等
4、问题外,更重要的是其安全性,可靠性,这关系到航班和乘客的安全及准确,本系统因面向广大机票预定网点,因此要能在售票网点中普及,则需要开发一个功能全,价格能被顾客所接受的系统。在系统开发中包括很多环节,例如旅客信息的输入、机票信息的传递及接收、取票通知及帐单的生成和打印、机票销售情况的核算等等。其中较为重要的一个环节是旅客信息查询系统,同时在此系统中也是一个比较繁杂的环节。(二)系统的开发背景 随着科学技术的发展,新颖的图形用户界面、卓越的多任务操作系统性能、高层次的软件开发平台风靡全球。人们要求的不断提高,可视化的图形用户界面对比原来的结构化程序设计语言更为简单易用,且编程系统采用面向对象、事件
5、驱动的编程机制,提供了一种所见即所得的可视界面设计方法。在众多的编程语言中,VB 可以快速地创建多媒体、图形界面等应用程序。 VB6.0企业版除了具有专业版的全部功能外,还包括 BackOffice。目前在大多数机票预订系统中,各种操作工作主要还是完全依赖于人工完成,例如:在机票的预订中每天的销售额统计,通过人工进行计算,这需要查询人员的很好的记忆力及计算能力,4但工作中的数据量一旦增加,人工计算就会显示工作效率低,计算不准确等因素,还可能受到外在因素的影响。人工查询还存在许多弊端,由不可避免的人为因素引起,造成数据错误、遗失等。而计算机查询存储量大,运算速度快等许多诸多优点,给我们提供了处理
6、信息及时、快捷,因此我们可以利用计算机,实现系统的查询。5二、可行性研究与需求分析(一 )可行性研究新系统目标应充分为机票预定查询服务,同时,新系统目标应该和现行系统的各项基本功能密切相关,并且可以分期分批实现。需要指出的是,新系统目标不可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。新系统目标的提法不尽相同。1技术可行性随着计算机科学技术的不断进步,查询信息系统在各个领域上广泛应用。我国虽处在发展中,但商品经济的热潮已经不断增长,且人们对于科技的投资正在不断的加大,在现代的网络与信息技术的高速发展人们对生活质量的要求不断的提高,及信息技术的依赖,为了适应当前的发展形势,
7、跟上现代科技的发展所以我们有必要为当前数量较多的酒店、旅行社及机票预售点设计更为方便快捷的系统,从而更有利于经济的发展。该机票预定系统是以数据库为后台核心应用、以服务为目的信息平台,对资源进行科学的加工整序和查询维护。2经济可行性该系统的目标是以最低的成本,最低的投入,在较短的时间内参阅大量的资料开发出具有用户登录、存储,查询,核对,打印机票等基本功能,预期系统设计期间所投入的资金较小,从经济角度考虑,此系统开发可行。3操作可行性目前,市场经济已经覆盖了全国各个地区,大中小型发达城市,从而满足了人们日益增长的物质需求。人们物质文化水平的不断提高和科学技术的不断进步以及人们对快速高效的工作效率要
8、求不断的提高,为我们开发使用机票预订系统打下了坚实的基础。4社会因素可行性从安全角度考虑,所有技术参考资料都经授权,所有软件都选用正版和免费。6(二)需求分析1系统功能及用户需求分析该系统主要分为五大功能:系统查询、新增、修改、查询和系统维护。机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。2。数据描述机票预定系统的数据需求包括如下几点:数据录入和处理的准确性和实时性数据
9、的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。7三、 总体设计 (一)总体设计原理典型的 J2EE 三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问
10、及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的 JSP 技术,自 1999 年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。 Web 层,就是 MVC 模式里面的“C” (controller ) ,负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的 MVC 框架采用Struts。Service 层(就是业务逻辑层) ,负责实现
11、业务逻辑。业务逻辑层以 DAO 层为基础,通过对 DAO 组件的正面模式包装,完成系统所要求的业务逻辑。DAO 层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用 Hibernate 作为 ORM 框架。Spring 的作用贯穿了整个中间层,将 Web 层、 Service 层、DAO 层及 PO 无缝整合,其数据服务层用来存放数据。Struts 跟 Tomcat、Turbine 等诸多 Apache 项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解
12、其内部实现机制。在传统的 Model 1 的程序结构中,只要有一点小的需求发生改变,将意味着放弃整个页面。或者改写。虽然前期的开发速度快,除非可以保证以后永远不会改变应用的结构,否则不要采用 Model 1 的结构。采用 Hibernate 作为持久层技术的最大的好处在于:可以完全以面向对象的方式进行系统分析、系统设计。DAO 模式需要为每个 DAO 组件编写 DAO 接口,同时至少提供一个实现类,根据不同需要,可能有多个实现类。用 Spring 容器代替 DAO 工厂通常情况下,引入接口就不可避免需要引入工厂来负责 DAO 组件的生成。Spring 实现了两种基本模式:单态模式和工8厂模式。
13、而使用 Spring 可以完全避免使用工厂模式,因为 Spring 就是个功能非常强大的工厂。因此,完全可以让 Spring 充当 DAO 工厂由 Spring 充当 DAO 工厂时,无须程序员自己实现工厂模式,只需要将 DAO 组件配置在 Spring 容器中,由 ApplicationContext 负责查询 DAO 组件的创建即可。借助于 Spring 提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用 DAO 实例。(二)系统功能分析 该系统从功能实现了对航空信息的查询,修改,删除,添加功能。在该系统中主要是对航空信息的操作和查询,修改,删除,添加功能都是为查询做基础,在整个系
14、统中作为用户只对查询功能做操作,通过删除,修改,添加功能来及时更新航空信息,以保证用户在查询航空信息的时候能得到更全面更及时的信息。这样使得该系统的实用性更强。(三)系统模块设计 该系统从模块划分可以分为两大模块:用户查询模块,查询员对航空信息的维护模块。1.用户查询模块的设计机制就是用户和服务器的交流,通过用户给定的条件提交给服务器,服务器返回给用户需要的信息。2.查询员维护模块通过查询,修改,删除,添加功能及时的维护服务器的数据和信息,保证航空信息的真实,及时,全面性。(四)系统结构图从功能和模块结合,系统结构和流程图如下(图 3-1):9数据库用户查询员用户筛选条件身份验证 维护和更新数
15、据服务器图 3-1 系统流程图(五)系统的数据库设计 本系统建有两张数据表:用户信息表(tb_user)和航空信息表(tb_ ticket)。1. 用户信息表(tb_user)( 表 3-1)用于保存用户的信息表 3-1 用户信息表字段名 数型 字段描述userid Number 用户的唯一标识(seq_userid)Username Char(32) 用户登录的用户名Password Char(32) 用户登录的密码Tel Char(16) 用户的电话e-mail Char(32) 用户的电子邮件Address Char(256) 用户地址102. 航空信息表(tb_ ticket)(表 3
16、-2)用于保存航空信息。表 3-2 航空信息表字段名 数据类型 字段描述Ticketid Number 机票的唯一标识(seq_ticketid)Ticketnum Char(32) 机票编号Ticketname Char(128) 机票对应的航空公司Start Char(128) 飞机起点站End Char(128) 飞机终点站Surplus Number 机票剩余的数量Flightnum Char(32) 航班编号Starttime Char(32) 飞机起飞时间Endtime Char(32) 飞机到终点时间price Float 飞机票价格11四、详细设计 (一)设计概述 从设计上概述
17、,该系统使用了 MVC 模式设计,MVC 英文即 Model-View-Controller,即把一个应用的输入、处理、输出流程按照 Model、View、Controller 的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视 图 (View)代 表 用 户 交 互 界 面 , 对 于 Web 应 用 来 说 , 可 以 概 括 为 HTML 界面 , 但 有 可 能 为 XHTML、 XML 和 Applet。 随 着 应 用 的 复 杂 性 和 规 模 性 , 界 面 的处 理 也 变 得 具 有 挑 战 性 。 一 个 应 用 可 能 有 很 多 不 同 的 视 图 ,
18、 MVC 设 计 模 式 对 于视 图 的 处 理 仅 限 于 视 图 上 数 据 的 采 集 和 处 理 , 以 及 用 户 的 请 求 , 而 不 包 括 在 视 图上 的 业 务 流 程 的 处 理 。 业 务 流 程 的 处 理 交 予 模 型 (Model)处 理 。 比 如 一 个 订 单 的视 图 只 接 受 来 自 模 型 的 数 据 并 显 示 给 用 户 , 以 及 将 用 户 界 面 的 输 入 数 据 和 请 求 传递 给 控 制 和 模 型 。模 型 (Model): 就 是 业 务 流 程 /状 态 的 处 理 以 及 业 务 规 则 的 制 定 。 业 务 流 程
19、 的 处理 过 程 对 其 它 层 来 说 是 黑 箱 操 作 , 模 型 接 受 视 图 请 求 的 数 据 , 并 返 回 最 终 的 处 理结 果 。 业 务 模 型 的 设 计 可 以 说 是 MVC 最 主 要 的 核 心 。 目 前 流 行 的 EJB 模 型 就 是一 个 典 型 的 应 用 例 子 , 它 从 应 用 技 术 实 现 的 角 度 对 模 型 做 了 进 一 步 的 划 分 , 以 便充 分 利 用 现 有 的 组 件 , 但 它 不 能 作 为 应 用 设 计 模 型 的 框 架 。 它 仅 仅 告 诉 你 按 这 种模 型 设 计 就 可 以 利 用 某 些
20、技 术 组 件 , 从 而 减 少 了 技 术 上 的 困 难 。 对 一 个 开 发 者 来说 , 就 可 以 专 注 于 业 务 模 型 的 设 计 。 MVC 设 计 模 式 告 诉 我 们 , 把 应 用 的 模 型 按一 定 的 规 则 抽 取 出 来 , 抽 取 的 层 次 很 重 要 , 这 也 是 判 断 开 发 人 员 是 否 优 秀 的 设 计依 据 。 抽 象 与 具 体 不 能 隔 得 太 远 , 也 不 能 太 近 。 MVC 并 没 有 提 供 模 型 的 设 计 方法 , 而 只 告 诉 你 应 该 组 织 管 理 这 些 模 型 , 以 便 于 模 型 的 重
21、构 和 提 高 重 用 性 。 我 们可 以 用 对 象 编 程 来 做 比 喻 , MVC 定 义 了 一 个 顶 级 类 , 告 诉 它 的 子 类 你 只 能 做 这些 , 但 没 法 限 制 你 能 做 这 些 。控 制 (Controller)可 以 理 解 为 从 用 户 接 收 请 求 , 将 模 型 与 视 图 匹 配 在 一 起 , 共同 完 成 用 户 的 请 求 。 划 分 控 制 层 的 作 用 也 很 明 显 , 它 清 楚 地 告 诉 你 , 它 就 是 一 个12分 发 器 , 选 择 什 么 样 的 模 型 , 选 择 什 么 样 的 视 图 , 可 以 完 成
22、 什 么 样 的 用 户 请 求 。控 制 层 并 不 做 任 何 的 数 据 处 理 。 例 如 , 用 户 点 击 一 个 连 接 , 控 制 层 接 受 请 求 后 , 并 不 处 理 业 务 信 息 , 它 只 把 用 户 的 信 息 传 递 给 模 型 , 告 诉 模 型 做 什 么 , 选 择 符 合要 求 的 视 图 返 回 给 用 户 。 因 此 , 一 个 模 型 可 能 对 应 多 个 视 图 , 一 个 视 图 可 能 对 应多 个 模 型 。 模 型 、 视 图 与 控 制 器 的 分 离 , 使 得 一 个 模 型 可 以 具 有 多 个 显 示 视 图 。 如 果用
23、 户 通 过 某 个 视 图 的 控 制 器 改 变 了 模 型 的 数 据 , 所 有 其 它 依 赖 于 这 些 数 据 的 视 图都 应 反 映 到 这 些 变 化 。 因 此 , 无 论 何 时 发 生 了 何 种 数 据 变 化 , 控 制 器 都 会 将 变 化通 知 所 有 的 视 图 , 导 致 显 示 的 更 新 。 这 实 际 上 是 一 种 模 型 的 变 化 -传 播 机 制 。 模型 、 视 图 、 控 制 器 三 者 之 间 的 关 系 和 各 自 的 主 要 功 能 。(二)、总体设计构架。1、 设 计 需 要 的 架 包 , 以 下 架 包 , 包 括 了 ss
24、h 三 大 框 架 需 要 的 架 包 和 数 据 库 驱动 架 包 , 如 图 : 图 4-113图 4-1 系 统 架 包 结 构2、 后 台 java 代 码 部 分 创 建 的 类 和 包 。后 台 代 码 部 分 完 成 了 分 为 两 点 , 数 据 操 作 和 逻 辑 控 制 , 数 据 操 作 主 要 是 在avitionDAO 和 avitionservice 两 个 包 中 , 使 用 spring 的 原 理 操 作 数 据 , 包 类 架 构如 下 , 图 4-2图 4-2 后 台 代 码 结 构143、 前 台 页 面 设 计 构 架 , 前 台 页 面 分 为 前
25、台 和 后 台 两 个 模 块 , 模 块 一 , 用 户 查询 模 块 , 模 块 二 , 管 理 员 数 据 管 理 页 面 , 设 计 构 架 如 图 , 图 : 4-3图 : 4-3 前 台 页 面 结 构4、 css 样 式 和 js 架 包 设 计 构 架在 前 台 页 面 设 计 上 , 为 了 保 证 给 用 户 友 好 的 界 面 操 作 , 主 要 使 用 了jquery 框 架 , 和 css 样 式 设 计 , 为 了 保 证 用 户 和 管 理 员 在 查 询 条 件 和 数 据 操 作 时的 对 字 段 的 一 致 性 , 页 面 设 计 上 使 用 了 日 历 选
26、 择 器 和 全 国 省 市 二 级 联 动 。 器 架 包架 构 如 图 : 图 4-4图 4-4 css 和 js 架 包 结 构155、 struts 和 spring 配 置Struts 和 spring 配 置 文 件 提 供 了 , 前 台 和 后 台 java 代 码 的 交 互 , 以 及 提供 了 连 接 数 据 库 的 连 接 , 配 置 代 码 如 见 附 录 struts.xml。Beans.xml:(二)系统登录界面设计 如图 4-5,登录页面的设计的要点在于登录验证,对于管理员的帐号和密码必须在服务器是存在的,密码输入框的 type 为 password,并且在管理
27、员输入帐号或密码错误,帐号和密码没有输入的情况下都给于不同的提示,以引导管理员正确的登录。图 4-5 系统登录界面(三)系统首界面设计和查询设计如图 4-5 在首页将页面分为条件输入模块和返回信息显示模块。在条件输入模块中对于地点的输入使用 jquery 的动态级联选择城市,日期使用 jquery 的日期选择器来选择时间,这样做的好处是保证了数据类型的稳定,不需要对用户提供的条件信息做太多的筛选。在返回信息显示模块中使用了标签迭代显示信息,16同时使用无刷新分页异步请求技术,减少了用户等待的时间。图 4-6 查询设计界面(四) 后台管理设计作为后台管理页面对数据的更新,系统提供了对航空信息的查
28、询,修改,查看,删除四个功能,以保证能及时的更新航空信息。1、航空信息浏览页面。航空信息浏览页面,在管理员登录后直接跳转到该页面,提供给管理员浏览信息,页面如下:图 4-7图 4-7 信息浏览界面172、航空信息查看页面点击每条记录后面的【详情】标签,页面将跳转到航空信息详情也页面,提供更详细的信息,如图:图 4-8图 4-8 信息详情界面3、航空信息删除功能。在浏览的过程中,如果需要删除页面信息,就在每条记录前面的多选框打上勾,然后点击表头上的【删除】按钮,选中的信息就会呗删除。4、航空信息修改页面。点击每条记录后面的【修改】标签,页面跳转到修改页面,并且页面会显示该条记录的详细信息,如果需
29、要修改某一个字段,可直接在文本框输入修改后的信息,如图:图 4-918图 4-9 信息修改页面(五)系统维护设计系统的维护设计依赖于管理员的后台操作,在管理员操作模块中,通过系统提供的对航空信息的添加、修改和删除功能及时的更新数据库信息。作为维护设计专门提供的管理员操作模块主要是为了给信息和数据库的维护提供了方便和简单的操作维护。以提高系统的性能。19五、系统测试、编译与发行 (一)程序功能测试该系统测试环境如下表:表 5-1 系统测试环境表硬件环境 Cup“双核 1.75GHz 内存:1GB软件环境 Window 7、myeclipse6.5、jdk1.6.2 、tomcat6.0、IE9在
30、系统的测试过程,以用户的身份登录 index.jsp 页面做测试,步骤如下:1. 输入条件,如表:表 5-2 输入条件表系统需要条件 用户输入条件 输入数据类型出发城市 武汉 String到达城市 上海 String出发时间 20120228 String2. 服务器返回数据信息,如表:表 5-3 返回数据表返回信息名 返回信息数据 返回信息数据类型出发城市 武汉 String到达城市 上海 String航班编号 2012022801 Int航班起飞时间 201202281445 Int航班降落时间 201202281326 Int飞机票价格 248.00 Float3.测试流程图如下:20开
31、始输入条件条件判断是否响应返回数据结束FalseTrueFalseTrue向服务器发出请求图 5-1 系统测试流程图(二) 测试 bug:测试过程中,使用了大量的测试数据进行测试系统的性能,用户数据输入错误给予提示:出发城市有误、到达城市有误、出发时间有误、没有您需要的信息等。出现的 bug 主要在服务器返回数据不全面,无法返回数据等,通过大量的测试最终解决 bug。21结束语 在万般煎熬中完成了前面连篇累牍的正文内容之后,总算能够开始写结束语,这应该是一个小小的胜利。我也很高兴看到在大学本科的毕业设计论文中能设置“结束语”这么一个富有人性化的小版块。但我相信“结束语”在各位审阅论文老师心中的
32、权重较之论文正文内容恐怕不可同日而语,即便是学生随便写些东西充字数或者干脆写一套形式化的语言,相信各位老师也会足够大度,不去计较。但我想既然是设置了这么一个人性化的版块,不如就写些人性化的东西,想我所写,写我所想,为冷冰冰的论文增加一些人味儿,附带为论文充些字数。如果说我大学三年在自己的专业领域内有什么重要收获的话,那就是在三年的大学中,我对计算机的兴趣再次的提升,从高中对计算机的一种无知的狂热,到现在自己都能成为一个能做出设计的程序员,我感到很大的欣慰。计算机这个改变这个社会运作的东西,让我们在不管是学习或者是工作亦或者是生活中给我们带来的不仅仅是乐趣,更多的是方便和快捷。大学三年的学习让我
33、成为了一名小小的程序员,希望以后的工作中,我能成为一名提升社会对计算机使用的质量的程序员。最后还要感谢很多为我上过课的老师,感谢他们宽进宽出的教学态度,各具特色的教学方法和全心全意替学生着想的无私精神,使得我各个学科的期末考试和历次课程设计都能顺利通过。这些老师是中国众多高校教授的代表,通过这些老师,我也见识了不少实用主义的工作作风和技巧,想必以后能从中受益。22参考文献 1 姚春龙,数据库系统基础教程,北京航空航天大学出版社,2003 年 3 月2 赵强, SQL Server 数据库编程技法范例,清华大学出版社,2005 年 3 月3黄梯云,管理信息系统,高等教育出版社,20084甘初初,
34、信息系统开发,经济科学出版社,20055 肖金秀. JSP 网络编程技术 M. 北京:清华大学出版社 2007:14-17.6 郑人杰,殷人昆 . 软件工程概论M. 北京:清华大学出版社 2004:65-70.7 耿祥义,张跃平 编著.JAVA2 实用教程(第二版) M.北京: 清华大学出版社,2004.11.8 孙卫琴精通 Struts:基于 MVC 的 Java Web 设计与开发 北京:电子工业出版社,2004: 1-99 毕建信基于 MVC 设计模式的 Web 应用研究与实现 武汉:武汉理工大学,200610 贺松平基于 MVC 模式的 B/S 架构的研究及应用 武汉:华中科技大学,2
35、3【附录】一、struts.xml 文件代码如下:avitionindex.jspindex.jspindex.jsplistavitionlogin.jsplistavitionupdateavition.jsp24listavitionshowavition.jsplistavitionindex.jspindex.jspindex.jsp二、beans.xml 代码如下:classpath*:/application.propertiesafter_transaction$hibernate.dialect$hibernate.show_sql$hibernate.format_sqlcom/avition/dto/user.hbm.xml26com/avition/dto/avitionPiao.hbm.xml27