ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:950.93KB ,
资源ID:22839548      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22839548.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(离线公交查询系统副本Word文件下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

离线公交查询系统副本Word文件下载.docx

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

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

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

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

5、-1 Android系统构架目前Android应用程序都由一系列的服务和系统组成,包括:(1) 一个可扩展的视图(view)可以用来建应用程序,包括列表(list)、网格(grids)、文本框(textboxes)、按钮(buttons),甚至包括一个可嵌入的web浏览器。(2) 内容管理器(content providers)使得应用程序可以访问另一个应用程序的数据,或者共享它们自己的数据。(3) 一个资源管理者(resource manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。(4) 一个通知管理器(notification manager)

6、使得应用程序可以在状态栏中显示客户通知信息。(5) 一个活动类管理器(activity manager)用来管理应用程序生命周期并提供常用的导航回退功能。Android程序库-Android包括一个被Android系统中各种不同组建所使用的C/C+库集。该库通过Android应用程序框架为开发者提供服务。以下是一些主要的核心库:系统C库-一个从BSD继承来的标准C系统函数(libc),专门为基于embedded linux的设备定制。媒体库-基于packetvideoopenCORE;改库支持录放,并且可以录制许多流行的音频视频格式,还有静态印象文件包括MPEG4、H.264、MP3、AAC、

7、AMR、JPG、PNG。Surface Manager-对显示子系统的管理,并且为多个应用程序提供3D和2D图层的无缝融合。LibWebCore-一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。SGL-一个内置的2D图形引擎3D libraries-基于OpenGL ES 1.0APIS实现;该库可以使用硬件3D加速或者使用更高优化的3D软加速。Freetype-位图(bitmap)和向量(vector)字体显示。SQLite-一个对于所有应用程序可用功能强劲的轻型关系型数据库引擎。Android运行库-Android包括一个核心库,该核心库提供了Java编程语

8、言核心库的大多数功能。每个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对内存最小使用做了优化。该虚拟机是基于寄存器的,所有的类都经由Java汇编器编译,然后通过SDK中的dx工具转化成.dx格式由虚拟机执行。Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。Linux内核-Android的核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为软

9、件和硬件堆栈之间的硬件抽象层。2.2 SQLite相关介绍2.2.1 SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。至

10、今已经有14个年头,SQLite也迎来了一个版本 SQLite 3已经发布。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,它支持的SQL很多,同时它还支持事务处理功能等等。也有人说它象Microsoft的Access,有时

11、候真的觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。到2013年10月17日最新版本是 3.8.1 。它的官方网站是:http:/www.sqlite.org或者http:/www.sqlite .com .cn,能在上面获得源代码和文档。同时因为数据库结构简单,系统源代码也不是很多,也适合想研究数据库系统开发的专业人士2.2.2 SQLite特性SQLite的特性如下:1. ACID事务

12、2. 零配置无需安装和管理配置3.储存在单一磁盘文件中的一个完整的数据库4.数据库文件可以在不同字节顺序的机器间自由的共享5.支持数据库大小至2TB6. 足够小, 大致13万行C代码, 4.43M7. 比一些流行的数据库在大部分普通数据库操作要快8. 简单, 轻松的API9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定10. 良好注释的源代码, 并且有着90%以上的测试覆盖率11. 独立: 没有额外依赖12. 源码完全的开源, 你可以用于任何用途, 包括出售它13. 支持多种开发语言,C, PHP, Perl, Java, C#,Python, Rub2.2.3 SQLite使

13、用注意事项在确定是否在应用程序中使用 SQLite 之前,应该考虑以下几种情况:(1)目前没有可用于 SQLite 的网络服务器。从应用程序运行位于其他计算机上的 SQLite 的惟一方法是从网络共享运行。这样会导致一些问题,像 UNIX 和 Windows 网络共享都存在文件锁定问题。还有由于与访问网络共享相关的延迟而带来的性能下降问题。(2)SQLite 只提供数据库级的锁定。虽然有一些增加并发的技巧,但是,如果应用程序需要的是表级别或行级别的锁定,那么 DBMS 能够更好地满足您的需求。(3)SQLite 可以支持每天大约 100,00 次点击率的 Web 站点并且,在某些情况下,可以处

14、理 10 倍于此的通信量。对于具有高通信量或需要支持庞大浏览人数的 Web 站点来说,应该考虑使用 DBMS。(4)SQLite 没有用户帐户概念,而是根据文件系统确定所有数据库的权限。这会使强制执行存储配额发生困难,强制执行用户许可变得不可能。(5)SQLite 支持多数(但不是全部)的 SQL92 标准。不受支持的一些功能包括完全触发器支持和可写视图。如果您感到其中的任何限制会影响您的应用程序,那么您应该考虑使用完善的 DBMS。如果您可以解除这些限制问题,并且对快速灵活的嵌入式开源数据库引擎很感兴趣,则应重点考虑使用 SQLite。一些能够真正表现 SQLite 优越性能的领域是 Web

15、 站点,可以使用 SQLite 管理应用程序数据、快速应用程序原型制造和培训工具。由于资源占用少、性能良好和零管理成本,嵌入式数据库有了它的用武之地,它将为那些以前无法提供用作持久数据的后端的数据库的应用程序提供了高效的性能。现在,没有必要使用文本文件来实现持久存储。SQLite 之类的嵌入式数据库的易于使用性可以加快应用程序的开发,并使得小型应用程序能够完全支持复杂的 SQL。这一点对于对于小型设备空间的应用程序来说尤其重要。嵌入式数据库对于加快应用程序开发也很重要,尤其是在用于数据库抽象层(例如PEAR:DB或ezSQL)时。最后,SQLite 正在积极开发中,未来一定会有新的功能,会对开

16、源社区更有用。2.3 Java高级语言编程2.3.1 Java语言简介Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动感的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Inter

17、face、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.61。2.3.2 Java语言的特点1、 平台无关性:平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编

18、写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。2、 安全性:Java的编程类似C+,学习过C+的读者将很快掌握Java的精髓。Java舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。3、 面向对象:Java吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性

19、,使程序代码只需一次编译,然后通过上述特性反复利用。2.3.3 JAVA语言的体系结构java体系结构包括四个独立相关的技术: java程序设计语言、 java class 文件格式、java应用编程接口、 java虚拟机。当编写并运行一个java程序时,就同时使用了这四种技术。用java编写源代码,把它编译成java class文件,然后在java虚拟机中运行class文件。当编写程序时,通过调用类中的方法来访问系统中资源如io、网络内存等。当程序运行的时候它可以调用class文件中的实现的方法来满足程序java api的调用。2.4 系统实现工具及运行环境开发工具是:Eclipse、And

20、roidSDK、ADT。软件运行环境:Android操作系统。3系统需求3.1 用户需求越来越复杂的公交网络使得人们经常非常的困惑,为了解决这些问题,在Android这个平台上,设计开发一个公交信息查询系统。系统应该具有以下功能:(1) 公交网点数据应该存放在手机数据库中,这样即使在没有网络的地方也可以使用,并且提高查询速度。(2) 用户输入公交站点时,可以查询到经过该站点的所有公交路线,并且以可视化的方式显示出来。(3) 用户输入公交路线时,可以查询到该路线经过的所有站点。(4) 用户输入两个站点时,可以查询到两个站点之间的换乘路线。3.2 系统设计的原则3.2.1 实用性原则该原则主要体现

21、的是所设计的系统能够解决实际问题,是所有应用系统设计最基本的最主要的原则,直接关系到系统成败。基于手机的公交信息查询系统可以随时为人们解决出行时的公交选择问题,使用户方便的获取真正想要获得信息。3.2.2 可靠性原则可靠性是系统设计的立足点,若设计的系统故障频繁,就不能满足用户的需求,设计的公交查询系统应该从以下几个方面提高其可靠性:故障发生是应该给出提示,提示用户应该如何操作来排除故障;通过测试监测系统漏洞,完善系统。3.2.3 易于更新和维护系统的设计能够实现有关空间数据和属性数据的实时更新和维护。在系统维护时只需在服务器上维护即可,数据的更新和维护要简单可行。3.2.4 操作简单操作简单

22、是软件设计过程中需要重视的问题,应该精心设计用户接口、使系统用户界面友好,便于用户理解。4概要设计4.1系统体系结构手机客户端通过查询数据库本地文件获取信息。如图4-1所示:图4-1通信示意图4.2 模块设计4.2.1 程序模块划分公交站点查询模块、公交线路查询模块、公交换乘查询模块。4.2.2 程序模块功能描述(1) 公交站点查询模块本模块的功能是用户通过输入站点的名字,系统到数据库中查找数据,返回经过该站点的所有公交路线。(2) 公交线路查询模块本模块实现的功能是用户通过输入公交路线名称,系统到数据库中进行查找数据,返回该路线所经过的所有站点。(3) 公交换乘查询模块本模块实现的功能是用户

23、通过输入公交路线名称,系统到数据库中进行查找信息,根据查找规则,返回两个站点之间的换乘路线。4.3 功能模块对照表表4-1 功能模块对照表模块名称模块功能公交站点查询模块查询经过该站点的所有路线公交线路查询模块定位当前位置公交换乘查询模块在地图中查找指定位置,并标示出来5详细设计5.1 功能模块设计5.1.1 公交查询模块(1)模块描述该模块的主要功能是:查询经过某一个站点的全部公交线路。模块功能实现类:StationActivity类。接口中用到的变量:Private String station:保存获得的公交的通车路线。StationActivity类主要变量和方法如下:主要变量:1 S

24、QLiteDatabase db:数据类的对象2 Cursor cursor:从数据库中查询到的结果进行读取、写入的接口,存储查询结果列表主要方法:Public viod onClick():单击确定后响应的函数,在数据库中查询EditText中的站点查询,将查询到的信息显示在界面中。(2)具体实现点击确定按钮后判断EditText是否为空,若为空给出提示,否则在数据库中进行查询,关键代码:String StrSql=select distinct bus.bus_name from site,bus where site.site_name like %+busstation+% and +

25、 site.site_bus_id=bus.bus_id;SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase(ImportDBFile.DB_PATH +/+ImportDBFile.DB_NAME,null);Cursor cursor= database.rawQuery(StrSql, null);查询结果为空弹出对话框进行提示,若结果不为空就将查询结果显示在界面中。(3)文件说明StationActivity.java:查询某一路公交车的信息的类源文件。(4)输入项要查询的的公交站点名字。(5)输出项经过该公交站点的所有线路(6)流程逻辑该流程逻辑如图5-3所示: 图5-3 车次查询模块流程逻辑5.1.2 站点查询模块查询经过某条公交线路的所有站点,并将结果在界面上显示出来。LineActivity类。BusStopInfo类主要变量和方法如下:1 Public StringBuffer lines = new StringBuffer() :将查询到的结果放在这个变量中。2 Public busline=line.getText().toString(): 获取用户输入的公交路线的名字。3 SQLiteDataBasedataba

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1