离线公交查询系统副本_第1页
离线公交查询系统副本_第2页
离线公交查询系统副本_第3页
离线公交查询系统副本_第4页
离线公交查询系统副本_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、目录基于Android的公交换乘系统摘要 在目前已有的公交系统查询中,存在数据获取较慢、受网络影响等问题。本文在分析总结一些问题的基础上,设计并实现了基于安卓平台的公交离线查询系统。系统运行于android平台,使用SQLITE数据库,主要采用JAVA语言编程。实现了当前位置车次查询、站点查询、换乘查询等功能。在公交换乘查询中,公交换乘系统会将结果根据经过的站点数进行排名,选出换乘经过站点数最少的前四个,极大的缩少了用户乘车所花费的时间。因为使用了本地数据库中的数据文件,所以可以实现离线查询,这样不会受服务器宕机或者网速不好的影响,即使是在没有网络信号的地区,也能快速的查找到需要的公交站点信息

2、、公交路线信息、公交换乘信息,极大地方面了用户的出行。关键词:公交查询, android平台, SQLITE, java, eclipseAbstract In the existing system of public transportation query nowadays, there are still some problems, such as slow to get information and being effected by the Internet. After analyzing and summarizing several problems, the bus o

3、ff-line query system based on Android is running on the Android platform, using SQLite database, mainly use JAVA language programing to achieve its function, which includes station inquiries, bus line inquiries, site transfer inquiries and so on. Using the function of site transfer inquiries, the bu

4、s off-line query system will range the inquiry result according to how many site it will go through and show users the first four result, which can help users save their time. Because of using the data file in local database, you can search information offline, which make you can receive the bus sit

5、e information and the bus line information and the site transfer information you need quickly even you are in some area without sign, which make it more easy for users when they want to go out by bus. Keyword: Bus query, android platform, SQLITE, java, eclipse 1 绪论 1.1问题的提出及研究意义城市公交其覆盖面广、经济快捷的特点,目前任

6、然是绝大数出行者的首选方式,也是各地城市政府大力发展的一种交通方式。针对目前的实际情况,大力发展城市公共交通,鼓励并吸引市民选择乘公交出行,将会大大减弱交通压力,从极大程度改善交通状况。影响城市公交服务水平的因素主要有四个方面:方便性、迅捷性、经济性、舒适性。改善公交服务,就必须从着四个方面综合考虑;,一般各城市采取的措施有:(1) 合理布设公交线路网。(2) 改善公共交通设施。(3) 提高公交车速。(4) 将设智能公交系统。同时在建立在线网络查询公交信息的同时也支持离线查询,即使在没有网络连接更新的情况下可以利用已经下载存储在手机里的地图使用,并且能对手机里的地图做进一步的更新,从而使得信息

7、具有实时性和准确性。1.2国内研究现状我国的公交事业发展比较落后,公交智能化水平比较低,绝大部分是沿袭旧的运营体制。目前我国的城市公交查询系统还处于一个相对落后的水平,广大乘客可以获得信息的方式很少,公交线路和站点信息的完整性和准确性得不到保证。虽然手机凭借小巧可人的身材、N合一的功能特色,成为数码时代人们日常生活中不可或缺的一部分,目前大多数基于手机的公交查询系统都是采用短消息的形式,虽然基于短消息的查询不受空间约束,但是可能受到运营商的一些约束:硬件方面,如果遇到服务器、网络繁忙时段或信号盲区,导致用户请求长时间得不到响应。1.3 本论文组织结构各章内容安排如下:第1章 绪论:本章主要讲述

8、设计题目的研究目的、意义以及现状,相对于软件工程的问题定义和可行性研究部分。第2章 关键技术概述:本章主要介绍了系统所采用的关键技术,这些技术是构成系统的主要技术因素,并为系统的构造提供了理论依据。第3章 系统需求:本章描述了公交查询系统的基本用户需求比如用户界面等,同时介绍了本软件的设计原则以及运行环境。第4章 概要设计:本章描述了系统的体系结构,详细描述了系统的具体模块划分和模块的层次结构,并详细描述了各个模块的功能,为详细设计做好铺垫。第5章 详细设计:本章详细介绍了各个模块的内部处理流程,以及实现模块的类,类中的函数以及变量。第6章 系统测试及运行结构分析:本章属于软件测试环节,对于该

9、软件的运行环境、运行情况进行详细的说明,详细说明软件的特色和优点。2 关键技术概述2.1 Android平台相关内容介绍2.1.1 Android操纵系统简介Android一词的本义指“机器人”,同时也是google于2007年11月5日宣布的基于linux平台的开源手机操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。Android是基于Linux内核的操作系统,早期由Google开发,后来由开放手机联盟开发。它采用了软件堆层的构架,主要分为三部分。底层是以Linux内核工作为基础,只提供基本功能;其他的应用软件则有各公司自行开发

10、,以java作为编写程序的一部分。另外,为了推广此技术,Google和其他几十个手机公司建立开放手机联盟。2.1.2 Android构架图2-1显示的是Android操作系统的主要组件,每个部分将会在下面具体描述。Android同一个核心应用程序包一起发布,该应用程序包包括email客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用Java编写的。Android应用程序框架 开发者也完全可以访问核心应用程序所使用的API框架。该应用程序框架用来简化组建软件的重用;任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块。该应用程序重

11、用机制使得组件可以被用户替代。 ApplicationHomeContactsPhoneBrowser Application FrameworkActivityManagerWindowManagerContentProviderViewSystemNotificationManagerPackageManagerTelephonyManagerResourceManagerLocationManagerXMPPService LibrariesSurface ManagerMedia FrameworkSQLiteOpenGL|ESFreeTypeWebKitSGLSSLLibcAndro

12、id RuntimeCore LibrariesDalvik VMLinux KernelDisplayDriverCameraDriverBlueteethDriverFlash MemDriverBinder(IPC)DriverUSBDriverKeypadDriverWifiDriverAduioDriversPowerManagement 图2-1 Android系统构架 目前Android应用程序都由一系列的服务和系统组成,包括:(1) 一个可扩展的视图(view)可以用来建应用程序,包括列表(list)、网格(grids)、文本框(textboxes)、按钮(buttons),甚

13、至包括一个可嵌入的web浏览器。(2) 内容管理器(content providers)使得应用程序可以访问另一个应用程序的数据,或者共享它们自己的数据。(3) 一个资源管理者(resource manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。(4) 一个通知管理器(notification manager)使得应用程序可以在状态栏中显示客户通知信息。(5) 一个活动类管理器(activity manager)用来管理应用程序生命周期并提供常用的导航回退功能。Android程序库-Android包括一个被Android系统中各种不同组建所使用的C

14、/C+库集。该库通过Android应用程序框架为开发者提供服务 。以下是一些主要的核心库:系统C库-一个从BSD继承来的标准C系统函数(libc),专门为基于embedded linux的设备定制。媒体库-基于packetvideo openCORE;改库支持录放,并且可以录制许多流行的音频视频格式,还有静态印象文件包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。Surface Manager-对显示子系统的管理,并且为多个应用程序提供3D和2D图层的无缝融合。LibWebCore-一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。SGL-一个

15、内置的2D图形引擎3D libraries-基于OpenGL ES 1.0APIS实现;该库可以使用硬件3D加速或者使用更高优化的3D软加速。Freetype-位图(bitmap)和向量(vector)字体显示。SQLite-一个对于所有应用程序可用功能强劲的轻型关系型数据库引擎。Android运行库-Android包括一个核心库,该核心库提供了Java编程语言核心库的大多数功能。每个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对内

16、存最小使用做了优化。该虚拟机是基于寄存器的,所有的类都经由Java汇编器编译,然后通过SDK中的dx工具转化成.dx格式由虚拟机执行。Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。Linux内核-Android的核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为软件和硬件堆栈之间的硬件抽象层。2.2 SQLite相关介绍2.2.1 SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的

17、低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有14个年头,SQLite也迎来了一个版本 SQLite 3已经发布。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调

18、用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,它支持的SQL很多,同时它还支持事务处理功能等等。也有人说它象Microsoft的Access,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你

19、可以考虑使用SQLite。到2013年10月17日最新版本是 3.8.1 。它的官方网站是:或者http:/www.sqlite .com .cn,能在上面获得源代码和文档。同时因为数据库结构简单,系统源代码也不是很多,也适合想研究数据库系统开发的专业人士2.2.2 SQLite特性SQLite的特性如下:1. ACID事务2. 零配置 无需安装和管理配置3.储存在单一磁盘文件中的一个完整的数据库4.数据库文件可以在不同字节顺序的机器间自由的共享5.支持数据库大小至2TB6. 足够小, 大致13万行C代码, 4.43M7. 比一些流行的数据库在大部分普通

20、数据库操作要快8. 简单, 轻松的API9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定10. 良好注释的源代码, 并且有着90%以上的测试覆盖率11. 独立: 没有额外依赖12. 源码完全的开源, 你可以用于任何用途, 包括出售它13. 支持多种开发语言,C, PHP, Perl, Java, C#,Python, Rub2.2.3 SQLite使用注意事项 在确定是否在应用程序中使用 SQLite 之前,应该考虑以下几种情况: (1)目前没有可用于 SQLite 的网络服务器。从应用程序运行位于其他计算机上的 SQLite 的惟一方法是从网络共享运行。这样会导致一些问题,像

21、 UNIX® 和 Windows® 网络共享都存在文件锁定问题。还有由于与访问网络共享相关的延迟而带来的性能下降问题。 (2)SQLite 只提供数据库级的锁定。虽然有一些增加并发的技巧,但是,如果应用程序需要的是表级别或行级别的锁定,那么 DBMS 能够更好地满足您的需求。 (3)SQLite 可以支持每天大约 100,00 次点击率的 Web 站点 并且,在某些情况下,可以处理 10 倍于此的通信量。对于具有高通信量或需要支持庞大浏览人数的 Web 站点来说,应该考虑使用 DBMS。 (4)SQLite 没有用户帐户概念,而是根据文件系统确定所有数据库的权限。这会使强制

22、执行存储配额发生困难,强制执行用户许可变得不可能。 (5)SQLite 支持多数(但不是全部)的 SQL92 标准。不受支持的一些功能包括完全触发器支持和可写视图。 如果您感到其中的任何限制会影响您的应用程序,那么您应该考虑使用完善的 DBMS。如果您可以解除这些限制问题,并且对快速灵活的嵌入式开源数据库引擎很感兴趣,则应重点考虑使用 SQLite。 一些能够真正表现 SQLite 优越性能的领域是 Web 站点,可以使用 SQLite 管理应用程序数据、快速应用程序原型制造和培训工具。由于资源占用少、性能良好和零管理成本,嵌入式数据库有了它的用武之地,它将为那些以前无法提供用作持久数据的后端

23、的数据库的应用程序提供了高效的性能。现在,没有必要使用文本文件来实现持久存储。SQLite 之类的嵌入式数据库的易于使用性可以加快应用程序的开发,并使得小型应用程序能够完全支持复杂的 SQL。这一点对于对于小型设备空间的应用程序来说尤其重要。 嵌入式数据库对于加快应用程序开发也很重要,尤其是在用于数据库抽象层(例如PEAR:DB或ezSQL)时。最后,SQLite 正在积极开发中,未来一定会有新的功能,会对开源社区更有用。2.3 Java高级语言编程2.3.1 Java语言简介Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Ja

24、va实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动感的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。 Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用

25、程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.61。2.3.2 Java语言的特点1、 平台无关性:平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,

26、提供于不同平台的接口的。2、 安全性:Java的编程类似C+,学习过C+的读者将很快掌握Java的精髓。Java舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。3、 面向对象:Java吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。2.3.3 JAVA语言的体系结构 java体系结构包括四个独立相关的技术: java程序设计语言、 java class 文件格

27、式、java应用编程接口、 java虚拟机。当编写并运行一个java程序时,就同时使用了这四种技术。用java编写源代码,把它编译成java class文件,然后在java虚拟机中运行class文件。当编写程序时,通过调用类中的方法来访问系统中资源如io、网络内存等。当程序运行的时候它可以调用class文件中的实现的方法来满足程序java api的调用。2.4 系统实现工具及运行环境开发工具是:Eclipse、AndroidSDK、ADT。软件运行环境:Android操作系统。3 系统需求3.1 用户需求越来越复杂的公交网络使得人们经常非常的困惑,为了解决这些问题,在Android这个平台上,

28、设计开发一个公交信息查询系统。系统应该具有以下功能:(1) 公交网点数据应该存放在手机数据库中,这样即使在没有网络的地方也可以使用,并且提高查询速度。(2) 用户输入公交站点时,可以查询到经过该站点的所有公交路线,并且以可视化的方式显示出来。(3) 用户输入公交路线时,可以查询到该路线经过的所有站点。(4) 用户输入两个站点时,可以查询到两个站点之间的换乘路线。3.2 系统设计的原则3.2.1 实用性原则该原则主要体现的是所设计的系统能够解决实际问题,是所有应用系统设计最基本的最主要的原则,直接关系到系统成败。基于手机的公交信息查询系统可以随时为人们解决出行时的公交选择问题,使用户方便的获取真

29、正想要获得信息。3.2.2 可靠性原则可靠性是系统设计的立足点,若设计的系统故障频繁,就不能满足用户的需求,设计的公交查询系统应该从以下几个方面提高其可靠性:故障发生是应该给出提示,提示用户应该如何操作来排除故障;通过测试监测系统漏洞,完善系统。3.2.3 易于更新和维护系统的设计能够实现有关空间数据和属性数据的实时更新和维护。在系统维护时只需在服务器上维护即可,数据的更新和维护要简单可行。3.2.4 操作简单操作简单是软件设计过程中需要重视的问题,应该精心设计用户接口、使系统用户界面友好,便于用户理解。4 概要设计 4.1系统体系结构手机客户端通过查询数据库本地文件获取信息。如图4-1所示:

30、 手机客户端 查询数据库 图4-1通信示意图4.2 模块设计4.2.1 程序模块划分公交站点查询模块、公交线路查询模块、公交换乘查询模块。4.2.2 程序模块功能描述(1) 公交站点查询模块本模块的功能是用户通过输入站点的名字,系统到数据库中查找数据,返回经过该站点的所有公交路线。(2) 公交线路查询模块本模块实现的功能是用户通过输入公交路线名称,系统到数据库中进行查找数据,返回该路线所经过的所有站点。(3) 公交换乘查询模块本模块实现的功能是用户通过输入公交路线名称,系统到数据库中进行查找信息,根据查找规则,返回两个站点之间的换乘路线。4.3 功能模块对照表 表4-1 功能模块对照表模块名称

31、 模块功能 公交站点查询模块 查询经过该站点的所有路线公交线路查询模块定位当前位置公交换乘查询模块在地图中查找指定位置,并标示出来5 详细设计5.1 功能模块设计5.1.1 公交查询模块(1)模块描述该模块的主要功能是:查询经过某一个站点的全部公交线路。模块功能实现类:StationActivity类。接口中用到的变量:Private String station:保存获得的公交的通车路线。StationActivity类主要变量和方法如下:主要变量: SQLiteDatabase db:数据类的对象 Cursor cursor:从数据库中查询到的结果进行读取、写入的接口,存储查询结果列表主要

32、方法:Public viod onClick():单击确定后响应的函数,在数据库中查询EditText中的站点查询,将查询到的信息显示在界面中。(2)具体实现点击确定按钮后判断EditText是否为空,若为空给出提示,否则在数据库中进行查询,关键代码:String StrSql="select distinct bus.bus_name from site,bus where site.site_name like '%"+busstation+"%' and " +" site.site_bus_id=bus.bus_id&q

33、uot;SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase(ImportDBFile.DB_PATH +"/"+ImportDBFile.DB_NAME,null);Cursor cursor= database.rawQuery(StrSql, null); 查询结果为空弹出对话框进行提示,若结果不为空就将查询结果显示在界面中。 (3)文件说明StationActivity.java:查询某一路公交车的信息的类源文件。(4)输入项要查询的的公交站点名字。(5)输出项经过该公交站点的所有线路(6)流程逻辑该流程逻辑如图

34、5-3所示: 在数据库中进行查询,返回cursor输入要查询的站点名称站点为空cursor为null将查询到的信息在界面中显示站点查询结束提示用户输入提示不存在YESNOYESNO 图5-3 车次查询模块流程逻辑5.1.2 站点查询模块(1)模块描述该模块的主要功能是:查询经过某条公交线路的所有站点,并将结果在界面上显示出来。模块功能实现类:LineActivity类。BusStopInfo类主要变量和方法如下:主要变量: Public StringBuffer lines = new StringBuffer() :将查询到的结果放在这个变量中。 Public busline=line.ge

35、tText().toString(): 获取用户输入的公交路线的名字。 SQLiteDataBase database=SQLiteDatabase.openOrCreateDataBase(ImportDBFile.DB_PATH+”/”+ImportDBFile.DB_NAME,null); String StrSql1=”select site.site_name from site,bus where bus.bus_id=site.site_bus_id and bus.bus_name=”+busLine +” and bus.bus_type=1; String StrSql1=

36、”select site.site_name from site,bus where bus.bus_id=site.site_bus_id and bus.bus_name=”+busLine +” and bus.bus_type=2;主要方法:Public void onClick(View v): 单击查询按钮后会出发该方法,去数据库中查找该公交路线的相关信息,并在界面中将查询结果显示出来。(2)具体实现点击确定按钮后判断EditText是否为空,若为空给出提示,否则在数据库中进行查询,关键代码:SQLiteDatabase database= SQLiteDatabase.openO

37、rCreateDataBase(ImportDBFile.DB_PATH+”/”+ImportDBFile.DB_NAME,null);Cursor cursor= database.rawQuery(StrSql1, null);查询结果为空则提示没有结果,如结果不为空就将查询到的的结果显示在界面中。(3)文件说明 LineActivity.java:根据用户输入的线路信息,到数据库中查询后,返回相关的线路的经过的站点信息。(4)输入项要查询的站点名称。(5)输出项经过该站点的所有站点,分上行和下行。(6)流程逻辑流程逻辑如图5-4所示:在数据库中进行查询,返回cursor输入要查询的车次名

38、称车次为空cursor为null将查询到的信息在界面中显示车次查询结束提示用户输入提示不存在YESNOYESNO 图5-4 车次查询模块流程逻辑5.1.3 站站查询模块(1)模块描述该模块的主要功能是:与站点查询类似,查询在两个站点之间通车的所有公交车,查询结果以字符串的形式列出,显示在界面上。模块功能实现类: Transfer类。主要变量方法等与站点查询类似,在这里不再赘述。(2)具体实现点击确定按钮后判断两个EditText是否都为空,若有一个或者两个为空给出提示,否则在数据库中进行查询,关键代码:SQLiteDatabase database= SQLiteDatabase.openOr

39、CreateDataBase(ImportDBFile.DB_PATH+”/”+ImportDBFile.DB_NAME,null); Cursor cursor= database.rawQuery(StrSql1, null);查询结果为空则提示没有找到相关信息,若不为空就将查询结果显示在stopinfo布局界面中(3)文件说明 TransferActivity.java:用户输入两个站点之间的信息,系统到数据库中查找相关乘车路线,得到换乘方案,在界面上显示出来(4)输入项要查询的两个站点名称(5)输出项在这两个站点之间通车的所有公交车。 (6)流程逻辑流程逻辑如图5-5所示:在数据库中进

40、行查询,返回cursor输入要查询的站点名称两个站点都不为空cursor为null将查询到的信息在界面中显示站站查询结束提示用户输入提示不存在YESNOYESNO 图5-5 站站查询模块流程逻辑5.2 数据库设计5.2.1 数据库所设计的表(1)bus表:实现给每条公交线路编一个id号,以及存储每天公交线路拥有的站点数目。字段名称字段含义字段类型字段长度主键是否为空 Bus_id公交车IDINTEGER10是否Bus_tpye公交车类型int1否是Bus_name公交车名字varchar255否是Bus_line归属线路int8否是Bus_site_number含有站点数int10否是(2)b

41、us_intro表:实现给每个公交线路的相关信息进行描述,比如起点站首末车时间、终点站首末车时间和全程票价。字段名称字段含义字段类型字段长度主键是否为空intro_id公交车介绍IDinteger10 是否intro_bus_id公交车IDint10否是Intro_text 公交信息text255否是(3)city表:实现分别是哪个城市的数据库字段名称字段含义字段类型字段长度主键是否为空City_name城市名称varchar128 否是City_intro城市简介 text128 否是City_creator数据上传者varchar128 否是City_create_time上传时间varc

42、har10 否 是City_update_time更新时间varchar10 否是(4)site表:实现存储站点信息,包括站点所属的公交路线,该站点在公交路线中处于第几个站等信息。字段名称字段含义字段类型字段长度主键是否为空site_id站点IDInteger10是否site_bus_id所属公交路线 int10否是site_order站点位置 int10否是site_name站点名字 varchar255否是6 公交查询系统的实现6.1 系统环境的搭建 Eclipse是一种多功能的集成开发环境,能开发java相关的软件,在windows系统下需要安装android SDK,eclipse和A

43、DT插件。6.2 软件组成如图6-1: 图6-1 软件组成 在eclipse集成环境下创建一个android的应用软件并命名为“BusSystem2”,会生成几个文件夹。文件夹src中主要存放大量的java源程序,文件夹res中主要存放界面设计需要的XML文档、界面图片和数据库文件。软件界面设计主要在main.xml文档中。6.3 android系统虚拟手机 图6-3 虚拟手机 Android的虚拟手机等同于现实世界中的Android机器,但是没有现实生活中手机那么操作简单,由于该虚拟手机的输入法中只有英文跟日文的输入方法,固然不能实现北京的公交的直接查询,所以在该虚拟手机上又安装了搜狗拼音输

44、入法,不但实现了公交查询的实现,还实现了站点的查询。6.4 软件安装 图6-3 软件安装后系统菜单软件安装之后会在模拟手机的软件菜单中发现北京公交离线查询的快捷方式,跟电脑中的软件一样,点击这个快捷方式就会运行该软件,而且为该虚拟手机安装的搜狗输入法可以协助公交查询系统实现站点查询功能,输入一个北京公交数据库中存在的站点名称,就会出现经过该站点的所有公交。6.5 软件运行 图6-4 软件运行界面从软件的运行界面中可以看出,实现的功能有线路查询、站点查询,软件的界面是北京地图的部分截图,同时说明查询结果的显示位置。点击menu按钮会有“帮助”“联系我”“退出”按钮。图6-5 线路查询输入公交的线路点击“搜索信息”就会出现1路公交车经过的所有站点名称,在站点查询中输入站点名称,就会显示经过该站点的所有公交,如果不存在该路公交或者不

温馨提示

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

评论

0/150

提交评论