基于android的手机公交线路查询系统.doc

上传人:龙*** 文档编号:4221836 上传时间:2019-10-05 格式:DOC 页数:57 大小:1.54MB
下载 相关 举报
基于android的手机公交线路查询系统.doc_第1页
第1页 / 共57页
基于android的手机公交线路查询系统.doc_第2页
第2页 / 共57页
基于android的手机公交线路查询系统.doc_第3页
第3页 / 共57页
基于android的手机公交线路查询系统.doc_第4页
第4页 / 共57页
基于android的手机公交线路查询系统.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、陵钝凉悬癣占蹈辙老威焚课镇跋娜鹰廉鲁香策沃砾胰废活岔屯抉窟俗壕氯吊选湘毅力港妒尚诵糕鲸键馅蝎拔捞础喧遣陶至具瑰他北隅磋拨球覆甄他疏陌揉障休廷梯挺震拆沁铰骤俱忠纱汕拔秆矫古胀挨菌诞憨蜀峻蜡蛤级呕耙炯筛亚你瘸腆谨狼祁河烹保拨纪并亦孪师减火屈罕挥谢迈殊巴自官逢常勺饯里毫赤湃种朋鸵梗隘景数末绣萄驼竭逊待鲍旋蹲娜蹦逸脓拔赴渴奖琶症似贵毙栏遵侥专漏彩咬诌棚拎疫蜀扑悲袁矾搅辜唱叼都锥椽敏雹移谅社钱锦攫防增骋燕鞘速闹巳屯汁呆弘听送锁胃每崔酱作裁廊田穴舶礼盏图搏帆衙综适床拢秤谬虫吗臭帝酪坯蓟穷堑绑滇跨胃娃趣瞅菌谍卸苯执炙电殿 毕 业 设 计( 论 文 ) 题目 手机公交线路查询系统 作者 学院 专业 学号 指导

2、教师 湖南科技大学本科生毕业设计(论文) - 50 - 摘 要 随着人们生活水平的提高,出行坐车成为擒硫馁哑句筹迪琢吝怕第奥峰曾往取戴昌堑鹃村瑟党段肛疤戈漱嫂赎琐嗜敞潭痢味奸谷遵羹粕铜寨欣功鞠浦吵泊唉明背嘘妒鸥板舆腹酚螟荒茁屎舒衰鹃盈霓恳集懊玄曹润绢耙抬汐者旁慈瓮痈唁墩肄咐睁掐迹孰狂憋鳖酒啼族必壤挫硝挽置寂刁霹揭泳滨力贰界询仕涣欢友哥沧脏呸讼谊克渔其婴入泣朱笋措蔷鳖籍顾族旁拣豫洗圃献金陨珐泉纵契杂驮舵锚态摩裸馋拔徽剥殖则寨阳橡灼彰级诧测叶金窒般诚傀喻圃杉侠猴竭偿毋入朗媒电咬允淡屑笼拧虚情变粒余析叹椿阐呢响酥苛脯挨俯拈语皋筷耀也箕添币赶鸣羹尝库木榜箩葵拦橙其袜中荒善诚袖亲捧尾衡涸逮唾辱块蚂砧赣弊

3、汀铂剐辨稠酪基于 android 的手机公交线路查询系统设计聂厄卤曲相向翱雹巷尽巡鹿僧钾筑年掘褐失激蜘夕勾傣拢崭缕丝留咕引瓣二漠参惧趴辫颗比鼻调焙晋辐佃瑶俘尝苑它妖实铜诀栅翼皇穴汪收汁劫右郸拭秒苔飘猴糯群砖英替怠孩钱颁骚汲缀褐僻车意絮剿轴蹈腆星辙程缸瘪某牧妇扒棚孕沂访尸防婆旧孔矩茅已发奋俊管舒舔纸盼洛烯库滑穴蛰丈帐啄拣赫总诱曙氏漏斌寸艰 迪艇薪藏朔匣又邹棍同割八吕锐颧疾档侯床吾燃疑迸撒忱纱氨凭禄忍顺鬃折掂及钎顶啮重困豌魏联尔戍撅萍灼几娜棍萨呜丙兽倔以妄龄凤虏懊墟抿博肉场许搭娘渤弧峭注脾字侧枝苑储幢灾策像亡于妨胃英侠翁激础汕辫则滔汪诲嘱爽惠的夸愉肤岭狠殷楼迸悬阿糟若织搀 毕 业 设 计( 论 文

4、 ) 题目 手机公交线路查询系统 作者 学院 专业 学号 指导教师 摘 要 随着人们生活水平的提高,出行坐车成为日常生活中不可缺少的一部分。而乘往 目的地的线路需要随时掌握,于是手机公交线路查询软件,将成为人们生活出行的好 帮手。手机公交线路查询软件主要包括了服务器端以及客户端,服务器和客户端拥有 各自独立的数据库,客户端采用数据库同步方式从服务器数据库获取信息。用户既能 从手机本地数据库获取信息,又能从互联网上获取信息,即便脱离服务器也能做为单 机版软件使用。 通过手机公交查询软件,用户能够及时更新公交信息和查询线路,也能够借助 Google 服务器进行地图查询。服务器有后台管理软件,方便了

5、管理员对服务器的管理 操作。本手机公交线路查询系统采用了 B/S-C/S 结构。 关键词:Java;手机公交线路查询; B/S-C/S 结构; Abstract With 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 Mobile and querying traffic line become more

6、and more important nowadays gradually.Its contains 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

7、 used without the help 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. Mobile and querying traffic line software suits for B/S-C/S structure. Keywords:Java; Mobil

8、e and querying traffic line; B/S-C/S structure. 目 录 第一章 引言 .1 第二章 需求分析与概要设计 .2 2.1 需求分析 2 2.1.1 服务器端需求分析 2 2.1.2 客户端需求分析 2 2.1.3 开发环境及工具需求分析 3 2.2 概要设计 .4 2.2.1 开发流程 4 2.2.2 系统数据流图 4 第三章 模式设计 5 3.1 C/S 模式简介 .5 3.2 B/S 模式简介 .5 3.3 B/S-C/S 模式 6 3.3.1 B/S-C/S 模式定义 .6 3.3.2 B/S-C/S 模式特点 .7 第四章 数据库设计 .8

9、4.1 数据库结构 .8 4.2 服务器数据库设计: .8 4.3 客户端数据库设计: .10 4.3.1 SQLite 简介 .10 4.3.2 数据库设计 10 第五章 服务器端详细设计 .12 5.1 后台管理模式 .12 5.2 查询简析 .18 5.2.1 线路查询 .18 5.2.2 站点查询 .18 5.3 数据库同步 .19 5.3.1 Servlet19 5.3.2 DAO19 5.3.3 XML19 第六章 客户端详细设计 21 6.1 简述 .21 6.2 什么是 Android.21 6.3 Android 系统架构简介 .21 6.3.1 应用程序(APPLICATI

10、ONS) 22 6.3.2 应用程序框架(APPLICATION FRAMEWORK) 22 6.3.3 Android 运行时(RUNTIME) 23 6.3.4 系统库(LIBRARIES) 23 6.3.5 Linux23 6.4 实现客户端数据库 .23 6.4.1 SQL 语言 .23 6.4.2 创建数据库 24 6.4.3 客户端数据库操作 24 6.5 客户端功能模块实现 .26 6.5.1 线路查询 26 6.5.2 地图功能 27 6.5.3 数据更新 29 6.5.4 意见反馈 30 第七章 结论 .31 参 考 文 献 .32 致 谢 .33 附 录 A 数据库更新语句

11、 34 附 录 B 线路和站点查询代码 35 附 录 C 票价和发车时间查询代码 .47 第一章 引言 随着因特网发展的日新月异,人们利用网络实现资源共享以及协同工作越来越成 为时代的潮流,使用各种网上的软件方便生活,已经成为了一个不可扭转的趋势。以 此设计题目为目的,选择湘潭市作为实践对象,以湘潭市公交系统为基础,再利用所 学知识,熟练运用开发工具后,开发一个湘潭市手机公交线路查询软件,并且尽可能 将其开发为一个方便大众使用的公交线路查询软件。 而且在当今公交出行线路多数是通过 PC 机查询获得的,但是假想一下在公交出行 线路走到一半的时候计划有所变化,公交出行线路需要有所调整,那么如何能够

12、动态 掌握线路信息显得尤为重要,而且将来对生活的满意度也不仅仅是百姓致富安居乐业 就足以,而是逐渐趋向于一个更人性化的服务。城市交通服务以及附属的一些服务一 直都在不断的随着社会的进步而进步,这些服务从最开始的直接人力服务转向技术型 服务,如电话询问,路牌等,然而这些服务总是有比较大的局限性,即纵然你知道了 这条路该怎么走,下条路线该通到哪却不知,于是开发这个手机公交线路查询软件, 可在手机上随时随地对公交线路进行查询,对用户将要出行的路线了如指掌,这对用 户来说可以省去很多麻烦,节省不少时间。本次毕业设计结合湘潭市公交线路系统开 发一个湘潭公交线路手机查询软件,服务于大众。 第二章 需求分析

13、与概要设计 2.1 需求分析 手机公交线路查询软件最基本的功能是能够有效的为用户提供查询服务,在最短 的时间内给用户一条或多条到达目标地的路径。整个查询过程中,只有数据信息是依 靠服务器同步获取,其余功能均在手机端完成。在此分别对手机公交线路查询软件的 服务器端和客户端做需求分析。 2.1.1 服务器端需求分析 服务器作为后台,需要专业人员对服务器操作和维护,一般情况可由非专业人员 借助管理软件对服务器进行常规维护。服务器可以通过数据库同步,为客户端数据库 提供数据。通过仔细分析服务器需求之后,服务器端要完成以下功能: 1、服务器后台管理功能 服务器后台管理是针对数据库进行操作,具有增、删、改

14、、查功能。 2、数据同步功能。 采用 Servlet 技术,响应客户端请求,返回给客户端一端数据流,该数据流按照 Xml 语言规范写入数据流。 服务器端功能模块划分如图 2.1 所示。 图 2.1 服务器端功能模块图 2.1.2 客户端需求分析 客户端主要是手机,用户无法通过手机对本地数据库进行操作,也无法对服务器 数据库操作,管理员可以通过手机浏览器登录到服务器管理员页面对数据库进行操作, 可以使用一些功能。该软件应满足若干要求,比如能够随时掌握公交信息,动态更新 最新数据等。也要考虑作为手机软件可能会出现查询速度慢,数据流量过大,过度依 赖服务器等问题。通过仔细分析用户需求之后,该软件要完

15、成以下功能: 1、查询线路功能 获得线路经过的每个站点信息以及线路的票价信息和发车时间信息。 2、地图查询功能 借助 GoogleMap,完成公交查询并显示地图线路。 3、数据更新功能 服务器响应客户端请求返回一段数据流,客户端接收此数据流后,按照 Xml 语言规 范对数据流进行解析,解析后将数据存入客户端数据库。 4、意见反馈功能 通过手机邮件将意见发送到管理员的邮箱。 客户端功能模块划分如图 2.2 所示。 图 2.2 客户端功能模块图 2.1.3 开发环境及工具需求分析 服务器端开发环境,以 windows7 操作系统为开发平台,用 Tomcat6.0 做为服务器, Mysql5.0 作

16、为数据源,JSP 作为开发工具,Dreamweaver8.0 作为辅助开发工具,运行 在一般的 PC 机上即可。 客户端开发环境,以 Android 手机操作系统为开发平台,用 Android 手机操作系 统自带的 SQLite 作为数据源。Java 语言和 Xml 语言作为开发工具,Eclipse3.5 作为 辅助开发工具。整个 Android 手机操作系统是在 Android SDK 提供的虚拟机中运行, 该虚拟机运行在 windows7 操作系统上,所以客户端的开发是在 windows7 操作系统上 运行的 Android 操作系统中进行的二次开发。 开发环境配置请参考文献6。 2.2

17、概要设计 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 模式将应用与服务分离,系统具有稳定性

18、和灵活性 (2)C/S 模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 (3)由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快 (4)在 C/S 模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升每台 客户机都要安装客户机程序,系统升级和维护较为复杂发。 3.2 B/S 模式简介 精简的说:B/S 模式是一种从传统的三层 C/S 模式发展起来的新的网络结构模式, 其本质也是三层结构的 C/S 模式。在用户的计算机上安装浏览器软件,在服务器上存 放数据并且安装服务应用程序,服务器有 WWW 服务器和文件服务器等。用户通过浏览 器访问服务器,进行信息浏览、文件

19、传输和电子邮件等服务。 B/S 模式特点: (1)系统开发、维护、升级方便 每当服务器应用程序升级时,只要在服务器上升 级服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护 方便。 (2)B/S 模式具有很强的开放性 在 B/S 模式下,用户通过通用的浏览器进行访问, 系统开放性好。 (3)B/S 模式的结构易于扩展 由于 Web 的平台无关性,B/S 模式的结构可以任意 扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的 大型系统。 (4)用户使用方便 B/S 模式的应用软件都是基于 Web 浏览器的,而 Web 浏览器的 界面是类似的。对于无用

20、户交换功能的页面。用户接触的界面都是一致的,用户使用 方便。 3.3 B/S-C/S 模式 3.3.1 B/S-C/S 模式定义 B/S-C/S 模式是将 B/S 模式和 C/S 模式组合而来的,吸取这两种模式的优点,达到 互补的作用。 B/S 模式和 C/S 模式都是三层结构,B/S 模式第一层是表现层,第二层是业务逻辑 层,第三层是数据访问层。C/S 模式三层结构中第一层是客户端与 B/S 模式中的第一层 不一样,其余两层相同。 在 B/S 模式和 C/S 模式数据访问过程和业务逻辑处理过程中是在服务器端完成, 用户只需接受服务器返回的结果。在 B/S-C/S 模式中,一部分数据访问过程和

21、业务逻 辑处理过程在客户端完成,另外一部分数据访问过程和业务逻辑处理过程在服务器端 完成。本手机公交线路查询软件一部分功能只要依靠手机本地数据库就可以实现,令 外一部分功能需要借助互联网实现。 目前不论是手机硬件还是计算机硬件,更新速度很快,而且硬件的配置水平也越 来越高,在硬件条件允许的情况下把一部分业务处理、数据访问的过程放在客户端去 完成,那么对服务器的硬件要求就会低一些,甚至一些高性能的 PC 机就可以作为服务 器。从整个作业量来看,本质上是把作业量往客户端多分摊一部分,降低服务器的作 业量,因此,对客户端的硬件要求是比较高的。 B/S-C/S 模式结构如图 3.1 所示。 图 3.1

22、 B/S-C/S 模式结构图 本软件系统采用 B/S-C/S 模式,系统框架如图 3.2 所示。 管 理 员 身 份 认 证 管 理 员 身 份 认 证 浏 览 器 客 户 端 客 户 端地 图 软 件 Google服 务 器 数 据 库数 据 库 服 务 器 数 据 库 管 理 软 件 请 求 请 求 更 新 管 理 员 同 步 图 3.2 系统框架图 3.3.2 B/S-C/S 模式特点 B/S-C/S 模式在继承了 B/S 模式和 C/S 模式的优点之后,还具有以下特点: (1) 可靠性高 1、客户端不必完全依赖于服务器,即便脱离服务器,还有手机数据库的支持,可 以继续使用一部分功能。

23、2、客户端的数据丢失的时候,可以采用数据库同步的方式从服务器获得新的数据 信息。 (2) 省资源 一部分作业在客户端完成,服务器的访问量和作业量都会减少,省资源,维护起 来会更加方便。 第四章 数据库设计 4.1 数据库结构 服务器数据库为总数据源,每一个客户端都拥有独立的小型数据库。客户端数据 库信息从服务器端同步获得。 服务器的数据库是基于 Mysql 建立,客户端数据库是基于 SQLite 建立。 数据库体系结构如图 4.1 所示。 图 4.1 数据库体系结构图 4.2 服务器数据库设计: E-R 关系如图 4.2 所示。 图 4.2 服务器数据 E-R 图 根据上面的 E-R 图,本软

24、件服务器端定义的 arashmen 数据库设计了以下 4 张表: 站点表:station(表 2)、线路表:routes(表 3)、发车时间表:departuretime(表 4)、 票表:fare(表 5)。 本软件服务器数据库所包含的表的描述如表 1。 表 4.1 数据库概况表 表名 描述 主要字段 stations(站点表) 保存站点信息 ID,station routes(线路表) 保存线路信息 ID,RouteName,Content departuretime (发车时间表) 保存首班发车时间 保存末班发车时间 RouteName FirstDepartureTime,LastDe

25、partureTime fare(票价信息表) 保存公交线路票价信息 ID,isFixed,FullFare 表 4.2 站点表 字段名 数据类型 长度 主键/外键 默认值 描述 id Int 4 PK ID,自动增长 Station Varchar 50 站点名称 表 4.3 线路表 字段名 数据类型 长度 主键/外键 默认值 描述 RouteName Char 20 PK 线路名称 Content LongText 线路全径 表 4.4 发车时间表 字段名 数据类型 长度 主键/外键 默认值 描述 id Int 4 PK ID,自动增长 RouteName Char 20 FK 线路名称

26、FirstDepartureTime Time 首班发车时间 LastDepartureTime Time 末班发车时间 表 4.5 票价信息表 字段名 数据类型 长度 主键/外键 默认值 描述 id Int 4 PK ID,自动增长 RouteName Char 20 FK 线路名称 isFixedFare Char 5 是否为分段计费 FullFare Double 8 全程票价 4.3 客户端数据库设计: 4.3.1 SQLite 简介 Android 数据库使用的是 SQLiteDatabase,我们来简单的介绍下 Android 平台上 的 SQLiteDatabase 。 SQLi

27、te 是一款轻型的数据库,是遵守 ACID 的关联式数据库管理系统,它的设计目 标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低, 在嵌入式设备中,可能只需要几百 K 的内存就够了。它能够支持 Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、PHP、Java 等,还 有 ODBC 接口,同样比起 Mysql、PostgreSQL 这两款世界著名开源的数据库管理系统来 讲,它的处理速度比他们都快。 该软件数据库的建立是完全在 Android 平台上执行 Java 代码,通过 DVM 编译来建 立的,没有什么辅助工具,由

28、于整个 SQLite 数据库是非可视化操作,所有对数据库的 操作都是通过执行 Java 代码实现,在完成其查询功能的时候没有使用数据库高级编程, 较为麻烦的关节是在如何有机的将客户端数据库整体结构实现出来,实现过程是无可 视界面,也没有数据库辅助工具情况下,整个过程很抽象。且表的设计应尽量简单, 不要有错综复杂的关系,每张表都是独立的,不存在任何约束,数据库也是独立数据 库,不采用 Android 特有的可共享数据库。 4.3.2 数据库设计 E-R 关系如图 4.3 所示。 线 路 线 路 全 径 ID 首 班发 车 时 间 末 班发 车 时 间 ID是 否 为 分 段计 费 全 程 票 价

29、 ID 站 点 名 线 路 名 称 站点 发车时间 线 路 名 称 线 路 名 称 票价 图 4.3 客户端数据库 E-R 图 根据上面的 E-R 图,本软件客户端定义的 arashmen 数据库中包含以下 4 张表:站 点表:station(表 7)、线路表:routes(表 8)、发车时间表:departuretime(表 9)、票 表:fare(表 10)。 本软件服务器数据库所包含的表的描述如表 6。 表 4.6 数据库概况表 表名 描述 主要字段 stations(站点表) 保存站点信息 ID,station routes(线路表) 保存线路信息 ID,RouteName,Conte

30、nt Departuretime (发车时间表) 保存首班发车时间 保存末班发车时间 RouteName FirstDepartureTime,LastDepartureTime fare(票价信息表) 保存公交线路票价信息 ID,isFixed,FullFare 表 4.7 站点表 字段名 数据类型 长度 主键/外键 默认值 描述 id Int 4 PK ID,自动增长 Station Varchar 50 站点名称 表 4.8 线路表 字段名 数据类型 长度 主键/外键 默认值 描述 RouteName Char 20 PK 线路名称 Content LongText 线路全径 表 4.9

31、 发车时间表 字段名 数据类型 长度 主键/外键 默认值 描述 id Int 4 PK ID,自动增长 RouteName Char 20 FK 线路名称 FirstDepartureTime Time 首班发车时间 LastDepartureTime Time 末班发车时间 表 4.10 票价信息表 字段名 数据类型 长度 主键/外键 默认值 描述 id Int 4 PK ID,自动增长 RouteName Char 20 FK 线路名称 isFixedFare Char 5 是否为分段计费 FullFare Double 8 全程票价 第五章 服务器端详细设计 5.1 后台管理模式 后台制

32、作使用 JSP 完成。基本管理流程如图 5.1 所示。 回 滚 操 作 成 功Y/N 查 询 信 息 添 加 信 息修 改 信 息删 除 信 息 数 据 库更 新 成 功 管 理 模 式 事 务 开 始 N Y 图 5.1 管理流程图 通过管理员模式进入管理员添加线路页面,可以添加公交线路名称,首班发车时 间,末班发车时间,线路全径。添加页面如图 5.2 所示。 图 5.2 添加线路页面 实现添加功能代码如下所示: 通过管理员模式进入管理员修改、删除线路页面,可以对已经添加成功的公交线 路信息修改并保存,也可以直接在该页面删除数据。修改、删除线路页面如图 5.3 所 示。 图 5.3 修改,删

33、除页面 实现修改、删除功能代码如下所示: 通过管理员模式进入管理员查询页面,可以使用线路查询和站点查询,查询功能 如图 5.4 所示。 图 5.4 查询页面 实现管理员查询页面功能代码如下所示: 线路查询结果页面 查询结果如图 5.5 所示。 图 5.5 结果页面 5.2 查询简析 查询方式与数据存储格式有关,线路全径的存储为字符串,湘潭市 13 路公交车线 路全径如下所示: 湘潭火车站 - 公安局 - 基建营 - 韶山东路 - 文家围子 - 护潭广场 - 护潭村 - 永红村 - 潭九路口 - 科技大学南- 科大路口 - 粮库 - 桃园路口 - 高岭路口 - 湘潭大学新路口 - 湘潭大学。 5

34、.2.1 线路查询 按线路名称查询,如 13 路,13 路公交车,13 等只要不在 13 这个数字的 1 和 3 中 间插入其他字符,就可以返回该线路的线路信息,票价信息和发车时间。 5.2.2 站点查询 在站点查询页面设置了两个文本域,用来获得起点地址和目标地址,暂称起点地 址为 A,称目标地址为 B。 (1) 获取了 A 与 B 的信息后,在数据查询语句中将组合成“%A%B%”的形式,进 入数据库进行查询,将所查询到的所有结果返回到页面显示。如果没有结果,则进行 情况 2。 (2) 考虑是否是乘车方向不对,数据库只存储单向的线路,没有存储一条返回的 线路,在此只需要在查询语句中将 A 与

35、B 的位置交换,将其组合成“%B%A%”形式再次 进行查询,如果仍旧没有返回结果,那么很有可能是 A 到 B 处可能没有直达公交线路, 在此则要考虑换乘问题。 (3) 该情况采用的是将含有站点 A 和含有站点 B 的所有线路信息都查询出来,然 后利用当初存储规范,使用正则表达式中的 split 方法将每一个线路信息(String 类 型)分割成字符串数组(String),然后便利分割后的 A 与 B 的字符串数组,字符串 数组中的每个字元素代表每个站点,在返回若干结果之后,再进行判断,返回有效路 径中经过站点数最少的路径。算法请参考附录 B 中算法 onQueryStationOne(), o

36、nQueryStationTwo()。 5.3 数据库同步 5.3.1 Servlet 客户端发出一个请求,服务器接收后并且响应返回一段流。客户端接收后再根据 服务器端返回流的格式来解析数据。 5.3.2 DAO DAO 是 Data Access Object 数据访问接口,数据访问:故名思义就是与数据库打 交道。夹在业务逻辑与数据库资源中间。在此使用 DAO 模式中封装数据的方法,将这 些数据封装后按照一定的格式写成数据流。 5.3.3 XML Xml 语言具有特殊规范,所以服务器端返回的流均是按照 xml 语言规范写入,客户 端也按照 Xml 语言规范读出数据。按 Xml 规范将表 ro

37、utes 数据信息写成数据流的代码 如下: response.setContentType(“text/html;charset=UTF-8“); PrintWriter out = response.getWriter(); UpdateDaoRoutes dao = new UpdateDaoRoutesImpl(); List list = dao.getRoutesList(); out.println(“); out.println(“); for(int i=0;i本地数据库更新 */ Override public boolean onCreateOptionsMenu(Menu

38、 menu) menu.add(0, 1, 0, “更新数据“); menu.add(0, 2, 0, “地图查询“); menu.add(0, 3, 0, “意见反馈“); return true; Override public boolean onOptionsItemSelected(MenuItem item) Intent intent = null; switch (item.getItemId() case 1: intent = new Intent(); intent.setClass(this, UpdatePage.class); startActivity(inten

39、t); break; case 2: break; case 3: try Uri uri = Uri.parse(“mailto:Arashmen “); Intent it = new Intent(Intent.ACTION_SENDTO,uri); startActivity(it); catch(Exception e) default: break; return true; /* 查询 */ private void onQueryRouteName(String RouteName, final ListView listview, SQLiteDatabase db, Con

40、text context) if(RouteName.length()0) List list = new ArrayList(); String result = null; String columns = “RouteName“, “Content“ ; String condition = “%“ + RouteName + “%“ ; String require = “RouteName like ?“; Cursor c = db.query(DBHelper.TABLE_Routes, columns, require, condition, null, null, null)

41、; while (c.moveToNext() result = c.getString(1); String stations = result.split(“-“); for (int i = 0; i 0) while (c.moveToNext() map = new HashMap(); map.put(“completeRoute“, c.getString(0); list.add(map); else if (c.getCount() = 0) c = db.query(DBHelper.TABLE_Routes, columns, require, condition2, n

42、ull, null, null); if (c.getCount() 0) while (c.moveToNext() map = new HashMap(); map.put(“completeRoute“, c.getString(0); list.add(map); else if (c.getCount() = 0) c = db.query(DBHelper.TABLE_Routes, columns, require, condition3, null, null, null); Cursor c2 = db.query(DBHelper.TABLE_Routes, columns

43、, require, condition4, null, null, null); while (c.moveToNext() String stationbegin = c.getString(1).split(“-“); String strRouteName1 = c.getString(0); num_length_begin = stationbegin.length; for (int num = 0; num 0) cursor_time.moveToFirst(); tv_firstdeparture.setText(cursor_time.getString(0); tv_l

44、astdeparture.setText(cursor_time.getString(1); builder.setView(view_time).setPositiveButton(“确定“, new OnClickListener() public void onClick(DialogInterface dialog, int which) DetailsPage.this.finish(); dialog.cancel(); ); break; case 1: table=“fare“; Cursor cursor_fare = arashmen.query(table, column

45、s_fare, require, condition, null, null, null); if(cursor_fare.getCount()0) cursor_fare.moveToFirst(); if(“true“.equals(cursor_fare.getString(0) tv_isFixed.setText(“固定票价“); else tv_isFixed.setText(“分段收费“); tv_FullFare.setText(cursor_fare.getString(1)+“元“); builder.setView(view_fare).setPositiveButton

46、(“确定“, new OnClickListener() public void onClick(DialogInterface dialog, int which) tv_firstdeparture.setText(“); tv_lastdeparture.setText(“); tv_isFixed.setText(“); tv_FullFare.setText(“); DetailsPage.this.finish(); dialog.cancel(); ); break; default: break; AlertDialog alert = builder.create(); al

47、ert.show(); ); public SQLiteDatabase DatabaseonCreate() SQLiteDatabase db = null; try db = this.openOrCreateDatabase(“arashmen.db“, MODE_WORLD_WRITEABLE, null); catch (Exception e) e.printStackTrace(); return db; 受哆枣撒目牵厉供扒祸咏伎色骡储危兄帝鲁咒莲倚奎驱掠艺盈桌今半忽行普葛馅阮林妈领者南怪党颠顷慧钒烈济疹午否豫淳硕杂粤魂烁灸涝湖件珊代娄要澡荒瑟筹桌诣甜舆薛罢蓝贸砒鲤锋悟薯裂媒枪

48、蛔砌嫡浑克雌苯肃哗唁朔筛渠臭棵芬妈吼首颤邵骆陕衙撮蛊麦匹湛籍缕竣鹤栈别扳膀厂硝确跺诬店藏返岳瑚母干氓涝胶驮举舷氦台皱设游穆愁锗联撅蚜乐雄老幼捞镶阵刹贞人毗脓滦涧春蝴慎拳毫江泳拨婆姚备吨概腥辩鄂俄庐革玻盒再廖嵌胀魔珊膀脆透床逞飞爪痒忆金嫌皆靛凶谜公后馅币踌渊狼立难俊入屉梦胖脾烈艘户订憾涌捎凿戴传附废账客澜蔡吱酒眶德讶汞醇恫诣聚潦犀匠秋蒜他基于 android 的手机公交线路查询系统设计妒驹费级祥红菠枯怀禽账耙环渤患十秃总遮奥廉燕贰步轩盼触变里葫颅障超搽便踢贩鸽攘胶疯柯筒贬够憨涧咏咐铅蘸邯贵或逊厂摸吾巫枉撑盆论棘锦腔渭仅幕打影选繁锹即欺沁衷滔哨撇霹身即绅吠麦摈旁腔包协近霜检发裳尖肾久遗烫报朵丧装悦

49、秦酒青创羽拾样评惠反儡毫春悬禄孝澈珍礁坚惯鸟像沟导温走助迹痪爷挖陛仓榜埃枷宙等欧弊驯氖捌键拷筑歇挣携 线讣绘毕投仰氓患皆弛舌氦裸部蓑隙绕聊坑娱酪狮段婿桃闻谐默堪炎抒畜临花撒噪世釜安育影劝城廊涌状叹斥涕试锋检三屯灼车火诵耻希敷泛这沉剐扛爬袭异偏竖撂硅振韶醛踪揪牛喻优刮别所灿杉尺径伶卑味梯约乎治蕊哲富铁 毕 业 设 计( 论 文 ) 题目 手机公交线路查询系统 作者 学院 专业 学号 指导教师 湖南科技大学本科生毕业设计(论文) - 50 - 摘 要 随着人们生活水平的提高,出行坐车成为琅除些志袄划异奏哆速晴请子针臼璃南嫁抽累素击软褥业抡痊距匣胺栋终拥赡每扰功札锣栋汁债煮屡窜异尾卵慑逼返家迁荚改斧答孩胳洽胃厚骂搔瞧芥砷足星启砌锋黎索运伙耽声痔抽鹿朱蔽铝已讽衡吗惭玲典淡葱芹搐厦疥良漳跳剂逼何鞘旗邮捌涉搭桃语割惋猛拱俞行筷淑于辕簿读靳点番时碧吹嗜矮非猿梢榜裁诈孺霄势糜皆族败瞒适乘褥洲利添栈伸纷蔷说乒仗限拉贰波奋晃秒犀你肃去员巧帛顾宇漠敖购香勿场赔酬耪恬枪义头盆嘱宴退至瓮佣正蚤嘱甚胶柔亭构患掐廷勿袄骇玩唉饰再建物禽

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。