(精品论文)交通信息网上查询系统—毕业论文_第1页
(精品论文)交通信息网上查询系统—毕业论文_第2页
(精品论文)交通信息网上查询系统—毕业论文_第3页
(精品论文)交通信息网上查询系统—毕业论文_第4页
(精品论文)交通信息网上查询系统—毕业论文_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计(论文)题目: 交通信息网上查询系统 的设计与实现 院系: 计算机与信息工程学院 专业年级: 计 算机科学与技术 学生姓名 : 学号: 指导教师: 41交通信息网上查询系统的设计与实现摘要 当前我国交通网上信息系统的发展处于一个较高的水平,广大乘客可以通过许多的方式获得交通信息,例如:通过使用火车、飞机时刻表,或者是到各个旅游网站、地图网站去查询。但大多数的查询方式都只提供了一种交通工具的查询,要么只有火车、要么就只有飞机或者公交车,很少有同时包含三种查询方式的。为了解决这种问题,设计一个包含三种查询方式的交通信息网上查询系统是具有一定实际应用意义的。在此背景下,本文首先考虑了我国交通的现状和不同乘客的实际要求,分析了此系统应该具有的功能;其次对系统的主要功能模块进行了详细地描述,其中主要包括各查询模块(包括按列车查询、按航班查询和按公交车查询)和管理更新模块(包括列车信息管理、航班信息管理和公交信息管理,以及对管理员的管理),最后结合系统开发阶段和调试阶段发现的问题,提出了系统需要完善的地方,总结了开发此系统所取得的经验和体会。该系统为浏览器/服务器结构,主要采用JSP、Hibernate和Java Bean技术,用JAVA语言编写,数据库采用SOL Server 2000。关键词 交通信息网上查询系统 三种查询方式 浏览器/服务器结构 数据库The Design and Implementation of Online Traffic Information SystemAbstract On current, the development of online information system of China Transportation is in a higher level. The extensive passengers can gain traffic information by a lot of ways, such as: use the train schedule, the aircraft schedule, or use the various travel sites, map sites to seek traffic information. But most sites only provide one means of transport queries, like use the train or plane or bus only, only a few inquiries that include three kinds of inquiry ways at the same time. To solve this problem, design a query system that contains three kinds of traffic information on-line inquiries is the practical application of the certain significance.In this context, the paper firstly considers our present traffic status and different requirements of passengers, analyses the required function of the system. And then gives a detailed description of the main functional modules, mainly including every Query Module (including train inquiries, air inquiries and bus inquiries) and the Update Management Module (including train information management, air information management, bus information management and administrator management).In the end, according to the problems found in the development and debugging phase, propose what the system should be improved and sum up the development experiences.This system is Browser/Server structure,and compiling with JAVA mostly adopts technology of JSP and Hibernate and JAVA Bean. Database adopts SQL Server 2000.Key words The Design and Implementation of Online Traffic Information System Three kinds of inquiry ways Browser/Server structure Database目录第一章引言11.1 课题背景11.2 本课题研究的意义11.3 本课题的研究方法21.4 本文所做工作21.5 涉及技术介绍21.5.1 数据库技术21.5.2 Dreamweaver技术31.5.3 Hibernate技术41.5.4 JSP技术51.5.5 JavaBean技术61.5.6 B/S结构介绍7第二章 总体设计92.1 系统概述92.2 开发环境92.2.1 硬件环境92.2.2 软件环境92.3 数据流图(DFD图)102.3.1 顶层图102.3.2 0层图102.3.3 1层图112.4 数据库设计142.4.1 概念设计142.4.2 E-R图152.4.3 数据库中表的具体设计152.5 模块结构图192.6 各功能模块简介19第三章 详细设计213.1 逻辑流程图213.2 具体功能详细说明213.2.1 列车信息查询模块223.2.2 航班信息查询模块253.2.3 公交车信息查询模块273.2.4 后台管理模块32第四章 总结35第五章 展望39谢辞40参考文献41第一章 引言1.1 课题背景随着科学技术的迅猛发展,计算机网络已经得到了广泛的应用。几乎各行各业都有关于网络的使用,这使得计算机网络已成为社会中普遍存在的事物。由于计算机网络的使用,使得人们在管理、应用及服务等各个领域使用数据方面变得更加简洁,更加方便,大大提高了工作效率,产生了以计算机网络为主体,以人为辅助的局面。近几年来,网络化在全国交通行业发展很快。网络技术的高渗透性和高集成能力,为交通信息网络化建设提供了充分的技术支撑,有效地改造和提升了交通传统产业。交通信息网络化在平稳中发展,交通行业信息化发展和应用水平有了进一步提高。交通信息网上查询系统,就是将各类交通班次的出发时间、经过城市、所需价格等相关信息放在WEB服务器中,并通过网络上的计算机终端通过特定的条件将其检索出来。随着国内经济的不断发展,交通条件的发展呈现出无法比拟的优势:数量上的海量化、繁多的种类、分布开放、时效性、高增值性等。当前我国交通网上信息系统的发展处于一个较高的水平,广大乘客可以通过许多的方式获得交通信息,例如:通过使用火车、飞机时刻表,或者是到各个旅游网站、地图网站去查询。但国内目前类似的系统比较多的是单一的城市的公交查询系统,而同时包含公交车、列车、航班查询的交通查询系统并不多见,由于交通工具单一,一个系统只支持火车或飞机,加之服务与成本意识较为薄弱,使城际间的交通信息查询常常给旅客带来困绕。1.2 本课题研究的意义旅客是交通体系赖以生存和发展的根本,尊重旅客,以旅客的需求为中心,不只是一句口头上的空话,而要付诸行动。因此希望通过此次调查研究,设计出一个包含三种查询方式的更适合旅客的交通信息查询系统,在有限的成本范围内提高旅客的满意度,在侧面完善我国的交通体制。并逐步形成一个完整的交通信息查询体制,方便以后旅客的查询和相关部门的统计。1.3 本课题的研究方法通过借鉴现有网上的火车时刻查询系统、公交查询系统以及航班查询系统等,做出分析报告,然后通过使用Dreamweaver技术、JSP技术、Hibernate技术和SQL2000数据库来进行开发。在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法,然后用这个流程进行本次开发。1.4 本文所做工作首先介绍了交通信息网上查询系统的开发背景、意义及研究方法,接下来又对在开发过程中所用到的技术进行介绍,其中包括:数据库技术、Dreamweaver技术、Hibernate技术、JSP技术、JavaBean技术以及B/S模式的概念、特点;然后在总体设计中对系统进行概述、说明运行环境、绘制数据流图,以及对数据库进行概念设计及绘制ER图,通过系统流程图划分各功能模块等;在详细设计中则对各功能模块进行深入的分析介绍,给出其具体的实现方法、过程,在这一部分还具体贴出了实现功能的源代码以及运行结果截图;最后,在结束语的总结部分指出了系统的亮点以及不足之处,简单介绍了自己开发过程中的所遇到的困难及解决办法。1.5 涉及技术介绍1.5.1 数据库技术数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。优秀的数据库设计是应用成功的基石。万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。(1)数据的体系结构数据的体系结构分成三级:内部级(Internal),概念级(Conceptual)和外部级(External)。这个三级结构有时也称为“三级模式结构”。外部级:最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。概念级:涉及到所有用户的数据定义、是全局的数据视图。全局视图的描述称为“概念模式”。内部级:最接近于物理存储设备,涉及到实际数据存储的结构物理存储数据视图的描述称为“内模式”。数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。1.5.2 Dreamweaver技术Dreamweaver是美国MACROMTDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。Dreamweaver具有灵活的运用样式,熟悉网页设计的网友都知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style 来调用Style标准,也可以直接在状态栏中的元素列表上单击右键来调用Style,直接选择属性中想要的效果,可以自动生成相对于的代码Style,简洁又方便。虽然不同的方法达到的效果看似一样,但实际上产生的HTML代码则完全不同。比如用Custon Style来调用Style标准,在网页代码中就生成一个标签,这样的标签多了就会使文件十分臃肿而且影响浏览器的解析速度,所以我们应尽量避免调用这种方法来调用Style。Dreamweaver具有活用的Format Table命令,在复杂的网页设计中,表格的应用是最多的,因为利用表格可以自由地控制文本和图像在网页上出现的具体位置,从而使整个网页看上去紧凑统一。Dreamweaver在这方面也不甘落后,我们可以使用其中的“Format Table”(格式化表格)命令来快速地对表格应用预先设计好的样式。Dreamweaver具有拖放自如的特点,在使用Dreamweaver编辑网页的时候,经常需要插入一些图像什么的,假设要插入的图像很多,按照常规方法来操作就显得非常麻烦。我们可以利用拖放技巧来很好地解决这个问题。首先我们把Dreamweaver的操作窗口变成活动窗口,以腾出空间来显示Explorer窗口,找到要插入的图像文件后,把它们一一用鼠标拖动到网页的适当部位,Dreamweaver将自动把这些图像URL添加到文件的HTML代码中,当然这里要求被拖动的图象文件必须是gif、jpg等web图像格式的文件。1.5.3 Hibernate技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操作数据库,Hibernate可以大大减少操作数据库的工作量。另外Hibernate可以利用代理模式来简化载入类的过程,这将大大减少利用Hibernate QL从数据提取数据的代码的编写量,从而节约开发时间和开发成本。Hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了,Hibernate 会替你照管所有的细节。Hibernate是连接 Java 应用程序和关系数据库的中间件。它对 JDBC API 进行了封装,负责Java对象的持久化。在分层的软件架构中它位于持久化层,封装了所有数据访问细节,使业务罗基层可以专注于实现业务逻辑。它是一种 ORM(Object-Relation Mapping 对象-关系映射)工具,能够建立面向对象的域模型和关系模型的映射。Hibernate的核心接口一共有5个(如图1所示),分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。图1-1 Hibernate核心接口1.5.4 JSP技术JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Script)和JSP标记(Tag),从而形成JSP文件(*.jsp)。简单的说,JSP可用一种简单易懂的等式表示为:HTML+JAVA=JSP。用JSP开放的Web应用时跨平台的,既能在Linux下运行,也能在其他操作系统中运行。JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。 由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。JSP 技术的强势 (1)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。 (2)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (3)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。图1-2 JSP的工作模式1.5.5 JavaBean技术JavaBean 是一种JAVA语言写成的可重用组件,是使用 java.beans 包开发的,它是 Java 2 标准版的一部分。JavaBean 是一台机器上同一个地址空间中运行的组件。JavaBean 是进程内组件。Enterprise Bean 是使用 javax.ejb 包开发的,它是标准 JDK 的扩展,是 Java 2 Enterprise Edition 的一部分。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBeans 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。 用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。 JavaBean是Sun微系统的一个面向对象的编程接口,它可以让你建可重用应用程序或能在网络中任何主流操作系统平台上配置的程序块,称作组件。像Java applet一样,JavaBeans组件(或“Beans”)能够给予万维网页面交互的能力,例如:计算感兴趣的比率或是根据用户或浏览器的特性改变页面内容。 从用户的观点来看,一个组件可以是一个与你交互的按钮或是一个当你按下按钮它便开始的小计算程序。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。从一个开发者的观点来看,那个按钮组件和计算器组件是分别被创建的,并且他们可以一起使用或是在不同的应用程序或情况下和不同的组件产生不同的组合来使用。JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。1.5.6 B/S结构介绍B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。图1-3 B/S结构图B/S结构采用星形拓扑结构建立企业内部通信网络或利用Internet虚拟专网(VPN)。前者的特点是安全、快捷、准确。后者则具有节省投资、跨地域广的优点。须视企业规模和地理分布确定。企业内部通过防火墙接入Internet,在整个网络采用TCP/IP协议。B/S架构具备极大的优越性(1)面向电子商务时代的技术将来所有的应用系统几乎都在互联网或企业内部广域网上运行,发展电子商务成为企业不可避免的信息化道路。B/S架构的软件正是电子商务的基石,正是这类软件使得移动办公和分布式协同工作真正成为现实。无论在世界的那个角落,只需要一台可以联网的设备(计算机、PDA甚至手机)都可以方便地与客户联系和与他人协同工作。(2)软件操作、维护和升级方式的革命软件系统的改进和升级越来越频繁,B/S架构的产品在维护和升级方面具备显著的优势。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只对服务器进行,通过远程连接服务器,异地的运维人员甚至于可以做到远程维护和升级,这对人力、时间、费用的节省是相当惊人的。所有的客户端只是浏览器,所有的操作都和上网浏览网页类似,使用者接受的培训也仅限于业务逻辑而无需将大量精力浪费学习软件操作上。(3)系统整合无论是办公自动化OA系统,人力资源HR系统,客户关系管理CRM系统等,发展的趋势是不断融合。而采用统一的B/S结构开发的产品无论是现在还是将来都是最好的选择,它提供了真正意义上无缝地与其它系统进行整合的方案。第二章 总体设计2.1 系统概述本系统所要实现的目标是:将各类交通班次的出发时间、经过城市、所需价格等相关信息放在WEB服务器中,并通过网络上的计算机终端通过特定的条件将其检索出来。在以实现这个目标为前提的条件下,本系统以全国城际交通路线为基础,将各类交通信息进行整合查询。本系统根据录入的数据,以及用户不同的要求,可以查询出各时段、班次、城市的列车信息和航班信息,还可以通过选择城市,来查询不同城市的公交车信息。另外,在城市公交信息查询中可实现对不能直达的站点进行转乘查询。涉及的功能范围有:列车站站查询、列车车站查询、列车车次查询、航班简单查询、航班条件查询、公交车直达查询、公交车一次换乘查询、公交车二次换乘查询、公交车车站查询、公交车线路查询,以及管理员对各交通工具的交通信息、城市、及管理员信息的管理维护。2.2 开发环境2.2.1 硬件环境设备:联想笔记本电脑一台处理器型号: Intel(英特尔)Core Duo T2370(主频1730MHz,1MB二级缓存,533MHz系统总线频率)硬盘:160GB SATA 5400rpm 内存:1G 2.2.2 软件环境Microsoft office 2000 Microsoft Windows XP Microsoft SQL Server 2000 MyEclipse 6.5Dreamweaver MX 20042.3 数据流图(DFD图)2.3.1 顶层图此顶层数据流图只包含一个加工,用以被开发的系统,即交通信息网上查询系统,然后输入数据有用户查询条件,以及管理员的各项操作;输出流为用户查询结果和管理员操作结果反馈。图4为交通信息网上查询系统的顶层图。它表明该系统接受用户的查询条件,并由查询系统为用户选出所要查询的数据输出查询结果到用户;该系统还接受管理员的维护操作,并由该系统执行了操作后将操作结果返回给管理员。图2-1 顶层图2.3.2 0层图画0层图的思想,是在顶层图的基础上,对系统进行分解,将系统分为几个子系统,分析每个子系统有哪些流动着的数据,哪些数据需要暂时保存,通过什么加工使数据发生变换。本系统划分了5个功能模块,因此在0层图上将交通信息网上查询系统分为5个加工,加工的名称及加工间的数据流在功能说明中有动词与名词与之对应。图2-2 0层图2.3.3 1层图在1层图的创建过程中,应仔细考虑每个加工内容还应进行哪些处理,还有什么数据流产生,这些功能可能在功能说明中没有,需要参考现行系统的工作流程,进行“创造”精细数据流图。子图1:对0层图中的加工1进行细化,导入所输入的查询条件数据之前,要先检验数据是否合格,待检验完成后,将所输入的查询条件数据导入,然后根据所输入的查询条件,将查询条件分为三种查询条件方式作为加工1的输出信息。图2-3 子图1子图2:对0层图中的加工2进行细化,导入所输入的列车查询条件数据,然后根据所输入的数据,选择查询的方式进行查询操作,将查询结果作为加工2的输出信息。图2-4 子图2子图3:对0层图中的加工3进行细化,导入所输入的航班查询条件数据,然后根据所输入的数据,选择查询的方式进行查询操作,将查询结果作为加工3的输出信息。图2-5 子图3子图4:对0层图中的加工4进行细化,导入所输入的公交车查询条件数据,然后根据所输入的数据,选择查询的方式进行查询操作,将查询结果作为加工4的输出信息。图2-6 子图4子图5:对0层图中的加工5进行细化,在进行维护操作之前,要先检验管理员资格,管理员检验通过之后,才能根据需要对各种信息进行维护,最后将维护操作结果作为加工5的输出信息。图2-7 子图52.4 数据库设计2.4.1 概念设计实体和属性的定义如下:管理员(管理员ID,密码,姓名,Email) 城市(城市编号,城市名称,城市介绍)站点(站点编号,站名,经过列车数)列车票价(编号,火车类型,车票座位类型,每公里价格)列车(车次,列车类型,始发站,终点站,发车时间,到达时间,运行时间,总距离,经过站点数)列车路线(编号,车次,站名,到站顺序,到站日期,发车时间,到达时间,行程)航班(航班班次,航空公司,机型,出发城市,到达城市,出发日期,起飞时间,到达时间)航班票价(机票编号,航班次,舱位等级,机票价)公交车(线路名,所在城市,起止时间,发车间隔,车型,线路类型,所属汽车公司)线路信息(线路信息编号,线路名,到站序号,经停车站,距始发站路程,自始发站算票价)2.4.2 E-R图图2-8 基本E-R图2.4.3 数据库中表的具体设计数据库中建立了10张表,用于记录各项信息。首先建立了管理员资料表Mang.dbf,用来存储管理员等登陆信息以及相关个人资料,具体字段如下:表2-1 Mang表字段名关键字设置数据类型长度允许空字段说明mangID主关键字Varchar20否管理员IDmangpwdVarchar20否密码mangnameVarchar20否名称mangemailVarchar50是email然后,建立了城市信息表City.dbf,用来存储城市的相关信息,字段如下:表2-2 City表字段名关键字数据类型长度允许空字段说明cityIDInt20否城市IDcityName主关键字Varchar20否城市名cityjsVarchar500是城市介绍接下来,是各交通工具的信息表:(1)站点信息表Station.dbf,用来存储列车站点的相关信息,字段如下:表2-3 Station表字段名关键字数据类型长度允许空字段说明stationID主关键字smallint1否站点编号stationNameVarchar15否站名trainnumint10是经过列车数(2)列车票价信息表TicketPice.dbf,用来存储列车票价的相关信息,字段如下:表2-4 TicketPice表字段名关键字数据类型长度允许空字段说明ID主关键字int4否编号TrainTypevarchar6是火车类型SeatTypevarchar15是车票座位类型picenumeric10是每公里价格(3)列车信息表TrainsInfo.dbf,用来存储列车的相关信息,字段如下:表2-5 TrainsInfo表字段名关键字数据类型长度允许空字段说明TrainID主关键字Varchar10否车次TrainTypeVarchar20否列车类型BeginStationVarchar40否始发站EndStationVarchar40否终点站BeginTimeVarchar5否发车时间EndTimeVarchar5否到达时间续表2-5字段名关键字数据类型长度允许空字段说明TimesVarchar10否运行时间Distanceint2否总距离Stationnumint2否经过站点数(4)列车路线信息表Runlist.dbf,用来存储列车路线的相关信息,字段如下:表2-6 Runlist表字段名关键字数据类型长度允许空字段说明ID主关键字int4否编号TrainIDVarchar10否车次StationNameVarchar40否站名Arrivesortint2否到站顺序ArrivedateVarchar10否到站日期StartTimeVarchar6否发车时间StopTimeVarchar6否到达时间Distanceint2否行程(5)航班信息表Flight.dbf,用来存储航班的相关信息,字段如下:表2-7 Flight表字段名关键字数据类型长度允许空字段说明FLTNo主关键字Varchar50否航班班次FLTComVarchar50否航空公司FLTTypeVarchar50否机型startCityVarchar50否出发城市endCityVarchar50否到达城市startDayVarchar4否出发日期startTimeVarchar50否起飞时间endTimeVarchar50否到达时间(6)航班票价信息表Fticket.dbf,用来存储航班票价的相关信息,字段如下:表2-8 Fticket表字段名关键字数据类型长度允许空字段说明FtNo主关键字Int4否机票价编号FltNoVarchar50否航班次FclassVarchar50否舱位等级FtickVarchar50否机票价(7)汽车信息表Bus.dbf,用来存储公交车的相关信息,字段如下:表2-9 Bus表字段名关键字数据类型长度允许空字段说明route主关键字Varchar50否线路名cityVarchar50否所在城市QzTimeVarchar200否起止时间JgTime Varchar50否发车间隔BusTypeVarchar50否车型XlTypeVarchar50否线路类型BusComVarchar50否所属汽车公司(8)线路信息表RouteInf.dbf,用来存储公交线路的相关信息,字段如下:表2-10 RouteInf表字段名关键字数据类型长度允许空字段说明XlNum主关键字Varchar20否线路信息编号RouteVarchar20否线路名Numint20否到站序号BstationVarchar20否经停车站longVarchar20否距始发站路程ticketVarchar20否自始发站算票价2.5 模块结构图图2-9 总体模块结构图2.6 各功能模块简介本系统总共设计了四个功能模块,其中列车信息查询、航班信息查询和公交信息查询为公有模块,即任何人都可以访问的模块,而后台管理模块则只有管理员才能访问。各模块需要具体实现的功能如下:(1)列车信息查询:此功能模块包括了三种基本的查询操作,用户在进入了此模块后,可根据具体需要,选择进行站站查询、车次查询或者是车站查询。在站站查询中,用户只需输入出发站和目的站就可以查询出多条可从出发站到目的站的列车详情,以及票价详情。在车次查询中,用户只需输入所要查询的车次就可以查询出该车次的具体情况。在车站查询中,用户只需输入要查询的车站名就可以查询出所有途经该车站的列车详情。(2)航班信息查询:此功能模块包括航班快速查询和航班条件查询。如果用户不需要查询特定的信息,则直接在快速查询中输入出发城市、目的城市和出发日期就可以查到所要的航班信息以及机票价;如果用户需要查询的是特定信息,则进入条件查询中根据相应条件进行查询,也可以查询出所需要的航班信息。(3)公交信息查询:此功能模块包括了三种基本的查询操作,用户在进入了此模块后,可根据具体需要,选择进行站站查询、线路查询或者是车站查询。在站站查询中,用户可根据需要选择所要查询公交的城市,输入出发站和目的站,再选择直达、一次换乘、二次换乘,就可以查询出多条可从出发站到目的站的公交详情,以及票价详情。在线路查询中,用户只需输入所要查询的线路就可以查询出该线路的具体情况。在车站查询中,用户只需输入要查询的车站名就可以查询出所有途经该车站的公交车详情。(4)后台管理:包括对各种交通信息的添加、修改、删除和查看几部分操作。此功能模块是要求在管理员通过相应的管理员ID和密码进入该系统后,能够对各种交通信息以及管理员信息进行相关操作。第三章 详细设计3.1 逻辑流程图图3-1 逻辑流程图3.2 具体功能详细说明在本查询系统中,主要有业务逻辑层DAO层的.java文件和表现层的JSP文件构成。各种查询的实现都是在Dao类中通过HQL语句实现的,而在JSP文件中则是进行一些算法,和整合各种输出信息。在本查询系统的主页面中,可直接将要查询的信息输入相应的快速查询文本框,提交以后,查询系统将根据不同的查询方法和种类,跳转到不同的页面用request.getParameter获得输入的信息,然后再根据输入信息进行处理。该系统主页面的主要输入页面如下:图3-2 主界面3.2.1 列车信息查询模块本模块主要是为了从数据库中,根据所要求的列车查询条件以及查询方法,在数据库中进行列车信息的查询和筛选,并以表格的方式表现出来。设计的总体思路为:为实现该模块的功能设计了四张表,用来存放列车相关信息。其中站点表用来存放所有火车站点的编号、站名和有多少列车途经该站;车票价表中则包括了各种列车类型的每公里行程票价,在用户要查询某个路线票价时,只需要将行程和每公里行程票价相乘就可以算出列车票价,这种设计大大减少了数据库输入时的工作量,不用对每一条路线信息都输入相应票价;由于一个列车班次包含多条信息,如果要在每条路线信息中都输入该车次的基本信息,则显得比较重复,而且会使数据库录入时的工作量变得繁重,为了解决这一麻烦,设计了一个列车表用来专门存放列车班次的一些基本信息。列车路线表则是在站点表和列车表的基础上设计出来,包括了各个列车班次、线路的具体信息的表,同时由于每个列车线路具有方向性,所以在列车路线表中特别设定了Arrivesort关键字,用来存放列车站点信息的到达顺序,并且在每次站站查询的时候都加入查询条件start.Arrivesort()end.Arrivesort(),这样就能保证每条查询出的列车路线都具有正确的方向性,以及避免了列车路线重复的情况。列车站站查询的总体思路是把火车站点作为结点,列车路线信息作为通路来构成连通的有向图,然后用广度优先的方法进行遍历为基础,通过查找其交叉结点或通路,就可以得到所需要的查询结果。下图是列车站站查询的界面图:图3-3 列车站站查询界面图在列车站站查询界面输入出发地和目的地,提交以后跳转到lczhanzhan.jsp页面用request.getParameter获得输入的信息,然后再根据输入信息进行查询处理,在处理时,是通过Hibernate来检索列车路线表中的站点信息,在查出的站点信息中进行比较,查看是否有出发站和目的站为同一班次,且出发站的到站顺序小于目的站的到站顺序的路线信息,查询的HQL语句为:Query query= s.createQuery(from Runlist where stationName like:chezhan ); /按车站查询所有的列车路线信息query.setString( chezhan,%+cz+ %); 查询到所需要的信息后,在lczhanzhan.jsp页面处理后返回的界面如下:图3-4 列车站站查询返回结果界面图在图16界面中点击车次信息,可查看该车次的详细信息,而点击票价,可将所查询的出发站、目的站、列车类型及从出发站到目的站的总路程传送到lcpiaojia.jsp界面,并在lcpiaojia.jsp界面中对所查询的出发站到目的站的票价进行运算,票价运算的方式为,根据列车类型取出相应的各类座位类型的列车每公里行程的票价,然后再与路程相乘,以此来算出各类票价。例如:选择查看第一条记录的票价,算出票价后返回的界面如下:图3-5 列车站站查询返回票价结果界面图在列车信息查询模块中的车次查询与车站查询的界面与列车站站查询的界面类似,在此就不一一列出,具体实现车次查询和车站查询的思路也类似,都是通过Hibernate来访问数据库查询,车次查询的HQL语句如下:Query query= s.createQuery(from Runlist where trainId=? order by arrivesort); /按车次查询,并将查询结果按到站顺序排序query.setString( 0,cc);List ls=query.list();/将查询结果存入list中按车次查询出相应信息后返回的界面如下:图3-6 列车车次查询返回结果界面图3.2.2 航班信息查询模块本模块主要是为了从数据库中,根据所要求的航班查询条件以及查询方法,在数据库中进行航班信息的查询和筛选,并以表格的方式表现出来。设计的总体思路为:为实现该模块的功能设计了两张表,用来存放航班的相关信息。其中航班信息表用来存放所有航班的基本信息;航班票价表中则存放了相应班次的各类舱位等级的票价信息, 查询的总思路是按照所输入的查询条件,在Hibernate中以遍历的方式查询数据库。查询的实现方式有两种,一是在主界面直接输入出发城市、到达城市和出发日期来进行快速查找,二是在航班信息查询界面进行条件查询。快速查询时的HQL语句如下:List results=s.createCriteria(Flight.class).add(Expression.eq(startCity, cfcs) /匹配出发城市.add(Expression.eq(endCity,ddcs) /匹配到达城市.add(Expression.eq(startDay,cfrq) /匹配出发日期.list();/返回查询结果至list中下图是航班快速查询的结果界面图:图3-7 航班快速查询返回结果界面图在航班信息查询界面进行条件查询时需要输入各种特定的查询条件,其输入界面图如下:图3-8 航班条件查询输入界面图在该界面中输入特定条件后可直接返回所需要的准确的航班信息,包括所需舱位的票价信息,下图是条件查询的查询结果:图3-9 航班条件查询结果界面图3.2.3 公交车信息查询模块本模块主要是为了从数据库中,根据所要求的公交车查询条件以及查询方法,在数据库中进行公交信息的查询和筛选,并以表格的方式表现出来。设计的总体思路为:为实现该模块的功能设计了三张

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论