




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南科技大学毕业设计(论文)题目手机公交线路查询系统作者学院计算机科学与工程学院专业网络工程学号指导教师二一年六月六日摘要随着人们生活水平的提高,出行坐车成为日常生活中不可缺少的一部分。而乘往目的地的线路需要随时掌握,于是手机公交线路查询软件,将成为人们生活出行的好帮手。手机公交线路查询软件主要包括了服务器端以及客户端,服务器和客户端拥有各自独立的数据库,客户端采用数据库同步方式从服务器数据库获取信息。用户既能从手机本地数据库获取信息,又能从互联网上获取信息,即便脱离服务器也能做为单机版软件使用。通过手机公交查询软件,用户能够及时更新公交信息和查询线路,也能够借助GOOGLE服务器进行地图查询。服务器有后台管理软件,方便了管理员对服务器的管理操作。本手机公交线路查询系统采用了B/SC/S结构。关键词JAVA;手机公交线路查询;B/SC/S结构;ABSTRACTWITHTHELEVELOFPEOPLESLIFEIMPROVING,GOINGOUTBYBUSBECOMEANECESSARYPARTOFDAILYLIFEANDTHETRAFFICLINETODESTINATIONSHOULDBEKNOWNEVERYTIMETHESOFTWAREOFMOBILEANDQUERYINGTRAFFICLINEBECOMEMOREANDMOREIMPORTANTNOWADAYSGRADUALLYITSCONTAINSSERVERANDCLIENT,SERVERANDCLIENTHAVEITSOWNDATABASE,CLIENTGETSINFORMATIONBYSYNCHRONIZINGDATABASEFROMSERVERITSATIFIESUSERSREQUIREMENTSOFGETTINGINFORMATIONFROMLOCALEDATABASEANDOBTAININGINFORMATIONFROMINTERNET,ITALSOCANBEUSEDWITHOUTTHEHELPOFSERVERWITHTHISMOBILEANDQUERYINGTRAFFICLINESOFTWARE,USERCANUPDATEDATAINTIMEANDCHECKTHEREISAMANAGEMENTSOFTWAREINSERVER,FACILITATEADMINISTRATORTOMANAGESERVERMOBILEANDQUERYINGTRAFFICLINESOFTWARESUITSFORB/SC/SSTRUCTUREKEYWORDSJAVAMOBILEANDQUERYINGTRAFFICLINEB/SC/SSTRUCTURE目录第一章引言1第二章需求分析与概要设计221需求分析2211服务器端需求分析2212客户端需求分析2213开发环境及工具需求分析322概要设计4221开发流程4222系统数据流图4第三章模式设计531C/S模式简介532B/S模式简介533B/SC/S模式6331B/SC/S模式定义6332B/SC/S模式特点7第四章数据库设计841数据库结构842服务器数据库设计843客户端数据库设计10431SQLITE简介10432数据库设计10第五章服务器端详细设计1251后台管理模式1252查询简析18521线路查询18522站点查询1853数据库同步19531SERVLET19532DAO19533XML19第六章客户端详细设计2161简述2162什么是ANDROID2163ANDROID系统架构简介21631应用程序APPLICATIONS22632应用程序框架APPLICATIONFRAMEWORK22633ANDROID运行时RUNTIME23634系统库LIBRARIES23635LINUX2364实现客户端数据库23641SQL语言23642创建数据库24643客户端数据库操作2465客户端功能模块实现26651线路查询26652地图功能27653数据更新29654意见反馈30第七章结论31参考文献32致谢33附录A数据库更新语句34附录B线路和站点查询代码35附录C票价和发车时间查询代码47第一章引言随着因特网发展的日新月异,人们利用网络实现资源共享以及协同工作越来越成为时代的潮流,使用各种网上的软件方便生活,已经成为了一个不可扭转的趋势。以此设计题目为目的,选择湘潭市作为实践对象,以湘潭市公交系统为基础,再利用所学知识,熟练运用开发工具后,开发一个湘潭市手机公交线路查询软件,并且尽可能将其开发为一个方便大众使用的公交线路查询软件。而且在当今公交出行线路多数是通过PC机查询获得的,但是假想一下在公交出行线路走到一半的时候计划有所变化,公交出行线路需要有所调整,那么如何能够动态掌握线路信息显得尤为重要,而且将来对生活的满意度也不仅仅是百姓致富安居乐业就足以,而是逐渐趋向于一个更人性化的服务。城市交通服务以及附属的一些服务一直都在不断的随着社会的进步而进步,这些服务从最开始的直接人力服务转向技术型服务,如电话询问,路牌等,然而这些服务总是有比较大的局限性,即纵然你知道了这条路该怎么走,下条路线该通到哪却不知,于是开发这个手机公交线路查询软件,可在手机上随时随地对公交线路进行查询,对用户将要出行的路线了如指掌,这对用户来说可以省去很多麻烦,节省不少时间。本次毕业设计结合湘潭市公交线路系统开发一个湘潭公交线路手机查询软件,服务于大众。第二章需求分析与概要设计21需求分析手机公交线路查询软件最基本的功能是能够有效的为用户提供查询服务,在最短的时间内给用户一条或多条到达目标地的路径。整个查询过程中,只有数据信息是依靠服务器同步获取,其余功能均在手机端完成。在此分别对手机公交线路查询软件的服务器端和客户端做需求分析。211服务器端需求分析服务器作为后台,需要专业人员对服务器操作和维护,一般情况可由非专业人员借助管理软件对服务器进行常规维护。服务器可以通过数据库同步,为客户端数据库提供数据。通过仔细分析服务器需求之后,服务器端要完成以下功能1、服务器后台管理功能服务器后台管理是针对数据库进行操作,具有增、删、改、查功能。2、数据同步功能。采用SERVLET技术,响应客户端请求,返回给客户端一端数据流,该数据流按照XML语言规范写入数据流。服务器端功能模块划分如图21所示。图21服务器端功能模块图212客户端需求分析客户端主要是手机,用户无法通过手机对本地数据库进行操作,也无法对服务器数据库操作,管理员可以通过手机浏览器登录到服务器管理员页面对数据库进行操作,可以使用一些功能。该软件应满足若干要求,比如能够随时掌握公交信息,动态更新最新数据等。也要考虑作为手机软件可能会出现查询速度慢,数据流量过大,过度依赖服务器等问题。通过仔细分析用户需求之后,该软件要完成以下功能1、查询线路功能获得线路经过的每个站点信息以及线路的票价信息和发车时间信息。2、地图查询功能借助GOOGLEMAP,完成公交查询并显示地图线路。3、数据更新功能服务器响应客户端请求返回一段数据流,客户端接收此数据流后,按照XML语言规范对数据流进行解析,解析后将数据存入客户端数据库。4、意见反馈功能通过手机邮件将意见发送到管理员的邮箱。客户端功能模块划分如图22所示。图22客户端功能模块图213开发环境及工具需求分析服务器端开发环境,以WINDOWS7操作系统为开发平台,用TOMCAT60做为服务器,MYSQL50作为数据源,JSP作为开发工具,DREAMWEAVER80作为辅助开发工具,运行在一般的PC机上即可。客户端开发环境,以ANDROID手机操作系统为开发平台,用ANDROID手机操作系统自带的SQLITE作为数据源。JAVA语言和XML语言作为开发工具,ECLIPSE35作为辅助开发工具。整个ANDROID手机操作系统是在ANDROIDSDK提供的虚拟机中运行,该虚拟机运行在WINDOWS7操作系统上,所以客户端的开发是在WINDOWS7操作系统上运行的ANDROID操作系统中进行的二次开发。开发环境配置请参考文献6。22概要设计221开发流程开发流程如图23所示。图23开发流程图222系统数据流图系统数据流程如图24所示。图24系统数据流图调查研究确定功能编写程序调试程序运行测试优化完善第三章模式设计31C/S模式简介精简的说C/S模式是一种三层结构的系统,第一层在客户机上安装了客户机应用程序,第二层在服务器上安装服务器管理程序,第三层是数据访问层。在C/S模式的工作过程中,客户机程序发出请求,服务器程序接收并且处理客户机程序提出的请求,然后返回结果。C/S模式特点1C/S模式将应用与服务分离,系统具有稳定性和灵活性2C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性3由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快4在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升每台客户机都要安装客户机程序,系统升级和维护较为复杂发。32B/S模式简介精简的说B/S模式是一种从传统的三层C/S模式发展起来的新的网络结构模式,其本质也是三层结构的C/S模式。在用户的计算机上安装浏览器软件,在服务器上存放数据并且安装服务应用程序,服务器有WWW服务器和文件服务器等。用户通过浏览器访问服务器,进行信息浏览、文件传输和电子邮件等服务。B/S模式特点1系统开发、维护、升级方便每当服务器应用程序升级时,只要在服务器上升级服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护方便。2B/S模式具有很强的开放性在B/S模式下,用户通过通用的浏览器进行访问,系统开放性好。3B/S模式的结构易于扩展由于WEB的平台无关性,B/S模式的结构可以任意扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的大型系统。4用户使用方便B/S模式的应用软件都是基于WEB浏览器的,而WEB浏览器的界面是类似的。对于无用户交换功能的页面。用户接触的界面都是一致的,用户使用方便。33B/SC/S模式331B/SC/S模式定义B/SC/S模式是将B/S模式和C/S模式组合而来的,吸取这两种模式的优点,达到互补的作用。B/S模式和C/S模式都是三层结构,B/S模式第一层是表现层,第二层是业务逻辑层,第三层是数据访问层。C/S模式三层结构中第一层是客户端与B/S模式中的第一层不一样,其余两层相同。在B/S模式和C/S模式数据访问过程和业务逻辑处理过程中是在服务器端完成,用户只需接受服务器返回的结果。在B/SC/S模式中,一部分数据访问过程和业务逻辑处理过程在客户端完成,另外一部分数据访问过程和业务逻辑处理过程在服务器端完成。本手机公交线路查询软件一部分功能只要依靠手机本地数据库就可以实现,令外一部分功能需要借助互联网实现。目前不论是手机硬件还是计算机硬件,更新速度很快,而且硬件的配置水平也越来越高,在硬件条件允许的情况下把一部分业务处理、数据访问的过程放在客户端去完成,那么对服务器的硬件要求就会低一些,甚至一些高性能的PC机就可以作为服务器。从整个作业量来看,本质上是把作业量往客户端多分摊一部分,降低服务器的作业量,因此,对客户端的硬件要求是比较高的。B/SC/S模式结构如图31所示。图31B/SC/S模式结构图本软件系统采用B/SC/S模式,系统框架如图32所示。管理员身份认证管理员身份认证浏览器客户端客户端地图软件GOOGLE服务器数据库数据库服务器数据库管理软件请求请求更新管理员同步图32系统框架图332B/SC/S模式特点B/SC/S模式在继承了B/S模式和C/S模式的优点之后,还具有以下特点1可靠性高1、客户端不必完全依赖于服务器,即便脱离服务器,还有手机数据库的支持,可以继续使用一部分功能。2、客户端的数据丢失的时候,可以采用数据库同步的方式从服务器获得新的数据信息。2省资源一部分作业在客户端完成,服务器的访问量和作业量都会减少,省资源,维护起来会更加方便。第四章数据库设计41数据库结构服务器数据库为总数据源,每一个客户端都拥有独立的小型数据库。客户端数据库信息从服务器端同步获得。服务器的数据库是基于MYSQL建立,客户端数据库是基于SQLITE建立。数据库体系结构如图41所示。图41数据库体系结构图42服务器数据库设计ER关系如图42所示。图42服务器数据ER图根据上面的ER图,本软件服务器端定义的ARASHMEN数据库设计了以下4张表站点表STATION表2、线路表ROUTES表3、发车时间表DEPARTURETIME表4、票表FARE表5。本软件服务器数据库所包含的表的描述如表1。表41数据库概况表表名描述主要字段STATIONS站点表保存站点信息ID,STATIONROUTES线路表保存线路信息ID,ROUTENAME,CONTENTDEPARTURETIME发车时间表保存首班发车时间保存末班发车时间ROUTENAMEFIRSTDEPARTURETIME,LASTDEPARTURETIMEFARE票价信息表保存公交线路票价信息ID,ISFIXED,FULLFARE表42站点表字段名数据类型长度主键/外键默认值描述IDINT4PKID,自动增长STATIONVARCHAR50站点名称表43线路表字段名数据类型长度主键/外键默认值描述ROUTENAMECHAR20PK线路名称CONTENTLONGTEXT线路全径表44发车时间表字段名数据类型长度主键/外键默认值描述IDINT4PKID,自动增长ROUTENAMECHAR20FK线路名称FIRSTDEPARTURETIMETIME首班发车时间LASTDEPARTURETIMETIME末班发车时间表45票价信息表字段名数据类型长度主键/外键默认值描述IDINT4PKID,自动增长ROUTENAMECHAR20FK线路名称ISFIXEDFARECHAR5是否为分段计费FULLFAREDOUBLE8全程票价43客户端数据库设计431SQLITE简介ANDROID数据库使用的是SQLITEDATABASE,我们来简单的介绍下ANDROID平台上的SQLITEDATABASE。SQLITE是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持WINDOWS/LINUX/UNIX等等主流的操作系统,同时能够跟很多程序语言相结合,比如TCL、PHP、JAVA等,还有ODBC接口,同样比起MYSQL、POSTGRESQL这两款世界著名开源的数据库管理系统来讲,它的处理速度比他们都快。该软件数据库的建立是完全在ANDROID平台上执行JAVA代码,通过DVM编译来建立的,没有什么辅助工具,由于整个SQLITE数据库是非可视化操作,所有对数据库的操作都是通过执行JAVA代码实现,在完成其查询功能的时候没有使用数据库高级编程,较为麻烦的关节是在如何有机的将客户端数据库整体结构实现出来,实现过程是无可视界面,也没有数据库辅助工具情况下,整个过程很抽象。且表的设计应尽量简单,不要有错综复杂的关系,每张表都是独立的,不存在任何约束,数据库也是独立数据库,不采用ANDROID特有的可共享数据库。432数据库设计ER关系如图43所示。线路线路全径ID首班发车时间末班发车时间ID是否为分段计费全程票价ID站点名线路名称站点发车时间线路名称线路名称票价图43客户端数据库ER图根据上面的ER图,本软件客户端定义的ARASHMEN数据库中包含以下4张表站点表STATION表7、线路表ROUTES表8、发车时间表DEPARTURETIME表9、票表FARE表10。本软件服务器数据库所包含的表的描述如表6。表46数据库概况表表名描述主要字段STATIONS站点表保存站点信息ID,STATIONROUTES线路表保存线路信息ID,ROUTENAME,CONTENTDEPARTURETIME发车时间表保存首班发车时间保存末班发车时间ROUTENAMEFIRSTDEPARTURETIME,LASTDEPARTURETIMEFARE票价信息表保存公交线路票价信息ID,ISFIXED,FULLFARE表47站点表字段名数据类型长度主键/外键默认值描述IDINT4PKID,自动增长STATIONVARCHAR50站点名称表48线路表字段名数据类型长度主键/外键默认值描述ROUTENAMECHAR20PK线路名称CONTENTLONGTEXT线路全径表49发车时间表字段名数据类型长度主键/外键默认值描述IDINT4PKID,自动增长ROUTENAMECHAR20FK线路名称FIRSTDEPARTURETIMETIME首班发车时间LASTDEPARTURETIMETIME末班发车时间表410票价信息表字段名数据类型长度主键/外键默认值描述IDINT4PKID,自动增长ROUTENAMECHAR20FK线路名称ISFIXEDFARECHAR5是否为分段计费FULLFAREDOUBLE8全程票价第五章服务器端详细设计51后台管理模式后台制作使用JSP完成。基本管理流程如图51所示。回滚操作成功Y/N查询信息添加信息修改信息删除信息数据库更新成功管理模式事务开始NY图51管理流程图通过管理员模式进入管理员添加线路页面,可以添加公交线路名称,首班发车时间,末班发车时间,线路全径。添加页面如图52所示。图52添加线路页面实现添加功能代码如下所示通过管理员模式进入管理员修改、删除线路页面,可以对已经添加成功的公交线路信息修改并保存,也可以直接在该页面删除数据。修改、删除线路页面如图53所示。图53修改,删除页面实现修改、删除功能代码如下所示通过管理员模式进入管理员查询页面,可以使用线路查询和站点查询,查询功能如图54所示。图54查询页面实现管理员查询页面功能代码如下所示线路查询结果页面“查询结果如图55所示。图55结果页面52查询简析查询方式与数据存储格式有关,线路全径的存储为字符串,湘潭市13路公交车线路全径如下所示湘潭火车站公安局基建营韶山东路文家围子护潭广场护潭村永红村潭九路口科技大学南科大路口粮库桃园路口高岭路口湘潭大学新路口湘潭大学。521线路查询按线路名称查询,如13路,13路公交车,13等只要不在13这个数字的1和3中间插入其他字符,就可以返回该线路的线路信息,票价信息和发车时间。522站点查询在站点查询页面设置了两个文本域,用来获得起点地址和目标地址,暂称起点地址为A,称目标地址为B。1获取了A与B的信息后,在数据查询语句中将组合成“AB”的形式,进入数据库进行查询,将所查询到的所有结果返回到页面显示。如果没有结果,则进行情况2。2考虑是否是乘车方向不对,数据库只存储单向的线路,没有存储一条返回的线路,在此只需要在查询语句中将A与B的位置交换,将其组合成“BA”形式再次进行查询,如果仍旧没有返回结果,那么很有可能是A到B处可能没有直达公交线路,在此则要考虑换乘问题。3该情况采用的是将含有站点A和含有站点B的所有线路信息都查询出来,然后利用当初存储规范,使用正则表达式中的SPLIT方法将每一个线路信息(STRING类型)分割成字符串数组STRING,然后便利分割后的A与B的字符串数组,字符串数组中的每个字元素代表每个站点,在返回若干结果之后,再进行判断,返回有效路径中经过站点数最少的路径。算法请参考附录B中算法ONQUERYSTATIONONE,ONQUERYSTATIONTWO。53数据库同步531SERVLET客户端发出一个请求,服务器接收后并且响应返回一段流。客户端接收后再根据服务器端返回流的格式来解析数据。532DAODAO是DATAACCESSOBJECT数据访问接口,数据访问故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。在此使用DAO模式中封装数据的方法,将这些数据封装后按照一定的格式写成数据流。533XMLXML语言具有特殊规范,所以服务器端返回的流均是按照XML语言规范写入,客户端也按照XML语言规范读出数据。按XML规范将表ROUTES数据信息写成数据流的代码如下RESPONSESETCONTENTTYPE“TEXT/HTMLCHARSETUTF8“PRINTWRITEROUTRESPONSEGETWRITERUPDATEDAOROUTESDAONEWUPDATEDAOROUTESIMPLLISTLISTDAOGETROUTESLISTOUTPRINTLN“OUTPRINTLN“FORINTI0I“OUTPRINT“OUTPRINTROUTEGETROUTENAMEOUTPRINTLN“OUTPRINT“OUTPRINTROUTEGETCONTENTOUTPRINTLN“OUTPRINTLN“OUTPRINTLN“OUTFLUSHOUTCLOSE第六章客户端详细设计61简述在互联网迅速发展的形式下,我们不得不考虑,是否还真的有必要将公交线路查询软件紧紧局限于PC机上,每次查询都要找个PC机然后再记录下来,那样虽然达到了查询的目的,但是这种方式是否就能够满足用户的需求了,那如果在没有PC机的环境呢,或者说总不能随身带个PC机或者笔记本电脑出门,只为了查询公交线路,很明显这种方法意义不大。但是我们可以换种思维去考虑,既然PC机可以迷你成笔记本,那么也肯定有一定的办法将其的部分功能放到更小型的“PC”上面去,比如手机。其实随着硬件设备的逐渐发展,不少的高端手机甚至可以冲当一台计算机使用,如今没电脑的人可能不在少数,但是放眼望去,有几个没有手机呢。此次设计的主要目的是实用,让人们使用起来会更加简便。目前主流手机操作系统有MACOS,WINDOWSMOBILE,ANDROID,SYMBIAN,分别由苹果公司,微软,谷歌,诺基亚推出,而本次设计是在ANDROID平台下进行开发。在此就不分别一一介绍每一个手机软件开发平台,主要对ANDROID进行介绍。环境搭建请参考文献3。62什么是ANDROIDANDROID是首个基于LINUX平台的开源手机操作系统,该平台由操作系统中间件,用户界面和应用软件组成号称是首个为移动终端打造的真正开放和完整的软件。ANDROID一词的本义指“机器人”,2003年美国有一家以ANDROID为名的小公司成立,开发手机平台。GOOGLE收购ANDROID之后,于07年11月5日发布了开源的ANDROID平台一款包括操作系统(基于LINUX内核)、中间件和关键应用的手机平台,并组建了开放手机联盟OPENHANDSETALLIANCE,包括GOOGLE、中国移动、TMOBILE、宏达、高通、摩托罗拉等领军企业。2008年9月22日,美国运营商TMOBILEUSA在纽约正式发布第一款GOOGLE手机TMOBILEG1。该款手机为宏达电制造,是世界上第一部使用ANDROID操作系统的手机。63ANDROID系统架构简介从软件分层的角度来看,ANDROID平台由应用程序,应用程序框架,ANDROID运行时,库以及LINUX内核共5部分构成。如图61所示。图61整体结构631应用程序APPLICATIONSANDROID平台默认包含了一系列核心应用程序,包括电子邮件、短信、日历、地图、浏览器、联系人管理程序等,这些程序都以JAVA程序语言编写,你也可以用自己便携的应用程序来替换ANDROID提供的应用程序,这个替换的机制实际是由应用程序框架来保证的。如图62所示。图62应用层632应用程序框架APPLICATIONFRAMEWORK应用程序框架是我们进行ANDROID开发的基础应用程序框架层包含了视图系统,内容提供器,窗口管理器,活动管理器,通知管理器,位置管理器,资源管理器,电话管理器和包管理器9大部分。如图63所示。图63中间件层633ANDROID运行时RUNTIMEANDROID虽然采取JAVA程序语言来编写应用程序,但不使用J2ME执行JAVA程序,而是用ANDROID自有的ANDROID运行时(RUNTIME)ANDROID运行时包括核心库和DALVIK虚拟机两部分。如图64所示。图64核心库,虚拟机634系统库LIBRARIES应用程序框架是贴近于应用程序的软件组件服务,而更底层则是ANDROID的函数库,这一部分是应用程序框架的支撑,其架构如图65所示。图65系统库635LINUXANDROID平台是开放,采用LINUX内核则是ANDROID平台开放性的基础。ANDROID平台中的操作系统采用了LINUX26版的内核,它包括了显示驱动、摄像头驱动、FLASH内存驱动、BINDER(IPC)驱动、键盘驱动、WIFI驱动、AUDIO驱动以及电源管理部分。LINUX内核层为我们在软件层和硬件层建立了一个抽象层,使得应用程序开发人员无需关心硬件细节。对于手机的开发商而言,如果想要ANDROID平台运行到自己的硬件平台上就必须通过对LINUX层进行修改,通常要做的工作就是为自己的硬件便携驱动程序。64实现客户端数据库641SQL语言创建表请参考附录A。642创建数据库在ANDROID平台上,不能像MYSQL一样通过启动MYSQLD来进入数据库进行操作,ANDROID平台上的数据库操作只有通过执行JAVA代码,将有效的SQL语句传入后台,来进行有效操作。这种访问数据库的方式,是目前唯一在ANDROID平台上访问数据库的途径。数据库创建代码如下PUBLICSQLITEDATABASEDATABASEONCREATESQLITEDATABASEDBNULLTRY/数据库名ARASHMEN,文件格式DBDBTHISOPENORCREATEDATABASE“ARASHMENDB“,MODE_WORLD_WRITEABLE,NULLCATCHEXCEPTIONEEPRINTSTACKTRACERETURNDB643客户端数据库操作DBHELPER类,是数据库操作类,ONCREATE方法是创建表,ONUPGRADE方法是删除所有表,ONROUTESINSERT、ONDEPARTURETIMEINSERT、ONFAREINSERT、ONSTATIONSINSERT分别是对表ROUTES、DEPARTURETIME、FARE、STATIONS进行插入数据操作,DBHELPER类及方法用于数据同步更新。DBHELPER类代码如下PACKAGECMPROVIDERIMPORTJAVASQLSQLDATAIMPORTANDROIDCONTENTCONTENTVALUESIMPORTANDROIDCONTENTCONTEXTIMPORTANDROIDDATABASECURSORIMPORTANDROIDDATABASESQLITESQLITEDATABASEIMPORTANDROIDDATABASESQLITESQLITEOPENHELPERIMPORTANDROIDDATABASESQLITESQLITEDATABASECURSORFACTORYIMPORTANDROIDUTILLOGIMPORTANDROIDWIDGETARRAYADAPTERIMPORTANDROIDWIDGETLISTVIEWPUBLICCLASSDBHELPEREXTENDSSQLITEOPENHELPERPRIVATESTATICFINALSTRINGDATABASE_NAME“ARASHMENDB“PUBLICSTATICFINALINTDATABASE_VERSION2PUBLICSTATICFINALSTRINGTABLE_ROUTES“ROUTES“PUBLICSTATICFINALSTRINGTABLE_DEPARTURETIME“DEPARTURETIME“PUBLICSTATICFINALSTRINGTABLE_FARE“FARE“PUBLICSTATICFINALSTRINGTABLE_STATIONS“STATIONS“PUBLICDBHELPERCONTEXTCONTEXTSUPERCONTEXT,DATABASE_NAME,NULL,DATABASE_VERSIONPUBLICVOIDONCREATESQLITEDATABASEDBDBEXECSQLTABLEROUTESTBDBEXECSQLTABLEDEPARTURETIMETBDBEXECSQLTABLEFARETBDBEXECSQLTABLESTATIONSTBPUBLICVOIDONUPGRADESQLITEDATABASEDB,INTOLDVERSION,INTNEWVERSIONDBEXECSQL“DROPTABLEIFEXISTSROUTES“DBEXECSQL“DROPTABLEIFEXISTSDEPARTURETIME“DBEXECSQL“DROPTABLEIFEXISTSFARE“DBEXECSQL“DROPTABLEIFEXISTSSTATIONS“ONCREATEDBPUBLICVOIDONROUTESINSERTCONTENTVALUESVALUES,SQLITEDATABASEDBDBINSERTTABLE_ROUTES,NULL,VALUESPUBLICVOIDONDEPARTURETIMEINSERTCONTENTVALUESVALUES,SQLITEDATABASEDBDBINSERTTABLE_DEPARTURETIME,NULL,VALUESPUBLICVOIDONFAREINSERTCONTENTVALUESVALUES,SQLITEDATABASEDBDBINSERTTABLE_FARE,NULL,VALUESPUBLICVOIDONSTATIONSINSERTCONTENTVALUESVALUES,SQLITEDATABASEDBDBINSERTTABLE_STATIONS,NULL,VALUESTABLE类是将所有要执行创建过程的语句归到该类。TABLE类代码如下PACKAGECMPROVIDERPUBLICCLASSTABLEPUBLICSTATICFINALSTRINGARASHMEN_TABLE_RPOUTES“ROUTES“PUBLICSTATICFINALSTRINGARASHMEN_TABLE_DEIPARTURETIME“DEPARTURETIME“PUBLICSTATICFINALSTRINGARASHMEN_TABLE_FARE“FARE“PUBLICSTATICFINALSTRINGARASHMEN_TABLE_STATIONS“STATIONS“PUBLICSTATICFINALSTRINGROUTESTB“CREATETABLEROUTESROUTENAMECHAR16PRIMARYKEY,CONTENTTEXT“PUBLICSTATICFINALSTRINGDEPARTURETIMETB“CREATETABLEDEPARTURETIMEIDINTPRIMARYKEY,ROUTENAMECHAR16,FIRSTDEPARTURETIMECHAR20,LASTDEPARTURETIMECHAR20“PUBLICSTATICFINALSTRINGFARETB“CREATETABLEFAREIDINTPRIMARYKEY,ROUTENAMECHAR16,ISFIXEDFARECHAR6,FULLFAREDOUBLE“PUBLICSTATICFINALSTRINGSTATIONSTB“CREATETABLESTATIONSIDINTPRIMARYKEY,STATIONVARCHAR50“65客户端功能模块实现651线路查询用户登录手机公交线路查询页面,可以用按照站点查询和按照线路名查询两个功能,线路查询和站点查询界面如图66所示。图A图B图66线路查询和站点查询页面线路查询和站点查询功能代码详见附录B。票价信息查询和发车时间查询界面如图67所示。图A图B图67票价信息查询和发车时间查询页面票价信息和发车时间数据均为虚拟出的数据,以实际的湘潭市公交信息为准,票价信息查询和发车时间查询功能代码详见附录C。652地图功能借助GOOGLEMAP完成地图查询功能,地图查询结果界面如图68所示。图68地图查询结果显示向GOOGLE服务器发出请求代码如下FROMGEOPOINTGETGEOBYADDRESSDEPARTURETOGEOPOINTGETGEOBYADDRESSARRIVEINTENTINTENTNEWINTENTINTENTSETACTIONANDROIDCONTENTINTENTACTION_VIEW/传入路径规划所需要的地标地址/INTENTSETDATAURIPARSE“HTTP/MAPSGOOGLECOM/MAPSFDSTARTACTIVITYINTENT地址解析方法代码如下PRIVATEGEOPOINTGETGEOBYADDRESSSTRINGSTRSEARCHADDRESSGEOPOINTGPNULLTRYIFSTRSEARCHADDRESS“GEOCODERMGEOCODER01NEWGEOCODERQUERYPAGETHIS,LOCALEGETDEFAULTLISTLSTADDRESSMGEOCODER01GETFROMLOCATIONNAMESTRSEARCHADDRESS,1IFLSTADDRESSISEMPTYADDRESSADSLOCATIONLSTADDRESSGET0DOUBLEGEOLATITUDEADSLOCATIONGETLATITUDE1E6DOUBLEGEOLONGITUDEADSLOCATIONGETLONGITUDE1E6GPNEWGEOPOINTINTGEOLATITUDE,INTGEOLONGITUDECATCHEXCEPTIONEEPRINTSTACKTRACERETURNGPPRIVATESTRINGGEOPOINTTOSTRINGGEOPOINTGPSTRINGSTRRETURN“TRYIFGPNULLDOUBLEGEOLATITUDEINTGPGETLATITUDEE6/1E6DOUBLEGEOLONGITUDEINTGPGETLONGITUDEE6/1E6STRRETURNSTRINGVALUEOFGEOLATITUDE“,“STRINGVALUEOFGEOLONGITUDECATCHEXCEPTIONEEPRINTSTACKTRACERETURNSTRRETURNANDROID平台是由GOOGLE公司推出的一个开源的手机开发平台,GOOGLE公司将软件GOOGLEMAP集成在该平台上了,调出地图界面就是仅仅几行代码,在此所做的工作是,从本地数据库获取到合法站点名,将地址解析成对应的经纬度,然后再将经纬度传入GOOGLE服务器,GOOGLE服务器便返回一段数据流,客户端接收后加以处理,并以地图的形式显示。653数据更新数据更新功能,从服务器获得一段数据流,将该数据流解析,存入手机数据库,解析表ROUTES内容的代码如下URLURLNEWURL“HTTP/211672172438080/BUSLINESERVER/SERVLET/UPDATEROUTESSERVLET”URLCONNECTIONCONNURLOPENCONNECTIONCONNSETCONNECTTIMEOUT5000INPUTSTREAMINCONNGETINPUTSTREAMDOCUMENTBUILDERFACTORYFACTORYDOCUMENTBUILDERFACTORYNEWINSTANCEDOCUMENTBUILDERBUILDERFACTORYNEWDOCUMENTBUILDERDOCUMENTDOCBUILDERPARSEINNODELISTNLDOCGETELEMENTSBYTAGNAME“ROUTES“FORINTI0IEXTENDSTABACTIVITYPUBLICFINALSTATICSTRINGXTCITY“中国湖南省湘潭市“PRIVATEIMAGEBUTTONBUSSTOPBUTTON,ROUTENAMEBUTTONPRIVATEAUTOCOMPLETETEXTVIEWDEPARTURETEXT,ARRIVETEXT,ROUTENAMETEXTPRIVATELISTVIEWSTATIONLISTVIEW,ROUTENAMELISTVIEWPRIVATEDBHELPERHELPERPRIVATESQLITEDATABASEARASHMENPRIVATEVIEWTABLINEARPRIVATELINEARLAYOUTLINEARLAYOUTPRIVATEZOOMCONTROLSMZOOMPRIVATEGEOPOINTFROMGEOPOINT,TOGEOPOINTOVERRIDEPROTECTEDVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATETABLINEARVIEWFINDVIEWBYIDRIDVIEW01TABHOSTCHOICEGETTABHOSTLAYOUTINFLATERFROMTHISINFLATERLAYOUTQUERYTAB,CHOICEGETTABCONTENTVIEW,TRUECHOICEADDTABCHOICENEWTABSPEC“BUSSTOP“SETINDICATOR“站点站点“SETCONTENTRIDLINEARLAYOUT01CHOICEADDTABCHOICENEWTABSPEC“ROUTENAME“SETINDICATOR“线路名称“SETCONTENTRIDLINEARLAYOUT02BUSSTOPBUTTONIMAGEBUTTONFINDVIEWBYIDRIDSUREBUTTON1ROUTENAMEBUTTONIMAGEBUTTONFINDVIEWBYIDRIDSUREBUTTON2DEPARTURETEXTAUTOCOMPLETETEXTVIEWFINDVIEWBYIDRIDDEPARTUREAUTOTEXTARRIVETEXTAUTOCOMPLETETEXTVIEWFINDVIEWBYIDRIDARRIVEAUTOTEXTROUTENAMETEXTAUTOCOMPLETETEXTVIEWFINDVIEWBYIDRIDROUTENAMEAUTOTEXTROUTENAMELISTVIEWLISTVIEWFINDVIEWBYIDRIDROUTENAMELISTVIEWSTATIONLISTVIEWLISTVIEWFINDVIEWBYIDRIDBUSSTOPLISTVIEWARASHMENDATABASEONCREATEINTFLAG0CURSORC1ARASHMENQUERYDBHELPERTABLE_ROUTES,NULL,NULL,NULL,NULL,NULL,NULLLISTLIST1NEWARRAYLISTWHILEC1MOVETONEXTSTRINGROUTENAMEC1GETSTRING0LIST1ADDROUTENAMEARRAYADAPTERADAPTER1NEWARRAYADAPTERTHIS,ANDROIDRLAYOUTSIMPLE_DROPDOWN_ITEM_1LINE,LIST1ROUTENAMETEXTSETADAPTERADAPTER1LISTLIST2NEWARRAYLISTSTRINGCOLUMNS“STATION“CURSORC2ARASHMENQUERYDBHELPERTABLE_STATIONS,COLUMNS,NULL,NULL,NULL,NULL,NULLWHILEC2MOVETONEXTSTRINGSTATIONC2GETSTRING0LIST2ADDSTATIONARRAYADAPTERADAPTER2NEWARRAYADAPTERTHIS,ANDROIDRLAYOUTSIMPLE_DROPDOWN_ITEM_1LINE,LIST2DEPARTURETEXTSETADAPTERADAPTER2ARRIVETEXTSETADAPTERADAPTER2BUSSTOPBUTTONSETONCLICKLISTENERNEWONCLICKLISTENERPUBLICVOIDONCLICKVIEWVONQUERYSTATIONONEDEPARTURETEXTGETTEXTTOSTRING,ARRIVETEXTGETTEXTTOSTRING,STATIONLISTVIEW,ARASHMEN,QUERYPAGETHISROUTENAMEBUTTONSETONCLICKLISTENERNEWONCLICKLISTENERPUBLICVOIDONCLICKVIEWVONQUERYROUTENAMEROUTENAMETEXTGETTEXTTOSTRING,ROUTENAMELISTVIEW,ARASHMEN,QUERYPAGETHISROUTENAMETEXTSETONLONGCLICKLISTENERNEWONLONGCLICKLISTENERPUBLICBOOLEANONLONGCLICKVIEWVINTENTINTENTNEWINTENTINTENTSETCLASSQUERYPAGETHIS,DETAILSPAGECLASSINTENTPUTEXTRA“ROUTENAME“,ROUTENAMETEXTGETTEXTTOSTRINGTRIMSTARTACTIVITYINTENTRETURNTRUE/打开数据库/PUBLICSQLITEDATABASEDATABASEONCREATESQLITEDATABASEDBNULLTRYDBTHISOPENORCREATEDATABASE“ARASHMENDB“,MODE_WORLD_WRITEABLE,NULLCATCHEXCEPTIONEEPRINTSTACKTRACERETURNDB/MENU选项本地数据库更新/OVERRIDEPUBLICBOOLEANONCREATEOPTIONSMENUMENUMENUMENUADD0,1,0,“更新数据“MENUADD0,2,0,“地图查询“MENUADD0,3,0,“意见反馈“RETURNTRUEOVERRIDEPUBLICBOOLEANONOPTIONSITEMSELECTEDMENUITEMITEMINTENTINTENTNULLSWITCHITEMGETITEMIDCASE1INTENTNEWINTENTINTENTSETCLASSTHIS,UPDATEPAGECLASSSTARTACTIVITYINTENTBREAKCASE2BREAKCASE3TRYURIURIURIPARSE“MAILTOARASHMEN163COM“INTENTITNEWINTENTINTENTACTION_SENDTO,URISTARTACTIVITYITCATCHEXCEPTIONEDEFAULTBREAKRETURNTRUE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年华中师大一附丘成桐少年班自主招生数学试卷(含答案详解)
- 2025年事业单位工勤技能-湖北-湖北造林管护工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北管道工四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北园林绿化工三级(高级工)历年参考题库典型考点含答案解析
- 2025年房地产市场区域分化与投资策略的人工智能研究报告
- 化工园区安全环保提升项目2025年社会稳定风险评估与风险评估产业融合报告
- 2025-2030中国窄带钢企业竞争策略与投融资风险预测报告
- 2025年事业单位工勤技能-江西-江西经济岗位工一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江西-江西堤灌维护工四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏城管监察员二级(技师)历年参考题库含答案解析
- 大干围码头地块概况
- 企业项目投资与融资模式
- GMP体系文件(手册+程序)
- 执业医师-呼吸系统
- GB 30734-2014消防员照明灯具
- GA/T 1132-2014车辆出入口电动栏杆机技术要求
- GA 1800.5-2021电力系统治安反恐防范要求第5部分:太阳能发电企业
- 池塘内清淤泥施工方案
- 部编(统编)版-小学语文六年级教科书培训-讲座课件
- 1药历20份教学1mck广州市妇女儿童医疗中心
- 医院学术委员会及工作职责制度的通知
评论
0/150
提交评论