毕业设计论文公交查询系统.doc
- 文档编号:4855416
- 上传时间:2023-05-07
- 格式:DOC
- 页数:60
- 大小:3.15MB
毕业设计论文公交查询系统.doc
《毕业设计论文公交查询系统.doc》由会员分享,可在线阅读,更多相关《毕业设计论文公交查询系统.doc(60页珍藏版)》请在冰点文库上搜索。
摘要
由于社会在不断发展,互联网已经被千千万万的家庭所接收,公交查询在日常生活中占有很重要的位置。
通过对公交信息管理系统的现状分析,考虑如何在日常生活中充分利用网络和计算机的优势,使公交信息既能够得到及时有效的查询,又能得到高效的管理,并节省日常生活中的时间、提高效率。
本系统应用B/S结构,MVC模式采用S2SH框架技术编写,采用MySQL作为后台数据库。
本系统论文的前言部分主要介绍了与该系统相关的国内外现状以及开发该系统在需求上,技术上的可行性,并介绍该系统开发用到的一些关键性的技术;当确定需求后,该论文的系统设计部分就介绍了具体该怎么去设计并实现该系统。
然后该系统论文的系统实现部分再介绍具体实现的细节了。
该系统主要功能包括公交车线路信息查询,公交车论坛,公交新闻,公交车线路图,资源上传下载,用户留言,乘车指南,论坛管理,新闻管理,图片管理,资源管理,留言管理,维护个人信息等功能。
关键词:
公交信息管理,B/S结构,S2SH框架,MySQL数据库
ABSTRACT
Withthedevelopmentofthesociety,theinternethasbeenacceptedbymillionsoffamilies.Throughanalyzingthepresentsituationofthebusinformationmanagementsystem,toconsiderhowtomakefulluseofInternetinourdailylifeandtheadvantageofcomputer,bothtomakethebusinformation,timelyandeffectivequeryandcangetefficientmanagement,andsavethetimeandimproveefficiencyofdailylife.
ThesystemappliedB/Sstructure,MVCpatternwrittenbyS2SHframetechnology.Theforewordofthesisofbussystemintroducessomthingsaboutthesystemathomeandabroad,andtheDemandfeasibilityandthetechnicalfeasibilityofdevelopingthesystem.Therearealsointroducesomekeytechnologyaboutthissystem.Afterconfirmthedemand,thepartofthesystemdesignofthesiscantellushowtodothesystem.Andthen,thepartofsystemimplementationofthethesisletusknowthathowtocodingtoimplementsthesystem.
Thesystemmainfunctionincludesbusinformationquery,busBBS,news,busimagecenter,resourceuploadanddownload,usermessages,systemintroduction,BBSmanagement,newsmanagement,imagemanagement,resourcemanagement,messagemanagement,maintenanceofpersonalinformation,andotherfunctions.
Keyword:
Thebusinformationmanagement,B/Sstructure,S2SHframework,MySQLDatabase
目录
第一章概述 1
1.1开发背景 1
1.2目的及意义 1
1.3课题研究的内容 2
第二章系统开发的相关技术 3
2.1JSP技术 3
2.2MVC模式 3
2.2.1Model:
系统状态和商业逻辑JavaBeans 4
2.2.2View:
JSP页面和表示组件 4
2.2.3Controller:
ActionServlet和ActionMapping 5
2.3Struts2简介 5
2.4MySQL数据库 6
第三章需求分析 8
3.1技术支持 8
3.1.1系统框架的选择 8
3.1.2数据库的选择 9
3.2系统功能需求 9
3.2.1总体需求 10
3.2.2各模块设计 10
3.2.3数据流图 11
3.3系统非功能需求 12
3.3.1技术可行性 12
3.3.2管理可行性 13
3.3.3系统准确性和及时性 13
3.3.4系统开放性和可扩充性 13
3.3.5系统易用性和易维护性 13
3.3.6系统的响应速度 13
第四章总体设计 14
4.1系统用例图设计 14
4.1.1系统前台用例图 14
4.1.2系统后台用例图 15
4.2系统模块划分图 15
4.3系统E-R图 16
4.4系统流程图 17
4.5数据库设计 18
4.5.1数据库设计原则 18
4.5.2数据表结构设计 19
第五章详细设计与实现 22
5.1系统的活动图 22
5.1.1会员注册模块 22
5.1.2登陆模块 22
5.2系统框架关键配置 23
5.2.1Struts2关键配置 23
5.2.2Spring事务管理配置 24
5.2.3Hibernate持久化配置 25
5.3各功能模块实现 26
5.3.1用户登录注册模块的实现 26
5.3.2公交查询模块的实现 28
5.3.3公交论坛模块的实现 32
5.3.4公交新闻模块的实现 33
5.3.5公交线路图模块的实现 34
5.3.6资源上传下载模块的实现 35
5.3.7用户留言模块的实现 37
5.3.8乘车指南模块的实现 39
5.3.9线路管理模块的实现 39
5.3.10论坛管理模块的实现 42
5.3.11新闻管理模块的实现 43
5.3.12图片管理模块的实现 45
5.3.13资源管理模块的实现 46
5.3.14留言管理模块的实现 47
5.3.15用户管理模块的实现 48
第六章软件测试 50
6.1软件测试的目的及意义 50
6.2测试的方法 50
6.3测试用例 51
6.3.1注册测试用例 51
6.3.2登陆测试用例 51
6.3.3公交查询功能测试用例 52
谢辞 54
参考文献 55
第一章概述
1.1开发背景
城市公交是专门服务于市民出行的客运企业。
它是城市社会和经济活动的重要组成部分。
伴随着国民经济和城市建设的快速发展,城市经济的繁荣,人口的增加,城市必须解决好人们出行的需求。
城市公交直接关系着城市的经济发展和居民生活,对城市经济具有全局性、先导性的影响,城市公交以其方便、快捷、容量大而成为城市交通的主体。
但是随着公交系统的庞大,人们很难得到准确的公交信息,这样给一些人的出行就带来了不便。
现阶段,人们的出入方式主要还是来源于城市公交,特别是对于那些到外地出差、打工,进行商业有关或其他事情需要在外地进行短暂停留的人而言,公交对他们是必不可少的,但是对于那个不属于自己所熟悉的城市,坐公交也是一个很大的难题,因此,开发一个公交查询系统就显得非常的重要。
随着城市经济的发展、规模的扩大以及人口的增长,城市交通问题日益突出。
降低出行时间将使所有的公交利用者产生效益,快速的交通、更好的信息及更好的市场可以提高公交的形象,能够增加公交乘坐者。
城市公共交通运输以其覆盖面广、经济、快捷的特点,成为绝大多数出行者的首选方式,也是各地城市政府大力发展的一种交通方式。
本地市民特别是外来旅游、出差、就医等急需了解本地道路情况的人可以利用本系统方便快捷的查询出所有符合他们要求的公交路线,对他们的出行和生活提供帮助。
设计公交信息管理系统能够方便城市公交管理者对公交线路进行管理,及时更新最新的线路信息,市民在使用时能够掌握实时的公交线路状况,也方便了使用者直接的信息交流,对于城市公共交通的发展是有利的。
1.2目的及意义
应广大城市市民查询公交信息的需求,公交公司对城市公交线路等信息的管理需求,开发一套公交信息管理系统。
主要针对用户和管理员,用户在此系统可以对所要了解的公交线路进行查询,对公交服务中存在的问题提出建议,对服务中的不合理行为进行投诉,参与用户之间的讨论等;而管理员主要负责后台的管理,管理员不需要运用传统的方式进行纷繁复杂的操作,使用本系统,管理员登录后可以对线路信息、用户信息、留言信息等进行添加、删除、查询和修改功能。
此系统将以简洁、易懂的界面呈现给用户,目标能够使每一个用户易于操作,减少不必要的业务逻辑,提高该系统的利用率和运行、维护效率。
设计本系统的目的在于掌握MVC设计模式及该模式下三种对象的设计方法,掌握面向对象设计(Object-OrientedDesign,OOD)方法的步骤。
系统的首要目标是能够满足目前的业务功能需要,并确保系统切换平滑、运行稳定;对于service的编写,通过参数配置等形式,实现其应具备的控制功能,并具有良好的可扩展性,提高service的复用性;对于HTML界面的编写,以简洁、轻快明了、规范性为目标,使其呈现的效果多、丰富;对于JavaBean的编写使其具有对数据进行增、删、改、查、参数初始化的业务逻辑。
1.3课题研究的内容
本文共分为六大章,其中分为课题来源到系统开发的相关技术、系统分析、总体设计等等。
通过每一章的阐述对公交信息管理系统做出了详细的讲解和分析。
第一章、前言本章主要阐述了公交信息管理系统的课题来源背景及课题研究的目的与意义。
第二章、开发相关技术本章主要介绍了该系统在什么环境中运行,运用的开发语言以及相关的技术简介等。
第三章、需求分析本章主要根据公交企业管理信息的过程和特点,以及客户的需求,对系统的功能进行设计,并对系统的可行性作了分析。
第四章、总体设计本章主要阐述了公交信息管理系统的系统结构设计、功能模块图、数据库设计、逻辑设计及物理设计等。
第五章、详细设计与实现本章主要阐述了前台界面和后台管理模块的设计与代码编写。
第六章、系统测试本章主要是对系统进行测试,对本系统进行总结,并提出遇到的问题及系统中的不足之处。
第二章系统开发的相关技术
2.1JSP技术
JSP技术可以以一种简捷而快速的方法生成Web页面。
使用JSP技术的Web页面可以很容易地显示动态内容。
JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。
JSP技术不是惟一的动态网页技术,也不是第一个,在JSP技术出现之前就已经存在几种优秀的动态网页技术,如CGI、ASP等。
下面结合这些技术的介绍,讲述动态网页技术的发展和JSP技术的诞生。
JSP具有以下优点:
Ø1.简便性和有效性JSP动态网页的编写与一般的静态HTML的网页编写是十分相似的。
只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(此项不是必需的)。
这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。
而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签使用别人已写好的部件来实现动态网页的编写。
这样,一个不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。
而这在其他的动态网页开发中是不可实现的。
Ø2.程序的独立性JSP是JavaAPI家族的一部分,它拥有一般的Java程序的跨平台的特性。
换句话说,就是拥有程序的对平台的独立性,即Writeonce,Runanywhere!
。
Ø3.程序的兼容性JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务,即从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(例如,移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。
Ø4.程序的可重用性在JSP页面中可以不直接将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。
这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。
现在,大量的标准JavaBeans程序库就是一个很好的例证。
2.2MVC模式
MVC(Model/View/Controller)模式是国外用的比较多的一种设计模式,最早是在Smaltalk中出现的。
MVC包括三类对象,简单地说,Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式[6]。
MVC设计模式中“模型“指的是真正完成任务的代码。
对大多数Web应用程序来说,功能比界面感觉更重要。
在模型同界面相分离的情况下,代码即可实现可管理性和可重用性。
模型通常也被称作”业务逻辑“。
所谓“视图“其实就是使用界面。
在MVC模式下,在通常的设计前提下界面任务并不大。
当然,视图应该具有一定功能性并遵守可用性的约束,但视图不应当处理数据。
事实上,界面的每一部分都只能包含采集数据的足够逻辑,并把它传递给设计模式中的其他组成部分以进行处理。
“控制器”控制着模型和视图之间的交互过程。
它决定着向用户返回怎样的视图,检查通过界面输入的信息以及选择处理输入信息的模型。
在JSP开发中,最常使用Model2。
Model2实际上就符合MVC模式。
2.2.1Model:
系统状态和商业逻辑JavaBeans
基于MVC的系统中的Model部分可以细分为两个概念--系统的内部状态,能够改变状态的行为。
用语法术语来说,我们可以把状态信息当作名词(事物),把行为当作动词(事物状态的改变)。
通常说来,你的应用程序将系统内部的状态表示为一组一个或多个的JavaBeans,使用属性(properties)来表示状态的细节。
依赖于你的应用程序的复杂度,这些beans可以是自包含的(以某种方式知道怎样永久地保存它们的状态信息),或者可以是正面的(facades),知道当被请求时怎样从外部数据源(例如数据库)中取得信息。
EntityEJB通常也用来表示内部状态。
大型应用程序经常将系统可能的商业逻辑行为表示为可以被维护状态信息的beans调用的方法。
举个例子,你有一个为每个当前用户保存在session中的购物车bean,里面是表示当前用户决定购买物品的属性。
这个bean有一个checkOut()方法用来验证用户的信用卡,将定单发给库房以选择货品和出货。
别的系统分别地表示同样的行为,或许使用SessionEJB。
在一些小型应用程序中,同样的行为又可能嵌入到作为Controller一部分的Action类中。
这在逻辑非常简单或者并不想要在其它环境中重用这些商业逻辑时是恰当的。
Struts框架支持所有这些方法,但建议将商业逻辑(“做什么“)和Action类(“决定做什么”)分离开。
2.2.2View:
JSP页面和表示组件
基于Struts的应用程序中的View部分通常使用JSP技术来构建。
JSP页面包含通常称为“模版文本”的静态HTML(或XML)文本,加上插入的基于对特殊行为标记解释的动态内容。
JSP环境包括了其用途由JSP规范来描述的一套标准的行为标记,例如 useBean>。 另外,还有一个用来定义你自己标记的标准机制,这些自定义的标记组织在“定制标记库”中。 Struts包括了一个广阔的便于创建用户界面,并且充分国际化的定制标记库,与作为系统Model部分一部分的ActionFormbeans美妙地相互配合。 这些标记的使用将在后面做详细讨论。 除了JSP页面和其包含的行为及定制标记,商业对象经常需要能够基于它们在被请求时的当前状态将自己处理成HTML(或XML)。 从这些对象处理过的输出可以很容易地使用 include>标准行为标记包括在结果的JSP页面中。 2.2.3Controller: ActionServlet和ActionMapping 应用程序的Controller部分集中于从客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么商业逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的View组件。 在Struts中,controller的基本组件是一个ActionServlet类的servlet。 这个servlet通过定义一组映射(由Java接口ActionMapping描述)来配置。 每个映射定义一个与所请求的URI相匹配的路径和一个Action类(一个实现Action接口的类)完整的类名,这个类负责执行预期的商业逻辑,然后将控制分派给适当的View组件来创建响应。 Struts也支持使用包含有运行框架所必需的标准属性之外的附加属性的ActionMapping类的能力。 这允许你保存特定于你的应用程序的附加信息,同时仍可利用框架其余的特性。 另外,Struts允许你定义控制将重定向到的逻辑名,这样一个行为方法可以请求“主菜单”页面(举例),而不需要知道相应的JSP页面的实际名字是什么。 这个功能极大地帮助你分离控制逻辑(下一步做什么)和显示逻辑(相应的页面的名称是什么)。 2.3Struts2简介 Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。 Struts2既然是从Struts1发展而来,但实际上Struts2与Struts1在框架的设计思想上面还是有很大的区别,Struts2是以WebWork的设计思想为核心,为什么Struts2不沿用Struts1的设计思想,毕竟Struts1在目前的企业应用中还是有非常大的市场在的,那么,来看下Struts1的一些缺点吧: 1)支持的表现层技术单一。 2)与ServletAPI严重耦合,这点可以从Action的Execute的方法声明里面就可以看的出来。 3)代码依赖Struts1API,有侵入性,这点可以从写Action类和FormBean的时候看的出来,Action必须实现Struts的Action类而Struts2之所以以WebWork的设计思想为其核心,一点就是最近WebWork的上升势头,再就是WebWork没有Struts1上面的那些缺点,更符合MVC的设计思想,也更利于代码的复用。 基于以上介绍可以看的出,Struts2体系结构与Struts1的体系结构有很大的差别,Struts1是使用ActionServlet做为其中心处理器,Struts2则使用一个拦截器(FilterDispatcher)做为其中心处理器,这样做的一个好处就是将Action类和ServletAPI进行了分离。 Struts2的简单处理流程如下: 1)浏览器发送请求。 2)中心处理器根据struts.xml文件查找对应的处理请求的Action类。 3)WebWork的拦截器链自动对请求应用通用功能,例如: WorkFlow、Validation等功能。 4)如果Struts.xml文件中配置Method参数,则调用Method参数对应的Action类中的Method方法,否则调用通用的Execute方法来处理用户请求。 5)将Action类中的对应方法返回的结果响应给浏览器。 Struts2与Struts1对比: 1)Action类的实现方式: Struts1的Action在实现的时候必须扩展Action类或者Action的子类,Struts2的Action类实现的时候可以不用实现任何类和接口,虽然Struts2中提供一个ActionSupport类,但是,不是必须的。 2)Struts1的Action类是单例模式,必须设计成线程安全的,Struts2则为每一个请求产生一个实例。 3)Struts1的Action类依赖与ServletAPI,从其execute的方法签名可看出,execute方法有两个Servlet的参数HttpServletRequest和HttpServletResponse,Struts2则不依赖于ServletAPI。 4)以为Struts1依赖于ServletAPI这些Web元素,因此对Struts1的Action进行测试的时候是很困难的,需要借助与其他的测试工具,Struts2的Action可以象测试其他的一些Model层的Service类一样进行测试。 5)Struts1的Action与View通过ActionForm或者其子类进行数据传递,虽然也有LazyValidationForm这样的ActionForm的出现,但是,还是不能像其他层面那样通过一个简单的POJO进行数据传递,而Struts2将这样的奢望变成了现实。 6)Struts1绑定了JSTL,为页面的编写带来方便,Struts2整合了ONGL,也可以使用JSTL,因此,Struts2下的表达式语言更加强大四、Struts2与WebWork对比Struts2实际上就是WebWork2.3,不过,Struts2还是与WebWork有少许的差别: 1)Struts2不再支持内置IOC容器,改用Spring的IOC容器2)Struts2对于Webwork的一些Ajax的特性的标签改用Dojo进行替换。 2.4MySQL数据库 MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。 由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。 MySQL是一个真正的多用户、多线程SQL数据库服务器。 SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。 MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。 SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。 例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。 MySQL主要目标是快速、健壮和易用,自1996年以来,我们一直都在使用MySQL,其环境有超过40个数据库,包含10,000个表,其中500多个表超过7百万行,这大约有100个GB字节的关键应用数据。 MySQL数据库的主要功能只在组织和管理很庞大或复杂的信息和基于WEB的库存查询请求不仅仅为客户提供信息,而且还可以为您自己使用数据库可以提供如下功能: 1)减少记录编档的时间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 公交查询 系统