J2EE-公交查询系统的设计与实现_第1页
J2EE-公交查询系统的设计与实现_第2页
J2EE-公交查询系统的设计与实现_第3页
J2EE-公交查询系统的设计与实现_第4页
J2EE-公交查询系统的设计与实现_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

精品文档学号_ 2011040131050 _ 密级_武汉东湖学院本科毕业论文J2EE公交查询系统的设计与实现院(系)名称:计算机科学学院专业名称:计算机科学与技术学生姓名:杨志祥指导教师:吴保珍二一五年五月BACHELORS DEGREE THESIS OF WUHAN DONGHU UNIVERSITYDesign and Realization of Public Transport Inquiry System Based on J2EECollege :Computer Science Subject :Computer Science and TechnologyName : yangzhixiangDirected by : wubaozhenMap 20155欢迎下载5欢迎下载。郑 重 声 明本人呈交的毕业论文,是在导师的指导下,和小组成员共同努力并独立进行自己项目分工范围内所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本毕业论文的知识产权归属于培养单位。本人签名:_ 日 期:_ 摘 要随着农村城镇化进程的加快,城市人口数量随之迅速增加,城市居民出行变得越来越多,毫无疑问,公交查询系统变得越来越重要。公交查询系统是城市道路交通的重要组成部分。我国的城市公交查询系统正处在发在的初期,所以人们可以得信息的方式相对较少,为了使这一问题得以解决,设计出基于J2EE的公交查询系统。本论文详细介绍了整个系统的已实现的功能。第一,该系统实现了多种的公众查询的查询功能。第二,可以查寻任意两个公交站点之间所有可达的公交路线,通过迪杰斯特拉算法实现查找最短的一条路线。最后,提供了用户留言的功能、用户管理功能和后台车次管理功能;用户留言功能,主要是对用户的留言信息进行收集,通过用户提供的留言信息或是提出的建议,对系统进行修改和完善;用户管理功能,主要是删除用户信息和修改用户基本信息;后台车次管理,它功能目的是让系统做到实时更新,这样就可以为用户提供更加准确的查询信息。关键词:J2EE;最短路径算法;公交查询ABSTRACTWith the fast development of urbanization, the population in the city is increasing rapidly, peoples going out has become more and more frequent. Therefore, there is no double that the problem of transportation has been the first to solve. Urban public transportation is an important part in traffic and transportation domain, and its also the inevitable result of social economys development in urban areas. As an important part of urban transportation system, urban public transportation system is acting a key role in human living, in social production and in transportation domain .But the inquiry system of public transportation developments in our country is in a comparatively backward level. The general passengers have less way to obtain the information. In order to solve this kind of problem, an inquiry system of public transport based on J2EE is designed.The thesis has introduced the realized functions of entire system in detail. Firstly, the system has realized many inquiry functions. The system can search bus route by the name of business mansion, the number of public transport, ordinary bus station and two arbitrary stations. Secondly, the system uses the shortest path algorithm to find the shortest travel routes between any two stations. Finally, the system provides the functions of consumer message, the bus number managing on the backstage and the consumer managing. The function of consumer message mainly collects suggestions from consumer to modify and perfect the system functions. The function of user managing is to delete user information mainly and revises the fundamental user information. The functions of bus number managing are mainly to add, update and delete the bus number and the station on the backstage. These can enable the system have the quality of real-time updating to provide the accurate information for user.Keywords:J2EE; Shortest path algorithm; public transport inquiry目 录摘 要IABSTRACTII1引言11.1 选题背景11.2 项目的主要研究工作21.3 开发环境22 公交查询系统功能分析32.1 公交查询系统的需求32.1.1 系统需求描述32.1.2 系统数据流图32.2 公交查询系统的功能42.3 公交查询系统的数据库设计42.3.1 E-R图42.3.2 数据库表设计63 公交查询系统的设计与实现83.1 创建管理员登录的Servlet83.2 创建用户登录的Servlet103.3查询模块的实现113.3.1商厦查询113.3.2 车次信息查询123.3.3 站点信息查询143.3.4 两个站点间的信息查询144 系统测试与分析165 结论17参考文献18致谢1921欢迎下载21欢迎下载。1引言1.1 选题背景改革开放20多年来,我国经济得到了持续、快速、稳定、健康地发展。经济的快速增长,带动了汽车工业的蓬勃发展,这就造成了使交通状况显著改善。据统计,中国公路通车总里程已达130余万公里,其中高速公路约1.5万公里。随着经济的快速、稳定的增长,我国汽车消费市场也进入快速增长期。我国城市人口约有2亿,略低于美国人口。东部沿海地区大部分居民已经具备了汽车消费实力。随着人民生活水平的不断提高,中国汽车市场的发展必将更加快速,家庭轿车会变得越来越普及。随着城市经济的快速发展,城市规模变得越来越大,这就使得城市公交系统也越来越庞大。现在有许多新建小区,这个给人们出行选择乘车线路造成了一定的困难。我们通过实验得出,大部分在城市生活了很长时间的人,我们任意给出这个城市的两个地点,叫他们说出乘车路线,他们往往很难说出。虽然地图通过地图可以很快的解决这一问题,找到两个地点的乘车方案,但是这样的查询效率是相当低的,所以问题根本所在是提供一个高效的公交查询系统。本课题开发出来的J2EE公交查询系统采用迪杰斯特拉算法,可以查出任意两个地点之间的最短乘车方案。通过在城市的主要场所放置这一系统可以体现出一个城市的智能公交系统的水平和数字化,信息化水平。目前,我国众多大城市存在普遍交通拥挤情况,延误人们上下班和休闲时间。这一问题甚至影响了城市旅游业经济的可持续发展。所以我们可以通过我们必须解决行合一问题,我们可以通过这一公交查询系统为人们提供最短的乘车线路来很好的解决这一问题。所以对这一查询系统的研究就变得非常重要。这以系统能提高人们的生活质量,让人们在工作中的行车压力显著减少。同时也可以提高城市的生活水平。本项的目的是让人们的出行变得更加便捷,人们可以通过互联网查出他们要去地点的最短乘车路线,这样可以高效、快速的到达目的。1.2 项目的主要研究工作本查询系统是基于J2EE体系的公交车查询系统,它的设计根据城市交通现状出发和人们的出行规律。该系统可以很好解决市民出行乘坐公交车时经常遇到的困难,人们根据日常站点,公交车号商厦名称,和站点之间为查询条件分别进行查询。本系统模型构架分为下面四层结构,如下。(1)J2EE应用程序组件J2EE应用程序由组件构成。J2EE是具有独立功能的一个软件单元,这些软件单元具有独立的功能,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。本系统包括如下组件:应用J2EE服务器及客户端程序。Java Servlet和Java Server Pages(JSP)Web组件及JavaBean。(2)WEB层组件J2EE web层组件包含Servlet或JSP页面。按照J2EE规范,通常用JavaBean来实现对数据的基本操作,而数据的处理通常是有业务逻辑层调用JavaBean中的操作来进行处理。(3)客户层组件基于WEB方式的Applet客户端的小应用程序或是静态HTML页面。(4)编写算法编写最短路径数据结构算法,通常用的是迪杰斯特拉算法作为计算最短路径的中心算法,以此来解决完成站点之间最短乘车路径查询。1.3 开发环境开发工具:Eclipse 4.4.1 + MyEclipse 10.7。运行环境:JSDK 1.5.0_04虚拟机。服务器:Tomcat 7.0.59。数据库:MicroSoft SQL Server 2005。操作系统:Windows 7。2 公交查询系统功能分析2.1 公交查询系统的需求2.1.1 系统需求描述需求的运输系统,为用户提供的最重要的两样确切位置的最短路径是,为了实现这一目标是一个网络图是一个城市的公交查询算法的数据结构,那么最短路径算法。其次,从商业的角度来看,需要在最短路径算法逻辑层,而用户必须根据用户的查询连接到数据库查询和网站的信息,建立公交查询图,最短两个站点时最后一个调用算法之间的路由。当查询完成后,如果用户需要进行其它的操作,则释放该连接资源。最后,为了让公交线路信息得到及时的更新或是信息删除,需要做出相应的操作和处理。2.1.2 系统数据流图图2.1 系统数据流图2.2 公交查询系统的功能(1)通过选择商厦名称进行相应的信息查询。(2)通过选择车号进行相应的信息查询。(3)通过选择站点进行相应的信息查询。(4)通过选择任意两个站点,完成两站点之间最短乘车路线查询。(5)完成车次和站点添加功能。(6)完成车次和站点更新功能。(7)完成车次和站点删除功能。(8)用户登录验证功能。(9)用户注册信息功能。(10)用户注销功能。(11)删除用户信息功能。 (12)添加用户留言,删除用户留言,查看用户留言。(13)管理员登录验证功能。(14)管理员注销功能。2.3 公交查询系统的数据库设计2.3.1 E-R图图2.2 用户实体及属性图2.3 管理员实体及属性图2.4 留言板实体及属性图2.5 车次与站点之间关系2.3.2 数据库表设计(1)用户表userInfo(如表2.1)表2.1 用户表信息列名中文名称数据类型长度允许空username用户名varchar50Not nulluserpassword用户密码varchar50Not nulluserage用户年龄int4nulladdress地址varchar50nullemail邮箱varchar50nullquestion问题varchar50nullanswer答案varchar50nullidnum证件号varchar50null(2)管理员表administrator(如表2.2)表2.2 管理员信息列名中文名称数据类型长度允许空adminiID管理员名Varchar50Not nulladminipassword密码varchar50Not null(3)车次信息表BusInfo(如表2.3)表2.3 车次信息表列名中文名称数据类型长度允许空BusNum车号int4Not nullBeginSt起点站varchar50Not nullEndSt终点站varchar50Not nullTicketNote票价varchar50nullBusLevel车子档次varchar50nullNote票档次varchar50null(4)站点信息表StInfo(如表2.4)表2.4 站点信息表列名中文名称数据类型长度允许空StID站点号int4Not nullStName站点名称varchar50Not null(5)车次与站点关系表BusSt(如表2.5)表2.5 车次与站点关系表列名中文名称数据类型长度允许空BusNum车号Int4Not nullStID站点号Int4Not nullStOrder站点次序Int4Not null(6)商厦信息表publicplace(如表2.6)表2.6 商厦信息表列名中文名称数据类型长度允许空placesid商厦号int4Not nullplacesname商夏名称varchar50null(7)站点与商厦关系表stplace(如表2.7)表2.7 站点与商厦关系表列名中文名称数据类型长度允许空StId站点号int4Not nullplaceId商厦号int4Not null(8)留言信息表message(如表2.8)表2.8 留言信息表列名中文名称数据类型长度允许空username用户名varchar50Not nullmessagedate留言日期datetime8Not nulltopic留言主题varchar50Not nullemail邮箱varchar50nullmessagetext留言内容varchar250Not nullid留言序号int4Not null3 公交查询系统的设计与实现3.1 创建管理员登录的Servlet(1)打开MyEclipse开工具,新建一个ConfirmServlet类(如图3.1)图3.1 创建管理员登录ConfirmServlet类(2)首先,先创建一个ConfirmServlet类,之后在这一类中创建一个私有的login方法,这个方法用来对管理员登陆的信息进行校验。它显示用response和request来初始话。利用request的getParameter()方法来获取管理员的页面传来的两个参数,一个是参数name,另一个是参数password。当接受到客户端传递过来的参数时,就会对数据库对象进行实例化,先检查验证码,当验证码无误之后就对管理员账号name和管理员密码password验证,最终会将正确的管理员用户的信息放入session会话中保存。管理员登录界面(如图3.2)图3.2 管理员登录界面相应代码:private void login(HttpServletRequest request,HttpServletResponse response)Connection connection=null;Statement stmtement=null;ResultSet rs=null;HttpSession session=request.getSession(true);/如果用户session为空重新分配一个新的session给用户DBConnection2 db=DBConnection2.getInstance();String name=request.getParameter(name) =null ? : request.getParameter(name);name =exChange(name);/字符串乱码处理String password = request.getParameter(password) = null ? : request.getParameter(password);password=exChange(password);/字符串乱码处理String sql=;String rand=(String) session.getAttribute(rand);String input=request.getParameter(vaild);int n=0;tryconnection = db.getConnection();stmtement = conn.createStatement();sql = select * from administrator where adminiID = +name+ and password = +password+;rs= stmtement.executeQuery(sql);if(rs.next() & rs!= null)n+;if (n 0 & input.equals(rand)session.setAttribute(name, name);session.setAttribute(password, password);session.removeAttribute(rand);response.sendRedirect(loginSuccess.jsp);elseresponse.sendRedirect(error.jsp);catch(Exception e)e.printStackTrace();finallytryif(stmtement!=null)stmtement.close();db.freeConnection(connection);catch(Exception e)e.printStackTrace();3.2 创建用户登录的Servlet(1)打开MyEclipse开工具,新建一个UserLoginServlet类(如图3.3)图3.3 创建用户登录UserLoginServlet类(2)让UserLoginServlet类和管理员中的ConfirmServlet类一样,也生成一个具有私有属性的login()方法,该方法也同样的继承了HttpServletRequest和HttpServletResponse类,通过这个类的request.getAttribute()方法来获取用户界面请求过来的参数,当通过用户信息验证后,也将用户的密码和用户账号放入session会话变量的web中,当浏览器关闭时,session会话变量也随即销毁。用户登录界面(如图3.4)图3.4 用户登录界面3.3 公交系统查询模块3.3查询模块的实现3.3.1商厦查询用户可以利用这一查询方式来查询具体商厦的地点,那么用户就可以看到这个查询地点的所有相关的车次信息,包括:车号, 票价, 站点名称 , 这个商厦的名称和车子的档次等信息。而要实现这一查询功能,我们要事先在系统的业务逻辑层中编写相应的类QueryData。当用户提交的信息来考察,第一个商业调查的Servlet的第一页编译服务器上,然后调用基于业务逻辑层的适当类。商厦信息查询结果(如图3.5)图3.5 商厦查询3.3.2 车次信息查询这一查询功能的实现,用户可以按车号查询所需公交的信息(如:1路),并将所查信息显示出来,这些信息就是下表的表头。而要实现这一查询功能,我们要事先在系统的业务逻辑层中编写相应的类QueryData。车次信息查询结果(如图3.6)图3.6 车次信息查询相应的代码:public ArrayList statisticsByBusInfo(String busNum,int page) ArrayList = new ArrayList();DBConnection2 db = DBConnection2.getInstance();Connection connection = null;Statement statment = null;ResultSet rs = null;String sql = ;try int m = (page-1)*pageSize; /计算游标的位置int i = 0;busNum = exChange(busNum);/字符串转码if (busNum.equals() | busNum = null) sql = select * from busInfo; else busNum = exChange(busNum);/字符串转码sql = select * from busInfo where busnum = +Integer.parseInt (busNum)+;connection = db.getConnection();statment= connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = statment.executeQuery(sql);if (rs.first() rs.absolute(m + 1); /将游标放到指定位置再加1(也是开始的第一条记录的序号)while (i pageSize & !rs.isAfterLast() & rs != null) HashMap hashMap = new HashMap();hashMap.put(BusNum,+rs.getInt(busnum);将从数据库中查出的值放入hashmap中hashMap.put(BeginSt,rs.getString(beginst);hashMap.put(EndSt,rs.getString(endst);hashMap.put(TicketNote,rs.getString(ticketnote);hashMap.put(BusLevel,rs.getString(buslevel);hashMap.put(Note,rs.getString(note);arrayList.add(hashMap); /将所有的hashmap放入arrayListrs.next();i+; catch (Exception e) e.printStackTrace(); finally try if (statment != null) statment.close();db.freeConnection(connection); catch (Exception e) e.printStackTrace();return arrayList;因为此方法要使用util包,所以,应该实现导入所需的util包,再创建对象,之后通过此对象条用一个statisticsByBusInfo方法来实现查询。3.3.3 站点信息查询用户通过站点信息查询的功能,可以查询公交车到某一个站点需要乘坐公交车的车号。而要实现这一查询功能,我们要事先在系统的业务逻辑层中编写相应的类QueryData。站点信息查询结果(如图3.7)图3.7 站点信息查询3.3.4 两个站点间的信息查询任意两个站点间的查询页面(如图3.8)图3.8 最短路径查询页面任意两个站点间查询结果页面(如图3.9)图3.9 任意两个站点间查询结果(1)广度优先遍历概念给定一个起点,广度优先遍历邻接第一接入点和研究的出发点,然后每一个邻居拜访他们的邻居。通过使用一个队列来存储顶点的邻接不接入点,当从队列中删除一个顶点的顶点,它将不能访问邻居节点到队列中,遍历的顺序是一个顶点插入队列。4 系统测试与分析系统的各个模块的设计后,对整个系统进行全面测试的需要。目的是让整个系统能快速,稳定,安全运行。在进行系统测试过程中出现如下几种情况:(1)对页面提交的过来的数据进行空指针异常捕捉。凡是遇到无效或是空值数据都需要用程序进行操作处理。(2)及时的捕捉数据库连接和关闭异常。以免数据库连接资源及时释放,提供下一次请求调用。(3)对数据库查询操作异常进行捕捉。(4)对数据库更新操作异常进行捕捉。(5)对数据库添加操作异常进行捕捉。(6)对数据库删除操作异常进行捕捉。(7)权限控制,通过session会话变量对管理员和用户的权限进行控制。(8)页面的编码方式不同,需要的对字符串进行转码操作。5 结论通过对J2EE的知识,认真研究,理论和实践,最后完成了基于J2EE的公交查询系统的设计实现。经过多次测试,运行效果良好。对于系统,加强管理,只是作为一个单独的模块总线管理系统,它也可以放在功能更完善的城市公共场所,提供快速,方便的查询的人。这不仅反映了一个城市公交查询系统的发展水平,它能显示数字化和信息化水平的城市。公交查询系统的开发与利用也将促进城市公交才能更好的为人民服务。毕业设计的过程中,我参考了大量书籍,并通过互联网获取了相关信息,本系统是采用B/S结构的公共交通系统,通过这次论文的学习使我的编程

温馨提示

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

评论

0/150

提交评论