BRT公交管理系统的设计和实现毕业设计.doc
摘要BRT公交管理系统的设计与实现摘要本BRT公交管理系统目标是方便市民进行BRT信息查询,并且要做到信息不滞后,其主要目的是使系统的管理变得更人性,数据处理更可靠,以及更易维护。本系统采用了JSP技术,通过Java编程,使用了SQL2008数据库。鉴于常州快速公交相对于普通公交具有人性化、科技化、高效化的特点,通过BRT出行的人越来越多。随着公交车的数目、站点数量日益增长,管理员对公交的管理更麻烦了。以往的纸质公交指南或繁杂的网络版公交指南,都在不同程序上限制了市民出行的方便性。乘客需要及时查询公交的相关信息以及对公交进行投诉及评论,如果没有相关的平台解决此类问题将会很不方便。此外,如果没有一个专门的管理系统来处理数据,将会使得对公交信息的查询、修改和更新带来了很大的困难,从而降低工作效率。本毕业设计所设计的是一个BRT公交管理系统,具有用户登录与注册功能,查询功能公交线路更新,留言板功能以及管理员后台管理功能。其中查询部分包括车次查询,站点查询,换乘查询;后台管理包括线路信息增、删、改功能,用户管理,更新公告及留言管理。关键词:BRT;公交管理系统;数据库;JSPAbstractAbstract The BRT bus management system goal is facilitates the resident to carry on the BRT information to inquire, and must achieve the information not to lag, its main purpose is to make the system of management become more human nature,data processing more reliable and easier to maintain.This system uses the JSP technology, through the Java programming, using SQL2008 database. In view of the Changzhou rapid transit compared to the common bus with humanity, science and technology, high efficiency, more and more people travel by BRT.As the number of buses, site number increasing, the administrator management of the bus is more trouble.Passengers need to query information about the bus in time,and complaints and comments on the bus.If there is no related platform to solve such problems ,it will be very inconvenient.In addition, if you don't have a special management system to deal with data, it will make the bus information query, modify and update more difficulty, thus reducing work efficiency.The present paper introduced is a BRT bus management system, by facilitates the resident with the briefest way, inquires the most useful public transportation information,and can contact with the bus company timely. The graduation project designed a BRT bus management system with user login and registration functions, bus lines update query functions, message boards and administrators functional background management functions. Where the query portion includes trips inquiries, site inquiries, transfer inquiries; backstage management, including line information to add, delete, change features, user management, update announcements and message management.Key words: BRT; Public transport management system; Database; JSP 目录目 录第一章 系统概述11.1研究背景11.2国内外现状11.3研究内容21.4研究意义2第二章 系统分析32.1系统可行性研究32.1.1技术可行性32.2 系统开发环境需求42.3功能需求42.4 数据库需求分析42.5主要开发技术的介绍52.5.1 JSP技术52.5.2 JDBC技术62.5.3 MyEclipse62.5.4 Tomcat72.5.5 SQL SERVER7第三章 系统设计83.1 模块设计83.2 系统层次模块图83.3系统用例图设计93.4查询部分设计93.4.1 查询功能93.4.2 公交信息添加103.4.3公交信息删除113.4.4公交信息修改113.5 数据库详细设计12第四章 系统实现144.1 管理员登录与管理144.1.1车辆添加及修改154.2用户登录、注册与管理164.3留言板194.4 线路更新204.5 BRT信息查询214.5.1车次查询214.5.2站点查询214.5.3换乘查询21第五章 系统测试235.1 测试目标235.2 测试的步骤23第六章 结论26致谢27参考文献28II延陵学院毕业设计说明书第一章 系统概述 1.1研究背景上世纪的中国,常规公共汽车交通在城市公共客运交通占据了重要的地位,与传统轨道交通共存。但随着时代发展,城市化的速度日益加快,城市交通堵塞情况也就更严重,国外首先提出了快速公交运营的概念,实践后更是引起了广泛的关注。在上世纪末,我国部分城市开始了公交改革,快速公交出现在我国。根据我国实际情况,无论是否建设了轨道交通,构建“快速公交系统”己经是供给大城市解决交通问题的重要选择之一。而网络的生活化使得生活变得更快捷,从网络中就可以通过公交管理系统方便、快捷的提取想要的公交车信息,从而节省时间,方便出行。1.2国内外现状常州BRT公交管理水平不高 。公交客流量的变化是跟随时间和空间的变化而变化的,把握住它能充分发挥公交车实时的运输功能,能更好掌握公交客流的变化实况。因为管理能力与技术方面的原因,常州公交企业与大多数国内的公交企业一样,还做不到随客流的变化,而及时的对公交进行调度管理,公交车的运行还不能在动态的状况下得到充分的发挥,这给管理者以及乘客带来了极大的不便。其具体在于乘客不能及时地对公交信息的变化有一个了解,还有对于一些不平等对待不能进行投诉以及对失物的寻找;对于管理部门来说,要对公交信息的修改、更新维护也是一件麻烦事,这些都缺少一个相关的平台来解决此类问题。根据查阅相关文献资料,可以得知美国是最早研究和使用智能交通的国家,现在它的他应用率在美国已达到80%以上。而智能交通的重要组成部分之中又包括先进的交通管理系统。1995年3月,智能交通系统的7大领域在美国的“国家智能交通系统项目规划”中被明确规定了。其中包括了出行和交通管理系统、出行需求管理系统、公交运营系统、商务车辆运营系统、电子收费系统、应急管理系统、先进的车辆控制和安全系统。减少车辆交通事故是交通控制的一个重要目标,它能够很好的解决车辆问题。 在欧洲,卫星导航技术因为在10年前才出现,所以到近几年,卫星导航技术才实现大规模产业化。大部分的汽车都安装了卫星导航系统,ITS的应用将通信技术融入到汽车和道路设施之中,这种做法能够更好的增强安全性,同时减少交通拥堵。未来ITS将会是交通运输中必不可少的工具,能够使交通系统更完善。目前的道路交通管理的需求越来越高,现有通信及信息技术已经满足不了了。其研究人员目前还在进行更深远的研究。1.3研究内容本系统采用了JSP技术,通过Java编程,使用了SQL2008数据库,实现了管理员、用户登录与注册,线路查询,公交线路更新,留言板以及管理员后台管理等功能。用户在相关页面可以根据个人需求进行车次查询,站点查询,换乘查询。管理员可以对公交线路及站点进行添加、删除、修改。1.4研究意义由于公交车是大多数人日常生活中出行首选的交通工具,而方便快捷的获取公交线路的信息,安排出行线路,是很多人关注的问题。现阶段还有些公交公司还未将公交管理系统化,这会给管理者以及乘客带来很大的不便,因为乘客需要及时查询公交信息,而管理者需要一个管理系统对公交信息进行增、删、改。所以公交管理系统的实现具有很大的研究意义。第二章 系统分析2.1系统可行性研究可行性研究的目标是用最小的代价尽快确定问题是否能够解决。首先,本系统的规模不是很大,主要目标是实现用户查询及管理员管理。因此,本系统的实现是可能的。其次,本系统研究方向目前拥有类似系统,可以通过研究现有系统确定自己的方向。2.1.1技术可行性技术可行性是指本系统要实现所需要的技术是否有保障。系统开发需要的技术主要有计算机软件技术、开发人员的专业水平等。与Java相关的技术目前发展已经成熟,项目的开发和维护都能很好的实现。本次课题的技术可行性的分析可以从以下几个方面考虑:(1)软硬件需要的可满足性:硬件环境:3G内存、120G空间,软件环境:Windows7、Tomcat、SQL2008、MyEclipse8.5。(2)开发环境: JAVA语言具有跨平台性、较高的安全性和可扩展性、很好的可移植性,可以让程序员方便地设计系统。因此,java语言可以作为开发语言。本系统使用SQL2008作为数据库。SQL2008是一种C/S结构的数据库管理系统。它可以提供许多方便的图形化工具,其中最常用的是查询分析器,它使得数据库的创建和管理更方便。根据以上对技术可行性的分析,系统的设计在技术上可实现。(3)经济可行性:计算机的普及,使得各种开发软件的成本越来越低,本系统的开发成本较低,只需要一台一般的计算机,系统运行时所占内存也不大,系统功能性能不会因为开发成本低而下降,反而是各种实用软件随着时代快速发展,性能日渐提高。本系统开发成本低,却很方便。主要有一下几点:(1)本系统拥有多种实用的功能,实用性比较强,也很方便。(2)本系统可以使得信息查询的效率有大幅度上升,减少不必要的资源浪费。由此可见,本系统在经济可行性上还是可以的。2.1.2操作可行性因为本系统的管理对象都是针对数据库的操作,而且数据库关联性较强,使用的数据也不复杂。所以整个系统使用起来还是很简便的。只要是计算机用户都能很快的熟悉整个系统,就能够使用这个系统简单、快捷的实现对信息查询。2.2 系统开发环境需求要设计一个BRT管理系统,首先需要明确设计时其环境对系统的要求。 开发工具:MyEclipse8.5 操作系统:Windows7 数据库:SQL2008。 编程语言 JSP 服务器:Tomcat2.3功能需求BRT管理系统的应用背景为:方便市民搭查询线路,方便乘BRT出行;管理员更好修改维护数据。本系统意欲建立一个基于互联网的BRT管理系统,方便市民查询BRT路线,了解更多相关的信息。本系统将会有以下功能:用户登录注册模块,公交查询模块,新闻模块,留言板模块,以及方便管理员使用的后台管理模块。用户、管理员登录注册模块:当用户注册登录后,可以在留言板中留言。当用户注册登录后,可以使用后台功能,对线路进行增、删、改的操作,还可以对用户信息管理,新闻、留言板管理。 公交查询模块:为了方便乘客出行,本系统将会有3种查询方式满足乘客的需求。一种是直接输入BRT的路别进行查询,一种是输入起点和终点站查询车次,还有一种是转乘查询。对于查询中的换乘部分,本系统只做简单查询,比如一次换乘查询,对于数据库操作只查出满足该起点和终点的相关线路,然后再筛选其中符合条件的结果。新闻模块:主要发布一些关于公交方面的最新的新闻,方便用户了解实况。留言板模块:如果用户对该系统有建议,可以通过留言给管理员告知。同时,用户也可以通过留言找回失物。后台留言管理模块,可以使管理员查看留言。2.4 数据库需求分析由于本系统有2个对象,即普通用户和系统管理员,所以在分析数据库需求时就要考虑以下因素:(1)对于普通用户来说,他们需要的功能有几点:可以注册和登录,可以在留言板提意见以及寻找失物,可以根据需求进行线路查询。(2)对于系统管理员来说,他拥有很大的权限,主要表现在可以进行后台管理。在信息资源管理的过程中,数据库技术是最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。数据库的需求分析会根据设计中各个用户的需求来确定数据库内容。在一个已确定的硬件、操作系统、以及数据库等软件环境下设计一个性能良好的数据库,能够让数据的采集、存储、修改和管理更有效,满足各种需求。2.5主要开发技术的介绍 本系统需要使用JSP技术,采用Tomcat服务器作为引擎,通过JDBC驱动程序访问数据库。由于系统测试需要成熟的数据库支持,因此系统采用SQL2008数据库作为数据库服务器。2.5.1 JSP技术JSP(Java Server Pages)技术是由Sun公司发布的用于开发动态Web应用的一项技术。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(Java Server Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。优点如下:1.一次编写,到处运行。除了系统之外,代码不用做任何更改。2.系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。3.强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。4.多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。5.支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。缺点如下:1.与ASP也一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。2.Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。2.5.2 JDBC技术 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。用JDBC来实现访问数据库记录可以采用下面的几个步骤:1、 通过驱动器管理器获取连接接口。2、 获得Statement或它的子类。3、 限制Statement中的参数。4、 执行Statement。5、 查看返回的行数是否超出范围。6、 关闭Statement。7、 处理其它的Statement8、 关闭连接接口。JDBC API用于连接Java应用程序与各种关系数据库。这使得人们在建立客户/服务器应用程序时,通常把Java作为编程语言,把任何一种浏览器作为应用程序的友好界面,把Internet或Intranet作为网络主干,把有关的数据库作为数据库后端。以下是使用JDBC的优缺点。优点如下:1.JDBC API与ODBC十分相似,有利于用户理解。2.JDBC使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以致力于应用程序中的关键地方。3.JDBC支持不同的关系数据库,使得程序的可移植性大大加强。4.用户可以使用JDBC-ODBC桥驱动器将JDBC函数调用转换为ODBC。5.JDBC API是面向对象的,可以让用户把常用的方法封装为一个类,备后用。缺点如下:1.使用JDBC,访问数据记录的速度会受到一定程度的影响。2.JDBC结构中包含了不同厂家的产品,这就给更改数据源带来了很大的麻烦。2.5.3 MyEclipse MyEclipse,是在eclipse基础上 加上自己的插件。它是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。在结构上,MyEclipse的特征可以被分为7类:1)JavaEE模型 2)WEB开发工具 3)EJB开发工具 4)应用程序服务器的连接器 5)JavaEE项目部署服务 6)数据库服务7)MyEclipse整合帮助2.5.4 TomcatTomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。人们不再限于只使用软件,而且已经关心起软件的具体实现。我们有理由相信Tomcat会走得更远。本系统因为基于myeclipse8.5开发设计,其自带tomcat6,所以不需要另外安装。2.5.5 SQL SERVER SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL Server 特点:1真正的客户机/服务器体系结构。2图形化用户界面,使系统管理和数据库管理更加直观、简单。3丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。4SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。5具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。6对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。7SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。28第三章 系统设计3.1 模块设计系统的开发主要包括前台管理和后台管理。前台管理是用户的操作界面,供用户浏览、查询以及交流。其功能具体包括:1)用户注册(用户名注册、初始密码设置和个人信息输入)与登录(输入用户的名称和密码,正确的话进入个人信息管理页面;否则提示错误);2)用户查询(包括3种查询,即车次、站点、换乘);3) 留言功能(用户可以与管理者交流)。后台管理是给管理员使用的,其中包括:1) 管理员注册与登录;2) 线路更新公告(发布一些线路变化);3) 车辆信息管理(该模块可以对车辆信息进行维护,如增、删、修改线路等)。4)留言板管理3.2 系统层次模块图系统功能模块如图2-1所示。 图3-2 系统功能模块图 3.3系统用例图设计用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。 图3-3-1 用户用例图 图3-3-2 管理员用例图3.4查询部分设计3.4.1 查询功能本系统最主要的功能就是查询功能。它包括三种查询方式:车次、站点、换乘。其具体查询步骤如图所示:图3-4-1 查询功能流程图3.4.2 公交信息添加 公交信息管理模块包含信息的添加,管理员可以通过相关功能,输入车次与线路,将信息写入数据库。其具体步骤如图所示:图3-4-2 数据添加流程图3.4.3公交信息删除公交信息管理模块包含信息的删除,管理员通过信息删除功能,可以将数据库中的车次与线路的信息整体删除。其具体步骤如图所示:图3-4-3 数据删除流程图 3.4.4公交信息修改公交信息管理模块包含信息的修改,管理员先确定要修改的信息,点击修改进入修改界面。在相应的地方修改车次与线路,确定修改正确后将信息写入数据库。其具体步骤如图所示:图 3-4-4数据修改流程图3.5 数据库详细设计 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。后台数据库的结构设计是数据库设计的重要组成部分。下面是数据库表基本的数据结构。列名数据类型NULL约束说明idint否Primarykey序号usernamenvarchar(50)是管理员名passwordNvarchar(50)是密码creattimedatetime是管理员账号创建时间flagint是标签isuseint是状态logintimesint是登录时间quanxianNvarchar(50)是权限(1)管理员信息表(admin)(2)公交车信息表(bus)列名数据类型NULL约束说明idint否Primarykey序号idint否checinvarchar(50)是线路名stopstationntext是途经站点gxint是更新(3)留言信息表(guestbook)列名数据类型NULL约束说明idint否Primarykey序号nicknamenvarchar(100)是昵称contentnvarchar(200)是内容(4)用户注册表(member)列名数据类型NULL约束说明idint否Primarykey序号usernamenvarchar(50)是用户名passwordnvarchar(50)是密码typenvarchar(50)是类型regtimenvarchar(50)是注册时间(5)用户信息表(pmember)列名数据类型NULL约束说明idint否Primarykey序号midint是编号realnamenvarchar(50)是实名sexnvarchar(50)是性别birnvarchar(50)是生日shengnvarchar(50)是省份citynvarchar(50)是城市telphonenvarchar(50)是电话emailnvarchar(50)是电子邮件addressnvarchar(100)是地址questionnvarchar(100)是问题answernvarchar(100)是回答第四章 系统实现4.1 管理员登录与管理在管理员登录界面,在对应的文本框中输入管理员名,在对应的文本框中输入密码,如果管理员名和密码与数据库中的管理员名和密码都相符,点击“确定”后进入系统的后台管理界面。如果输入的信息有误,则给出错误提示。输入:管理员名和密码。处理:用户登录需要填写用户名和密码,这就是通过检查用户是否满足登录的要求来确定是否能登录。这要求判断用户名和密码文本框是否为空,假如文本框是空,则提示不能为空。另外,还要检验用户名在数据库中是否存在,密码对不对。输出:如果登录成功,则用户进入个人信息管理页面,不成功则报错。界面如下图所示:图 4-1-1管理员登陆界面主要代码如下:<%String message = (String)request.getAttribute("message");if(message = null)message = ""if (!message.trim().equals("")out.println("<script language='javascript'>");out.println("alert('"+message+"');");out.println("</script>");request.removeAttribute("message");String yzm=code.getCheckCode(); %>进入个人信息管理页面后,管理员将有如图所示的功能。图 4-1-2 后台功能界面4.1.1车辆添加及修改车辆信息的添加和修改可以基于同一个界面完成功能。图 4-1-3 后台功能界面添加查询: if(method.equals("upBUS") /add String id = request.getParameter("id");String xianluming = request.getParameter("xianluming"); String tujingzhan = request.getParameter("tujingzhan"); String sql="update bus set xianluming='"+xianluming+"',tujingzhan='"+tujingzhan+"',gx=gx+1 where id='"+id+"'"int flag = cBUp(sql);if(flag = Constant.SUCCESS) request.setAttribute("message", "操作成功!");request.getRequestDispatcher("admin/bus/index.jsp").forward(request, response); else request.setAttribute("message", "操作失败!");request.getRequestDispatcher("admin/bus/index.jsp").forward(request, response); else if(method.equals("delBUS") /del String id = request.getParameter("id"); int flag = cBUp("delete from bus where id='"+id+"'");if(flag = Constant.SUCCESS) request.setAttribute("message", "操作成功!");request.getRequestDispatcher("admin/bus/index.jsp").forward(request, response); else request.setAttribute("message", "操作失败!");request.getRequestDispatcher("admin/bus/index.jsp").forward(request, response); 4.2用户登录、注册与管理 1.此处的用户登录与管理员的登录一样,他们可以相互借鉴。如下图所示:图4-2-1 用户登录界面 2. 有了登录,那注册必不可少。首先在注册时要确认是否重名,如果没有重名,这次的注册继续进行;如果重名,系统则给予提示。密码的输入则是要求6位以上,保证安全性。提交后系统确认有效性,进入信息注册界面,完善个人信息。图4-2-2 用户注册界面其中关键性的代码有下面这些。查看是否重名:<input type=button value="查看是否重名" onClick="sameREGcheck()" >生成密码文本框,并使用正则表达式验证数字是否符合要求,然后存入数据库: <INPUT class=inputb id=password type=password maxLength=16 size=22 name=password onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/d/g,'')" onkeyup="value=value.replace(/W/g,'')" > 生成密码再输入文本框,并与之前的密码对比,一样则通过:<INPUT class=inputb id=reg_pwd2 type=password maxLength=16 size=22 name=reg_pwd2 onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/d/g,'')" onkeyup="value=value.replace(/W/g,'')" > 3.个人信息的注册,只需根据提示一步一步的填写就可以完成。有红星的是要求必填。图 4-2-3 用户信息注册界面本段代码主要是验证输入的数据是否符合格式。<% String message = (String)request.getAttribute("message");if(message = null)message = "" if (!message.trim().equals("") out.println("<script language='javascript'>"); out.println("alert('"+message+"');"); out.println("</script>");request.removeAttribute("message");%><% String member=(String)session.getAttribute("member");String type=(String)session.getAttribute("type"); if(member=null|type=null)response.sendRedirect(path+"/error.jsp"); elseList list = mb.getRegInfo(member); String str="checked"String str2="" if(list.get(2).toString().trim().equals("f") str="" str2="checked"%>4.当用户登陆后,会进入用户个人平台,可以进行自己密码的更改。图4-2-4 用户密码更改界面生成文本框,并检查与数据库中的密码是否相符: <input type="password" name="newpwd" size="20" maxlength=16 class=input onbeforepaste="clipboardDa