《基于android的手机公交线路查询系统设计论文.doc》由会员分享,可在线阅读,更多相关《基于android的手机公交线路查询系统设计论文.doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 . . . 毕 业 设 计( 论 文 )题目手机公交线路查询系统摘 要随着人们生活水平的提高,出行坐车成为日常生活中不可缺少的一部分。而乘往目的地的线路需要随时掌握,于是手机公交线路查询软件,将成为人们生活出行的好帮手。手机公交线路查询软件主要包括了服务器端以与客户端,服务器和客户端拥有各自独立的数据库,客户端采用数据库同步方式从服务器数据库获取信息。用户既能从手机本地数据库获取信息,又能从互联网上获取信息,即便脱离服务器也能做为单机版软件使用。通过手机公交查询软件,用户能够与时更新公交信息和查询线路,也能够借助Google服务器进行地图查询。服务器有后台管理软件,方便了管理员对服务器的管理
2、操作。本手机公交线路查询系统采用了B/S-C/S结构。关键词:Java;手机公交线路查询;B/S-C/S结构;AbstractWith the level of peoples life improving,going out by bus become a necessary part of daily life.And the traffic line to destination should be known everytime.The software of Mobileand querying traffic line become more and more important
3、nowadays gradually.Itscontains server and client,server and client have its own database,client gets information by synchronizing database from server.It satifies users requirements of getting information from locale database and obtaining information from internet,it also can be used without the he
4、lp of server.With this Mobile and querying traffic line software,user can update data in time and check There is a management software in server,facilitate administrator to manage server. Mobileand querying traffic line software suits for B/S-C/S structure.Keywords:Java; Mobile and querying traffic
5、line;B/S-C/S structure.目 录第一章引言1第二章需求分析与概要设计22.1需求分析22.1.1 服务器端需求分析22.1.2 客户端需求分析22.1.3 开发环境与工具需求分析32.2 概要设计42.2.1 开发流程42.2.2 系统数据流图4第三章模式设计53.1 C/S模式简介53.2 B/S模式简介53.3 B/S-C/S模式63.3.1 B/S-C/S模式定义63.3.2 B/S-C/S模式特点7第四章数据库设计84.1 数据库结构84.2 服务器数据库设计:84.3 客户端数据库设计:104.3.1 SQLite简介104.3.2 数据库设计10第五章服务器端详
6、细设计125.1 后台管理模式125.2 查询简析185.2.1线路查询185.2.2站点查询185.3 数据库同步195.3.1 Servlet195.3.2 DAO195.3.3 XML19第六章客户端详细设计216.1 简述216.2 什么是Android216.3 Android系统架构简介216.3.1 应用程序(APPLICATIONS)226.3.2 应用程序框架(APPLICATION FRAMEWORK)226.3.3 Android 运行时(RUNTIME)236.3.4 系统库(LIBRARIES)236.3.5 Linux236.4 实现客户端数据库236.4.1 SQ
7、L语言236.4.2 创建数据库246.4.3 客户端数据库操作246.5 客户端功能模块实现266.5.1 线路查询266.5.2 地图功能276.5.3 数据更新296.5.4 意见反馈30第七章结论31参考文献32致33附录A 数据库更新语句34附录B 线路和站点查询代码35附录C 票价和发车时间查询代码4750 / 53第一章 引言随着因特网发展的日新月异,人们利用网络实现资源共享以与协同工作越来越成为时代的潮流,使用各种网上的软件方便生活,已经成为了一个不可扭转的趋势。以此设计题目为目的,选择市作为实践对象,以市公交系统为基础,再利用所学知识,熟练运用开发工具后,开发一个市手机公交线
8、路查询软件,并且尽可能将其开发为一个方便大众使用的公交线路查询软件。而且在当今公交出行线路多数是通过PC机查询获得的,但是假想一下在公交出行线路走到一半的时候计划有所变化,公交出行线路需要有所调整,那么如何能够动态掌握线路信息显得尤为重要,而且将来对生活的满意度也不仅仅是百姓致富安居乐业就足以,而是逐渐趋向于一个更人性化的服务。城市交通服务以与附属的一些服务一直都在不断的随着社会的进步而进步,这些服务从最开始的直接人力服务转向技术型服务,如询问,路牌等,然而这些服务总是有比较大的局限性,即纵然你知道了这条路该怎么走,下条路线该通到哪却不知,于是开发这个手机公交线路查询软件,可在手机上随时随地对
9、公交线路进行查询,对用户将要出行的路线了如指掌,这对用户来说可以省去很多麻烦,节省不少时间。本次毕业设计结合市公交线路系统开发一个公交线路手机查询软件,服务于大众。第二章 需求分析与概要设计2.1需求分析手机公交线路查询软件最基本的功能是能够有效的为用户提供查询服务,在最短的时间给用户一条或多条到达目标地的路径。整个查询过程中,只有数据信息是依靠服务器同步获取,其余功能均在手机端完成。在此分别对手机公交线路查询软件的服务器端和客户端做需求分析。2.1.1 服务器端需求分析服务器作为后台,需要专业人员对服务器操作和维护,一般情况可由非专业人员借助管理软件对服务器进行常规维护。服务器可以通过数据库
10、同步,为客户端数据库提供数据。通过仔细分析服务器需求之后,服务器端要完成以下功能:1、服务器后台管理功能服务器后台管理是针对数据库进行操作,具有增、删、改、查功能。2、数据同步功能。采用Servlet技术,响应客户端请求,返回给客户端一端数据流,该数据流按照Xml语言规写入数据流。服务器端功能模块划分如图2.1所示。图 2.1 服务器端功能模块图2.1.2 客户端需求分析客户端主要是手机,用户无法通过手机对本地数据库进行操作,也无法对服务器数据库操作,管理员可以通过手机浏览器登录到服务器管理员页面对数据库进行操作,可以使用一些功能。该软件应满足若干要求,比如能够随时掌握公交信息,动态更新最新数
11、据等。也要考虑作为手机软件可能会出现查询速度慢,数据流量过大,过度依赖服务器等问题。通过仔细分析用户需求之后,该软件要完成以下功能:1、查询线路功能获得线路经过的每个站点信息以与线路的票价信息和发车时间信息。2、地图查询功能借助GoogleMap,完成公交查询并显示地图线路。3、数据更新功能服务器响应客户端请求返回一段数据流,客户端接收此数据流后,按照Xml语言规对数据流进行解析,解析后将数据存入客户端数据库。4、意见反馈功能通过手机将意见发送到管理员的。客户端功能模块划分如图2.2所示。图2.2 客户端功能模块图2.1.3 开发环境与工具需求分析服务器端开发环境,以windows7操作系统为
12、开发平台,用Tomcat6.0做为服务器,Mysql5.0作为数据源,JSP作为开发工具,Dreamweaver8.0作为辅助开发工具,运行在一般的PC机上即可。客户端开发环境,以Android手机操作系统为开发平台,用Android手机操作系统自带的SQLite作为数据源。Java语言和Xml语言作为开发工具,Eclipse3.5作为辅助开发工具。整个Android手机操作系统是在Android SDK提供的虚拟机中运行,该虚拟机运行在windows7操作系统上,所以客户端的开发是在windows7操作系统上运行的Android操作系统中进行的二次开发。开发环境配置请参考文献6。2.2 概要
13、设计2.2.1 开发流程开发流程如图2.3所示。运行测试调试程序编写程序确定功能调查研究优化完善图2.3 开发流程图2.2.2系统数据流图系统数据流程如图2.4所示。图2.4 系统数据流图第三章 模式设计3.1 C/S模式简介精简的说:C/S模式是一种三层结构的系统,第一层在客户机上安装了客户机应用程序,第二层在服务器上安装服务器管理程序,第三层是数据访问层。在C/S模式的工作过程中,客户机程序发出请求,服务器程序接收并且处理客户机程序提出的请求,然后返回结果。C/S模式特点:(1)C/S模式将应用与服务分离,系统具有稳定性和灵活性(2)C/S模式配备的是点对点的结构模式,适用于局域网,有可靠
14、的安全性(3)由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快(4)在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升每台客户机都要安装客户机程序,系统升级和维护较为复杂发。3.2 B/S模式简介精简的说:B/S模式是一种从传统的三层C/S模式发展起来的新的网络结构模式,其本质也是三层结构的C/S模式。在用户的计算机上安装浏览器软件,在服务器上存放数据并且安装服务应用程序,服务器有WWW服务器和文件服务器等。用户通过浏览器访问服务器,进行信息浏览、文件传输和电子等服务。B/S模式特点:(1)系统开发、维护、升级方便 每当服务器应用程序升级时,只要在服务器上升级
15、服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护方便。(2)B/S模式具有很强的开放性 在B/S模式下,用户通过通用的浏览器进行访问,系统开放性好。(3)B/S模式的结构易于扩展由于Web的平台无关性,B/S模式的结构可以任意扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的大型系统。(4)用户使用方便 B/S模式的应用软件都是基于Web浏览器的,而Web浏览器的界面是类似的。对于无用户交换功能的页面。用户接触的界面都是一致的,用户使用方便。3.3 B/S-C/S模式3.3.1 B/S-C/S模式定义B/S-C/S模式是将B/S模式和C/S模式组
16、合而来的,吸取这两种模式的优点,达到互补的作用。B/S模式和C/S模式都是三层结构,B/S模式第一层是表现层,第二层是业务逻辑层,第三层是数据访问层。C/S模式三层结构中第一层是客户端与B/S模式中的第一层不一样,其余两层一样。在B/S模式和C/S模式数据访问过程和业务逻辑处理过程中是在服务器端完成,用户只需接受服务器返回的结果。在B/S-C/S模式中,一部分数据访问过程和业务逻辑处理过程在客户端完成,另外一部分数据访问过程和业务逻辑处理过程在服务器端完成。本手机公交线路查询软件一部分功能只要依靠手机本地数据库就可以实现,令外一部分功能需要借助互联网实现。目前不论是手机硬件还是计算机硬件,更新
17、速度很快,而且硬件的配置水平也越来越高,在硬件条件允许的情况下把一部分业务处理、数据访问的过程放在客户端去完成,那么对服务器的硬件要求就会低一些,甚至一些高性能的PC机就可以作为服务器。从整个作业量来看,本质上是把作业量往客户端多分摊一部分,降低服务器的作业量,因此,对客户端的硬件要比较高的。B/S-C/S模式结构如图3.1 所示。图3.1 B/S-C/S模式结构图本软件系统采用B/S-C/S模式,系统框架如图3.2所示。图3.2 系统框架图3.3.2 B/S-C/S模式特点B/S-C/S模式在继承了B/S模式和C/S模式的优点之后,还具有以下特点:(1) 可靠性高1、客户端不必完全依赖于服务
18、器,即便脱离服务器,还有手机数据库的支持,可以继续使用一部分功能。2、客户端的数据丢失的时候,可以采用数据库同步的方式从服务器获得新的数据信息。(2) 省资源一部分作业在客户端完成,服务器的访问量和作业量都会减少,省资源,维护起来会更加方便。第四章 数据库设计4.1 数据库结构服务器数据库为总数据源,每一个客户端都拥有独立的小型数据库。客户端数据库信息从服务器端同步获得。服务器的数据库是基于Mysql建立,客户端数据库是基于SQLite建立。数据库体系结构如图4.1所示。图4.1 数据库体系结构图4.2 服务器数据库设计:E-R关系如图4.2所示。图4.2 服务器数据E-R图根据上面的E-R图
19、,本软件服务器端定义的arashmen数据库设计了以下4表:站点表:station(表2)、线路表:routes(表3)、发车时间表:departuretime(表4)、票表:fare(表5)。本软件服务器数据库所包含的表的描述如表1。表4.1 数据库概况表表名描述主要字段stations(站点表)保存站点信息ID,stationroutes(线路表)保存线路信息ID,RouteName,Contentdeparturetime(发车时间表)保存首班发车时间保存末班发车时间RouteNameFirstDepartureTime,LastDepartureTimefare(票价信息表)保存公交线
20、路票价信息ID,isFixed,FullFare表4.2 站点表字段名数据类型长度主键/外键默认值描述idInt4PKID,自动增长StationVarchar50站点名称表4.3 线路表字段名数据类型长度主键/外键默认值描述RouteNameChar20PK线路名称ContentLongText线路全径表4.4 发车时间表字段名数据类型长度主键/外键默认值描述idInt4PKID,自动增长RouteNameChar20FK线路名称FirstDepartureTimeTime首班发车时间LastDepartureTimeTime末班发车时间表4.5 票价信息表字段名数据类型长度主键/外键默认值
21、描述idInt4PKID,自动增长RouteNameChar20FK线路名称isFixedFareChar5是否为分段计费FullFareDouble8全程票价4.3 客户端数据库设计:4.3.1 SQLite简介Android数据库使用的是SQLiteDatabase,我们来简单的介绍下Android平台上的SQLiteDatabase 。SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的存就够了。它能够支持Windows/Linux/Unix等等主流的操
22、作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款世界著名开源的数据库管理系统来讲,它的处理速度比他们都快。该软件数据库的建立是完全在Android平台上执行Java代码,通过DVM编译来建立的,没有什么辅助工具,由于整个SQLite数据库是非可视化操作,所有对数据库的操作都是通过执行Java代码实现,在完成其查询功能的时候没有使用数据库高级编程,较为麻烦的关节是在如何有机的将客户端数据库整体结构实现出来,实现过程是无可视界面,也没有数据库辅助工具情况下,整个过程很抽象。且表的设计应尽量简单,不要有错综复杂的关
23、系,每表都是独立的,不存在任何约束,数据库也是独立数据库,不采用Android特有的可共享数据库。4.3.2 数据库设计E-R关系如图4.3所示。图4.3 客户端数据库E-R图根据上面的E-R图,本软件客户端定义的arashmen数据库中包含以下4表:站点表:station(表7)、线路表:routes(表8)、发车时间表:departuretime(表9)、票表:fare(表10)。本软件服务器数据库所包含的表的描述如表6。表4.6 数据库概况表表名描述主要字段stations(站点表)保存站点信息ID,stationroutes(线路表)保存线路信息ID,RouteName,Content
24、Departuretime(发车时间表)保存首班发车时间保存末班发车时间RouteNameFirstDepartureTime,LastDepartureTimefare(票价信息表)保存公交线路票价信息ID,isFixed,FullFare表4.7 站点表字段名数据类型长度主键/外键默认值描述idInt4PKID,自动增长StationVarchar50站点名称表4.8 线路表字段名数据类型长度主键/外键默认值描述RouteNameChar20PK线路名称ContentLongText线路全径表4.9 发车时间表字段名数据类型长度主键/外键默认值描述idInt4PKID,自动增长RouteN
25、ameChar20FK线路名称FirstDepartureTimeTime首班发车时间LastDepartureTimeTime末班发车时间表4.10 票价信息表字段名数据类型长度主键/外键默认值描述idInt4PKID,自动增长RouteNameChar20FK线路名称isFixedFareChar5是否为分段计费FullFareDouble8全程票价第五章 服务器端详细设计5.1 后台管理模式后台制作使用JSP完成。基本管理流程如图5.1所示。图5.1 管理流程图通过管理员模式进入管理员添加线路页面,可以添加公交线路名称,首班发车时间,末班发车时间,线路全径。添加页面如图5.2所示。图5.
26、2 添加线路页面实现添加功能代码如下所示:通过管理员模式进入管理员修改、删除线路页面,可以对已经添加成功的公交线路信息修改并保存,也可以直接在该页面删除数据。修改、删除线路页面如图5.3所示。图5.3 修改,删除页面实现修改、删除功能代码如下所示:通过管理员模式进入管理员查询页面,可以使用线路查询和站点查询,查询功能如图5.4所示。图5.4 查询页面实现管理员查询页面功能代码如下所示: 线路查询结果页面 %out.println(routesname+:+routes+);% %out.println(routesname+:+routes+);%查询结果如图 5.5所示。图 5.5 结果页面
27、5.2 查询简析查询方式与数据存储格式有关,线路全径的存储为字符串,市13路公交车线路全径如下所示:火车站 - 公安局 - 基建营 - 韶路 - 文家围子 - 护潭广场 - 护潭村 - 永红村 - 潭九路口 - 科技大学南- 科大路口 - 粮库 - 桃园路口 - 高岭路口 - 大学新路口 - 大学。5.2.1线路查询按线路名称查询,如13路,13路公交车,13等只要不在13这个数字的1和3中间插入其他字符,就可以返回该线路的线路信息,票价信息和发车时间。5.2.2站点查询在站点查询页面设置了两个文本域,用来获得起点地址和目标地址,暂称起点地址为A,称目标地址为B。(1)获取了A与B的信息后,在
28、数据查询语句中将组合成“%A%B%”的形式,进入数据库进行查询,将所查询到的所有结果返回到页面显示。如果没有结果,则进行情况2。(2)考虑是否是乘车方向不对,数据库只存储单向的线路,没有存储一条返回的线路,在此只需要在查询语句中将A与B的位置交换,将其组合成“%B%A%”形式再次进行查询,如果仍旧没有返回结果,那么很有可能是A到B处可能没有直达公交线路,在此则要考虑换乘问题。(3) 该情况采用的是将含有站点A和含有站点B的所有线路信息都查询出来,然后利用当初存储规,使用正则表达式中的split方法将每一个线路信息(String类型)分割成字符串数组(String),然后便利分割后的A与B的字符串数组,字符串数组中的每个字元素代表每个站点,在返回若干结果之后,再进行判断,返回有效路径中经过站点数最少的路径。算法请参考附录B中算法onQueryStatio