基于J2ME的公交查询系统的设计与实现学士学位论文.docx
《基于J2ME的公交查询系统的设计与实现学士学位论文.docx》由会员分享,可在线阅读,更多相关《基于J2ME的公交查询系统的设计与实现学士学位论文.docx(70页珍藏版)》请在冰豆网上搜索。
基于J2ME的公交查询系统的设计与实现学士学位论文
毕业论文声明
本人郑重声明:
1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):
年月
关于毕业论文使用授权的声明
本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:
按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据库和收录到《中国学位论文全文数据库》进行信息服务。
在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。
论文作者签名:
日期:
指导教师签名:
日期:
分类号:
TP311.1UDC:
D10621-408-(2007)5720-0
密级:
公开编号:
2003215048
成都信息工程学院
学位论文
基于J2ME的公交查询系统的设计与实现
论文作者姓名:
申请学位专业:
网络工程
申请学位类别:
工学学士
指导教师姓名(职称):
论文提交日期:
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
基于J2ME的公交查询系统的设计与实现
摘要
当今,人类社会已步入信息时代,信息化革命给所有领域带来了前所未有的变革。
电脑、手机等信息工具的普及,人们获取信息变得更加完善、快捷。
而随着信息技术的飞速发展,手机所蕴藏的无限商机,正在被人们逐步发掘,它不再仅仅局限于通信这一单一功能,正在朝着手提电脑甚至更完善的方向发展。
由于手机价廉物美,它已成为人们获得在生活工作上等各种信息服务的最佳选择。
在我国,随着城市化的快速发展,城市公交系统也随之迅速扩大,且更加复杂化,找不到合适的乘车路线的事情经常发生。
当前,复杂的公交系统使得用户往往处于迷惑的状态,给出行带来诸多不便,而手机公交查询系统的选题也正是基于该背景。
本系统通过对城市公交系统的调研,提出了基于站点优先级和邻接矩阵的公交换乘算法和上下矩阵算法;以J2ME作为开发工具,将其移植到用户手机上,借助于无线互联网,能为客户随时随地提供公交信息的查询;通过测试与分析,证实了该系统的可行性及实用价值。
关键词:
公交查询;站点优先级;公交换乘算法;手机;无线互联网
DesignandImplementationofCity-busInformationInquirySystemBasedonJ2ME
Abstract
Atpresent,thehumansocietymarchesintotheinformationtime;theinformationrevolutionhasbroughttheunprecedentedrevolutionforalldomains.WiththepopularizationofinformationtoolaslikeComputer,handsetandsoon,obtainingtheinformationismoreandmoreperfectlyandquickly.Butalongwiththerapiddevelopmentofinformationtechnology,theinfiniteopportunitythatthehandsetcontainsisbeinggraduallyexcavatedbythepeople,itnolongermerelylimitstothissolefunctionofcommunication,isfacingtothedevelopmentofportablecomputerorevenmoreperfectaspect.Asaresultofthelow-priceandhigh-qualityofthehandset,ithasbecomethebestchoicethatthepeopleobtaineachkindofinformationserviceinlife.
Inourcountry,alongwithurbanizedfastdevelopment,citybussystemalsorapidlyexpands,andevenbecomesmorecomplex.So,findingcitybusroutebecomesmoredifficult.Presently,thecomplexcitybussystemcausestheconditionwhichtheusersoftenareconfused,whichbringsmanyinconvenienttopeople,buthandsetcitybusinquirysystemisalsobasedonthisbackground.Firstly,theauthorinvestigatesthecitybussystem,provides“theAlgorithmbasedonthestandpriorityandthenextlinkingmatrix”and“theAlgorithmbasedonupwardanddownwardmatrix”.Secondly,theseAlgorithmsaretransplantedtothehandsetbyJ2ME,whichcanprovidetheinquiryforcitybusatanytimeandanywherebytheaidoftothewirelessInternet.Finally,throughtestingandanalyzing,itconfirmsthissystemissomefeasibilityandpracticalvalue.
Keywords:
CityBusInquiry;StandPriority;CityBusExchangingAlgorithm;Handset;WirelessInternet
论文总页数:
27页
1引言
1.1课题背景
作为关系国计民生的社会公益事业,城市公共交通一直都是政府工作的重点。
就武汉市而言,调研数据显示,武汉市乘客以公交方式出行的比例为23.36%,可见城市公交的重要性。
但是从客观上说,公交硬件建设跟不上城市建设的步伐,是全国大城市尤其是特大城市都正在遭遇的发展瓶颈。
也常常造成人们的出行不便。
在我国,随着城市化的快速发展,市公交系统也随之迅速扩大,且更加复杂化,找不到合适的乘车路线的事情经常发生。
当前,复杂的公交系统使得用户往往处于迷惑的状态,给出行带来诸多不便,在另一个方面,我国城市的手机普及率已经非常高了,如果能把这两种情况结合起来,开发出一种基于手机的公交查询软件,将会给用户带来便捷。
1.2国内外研究现状
从有关的文献看,如今全世界可以支持J2ME的手持设备如今已经达到了七千五百万,有34个运营商在使用J2ME技术;
传统手机在出厂之后,功能(通讯录、游戏、商务应用)就已经固化,用户将无法删除无用的功能,同样也不能增加新的功能。
即使用户找到提供新功能的程序,也往往由于程序和手机平台无法兼容而不能使用。
这成为了手机行业发展的瓶颈,而JAVA在移动终端领域的出现改变了这一局面。
JAVA以其可移植性,资源重用性,安全性,移动性以及强大的网络功能迅速占领了全球手机市场,未来的手机出货将主要以JAVA手机为主。
据美国高科技研究公司StrategiesUnlimited日前发表的《2.5G和3G手机性能:
2002-2006全球分析与市场预测》的报告称,市场上Java手机的数量预计将每年翻一番,到2006年将从2001年的1,910万部增长到5.53亿部。
硬件中加快集成Java预计将进一步促进Java在市场中的普及,J2ME将成为事实上的标准。
到2006年,Java手机预计将占全部手机出货量的83%。
就国内来说,JAVA是未来无线数据服务的主流方向,也开始采用基于开放应用平台的移动增值服务架构。
从2003年起,移动、联通均已开通无线JAVA业务。
JAVA手机已经成为绝大多数用户选购手机时的必要考虑条件。
在J2ME通信方面,MIDP1.0支持HTTP,MIDP2.0则增加了对HTTPS、报文、socket通信以及串口通信的支持。
另外,MIDP2.0还支持服务器Push体系架构,这样,你的手机能够收到来自服务器的报警、消息或者广播,根据要求启动手机上的应用程序进行操作。
支持Over-the-air(OTA)Provisioning是MIDP2.0的一个重要的新特点,它使得用户能够动态地部署和更新移动设备上的应用程序。
新版的MIDP规范中规定了如何在移动设备上发现、安装、更新和删除MIDlet套件;同时,提供应用程序下载的服务提供商还能够判断该MIDlet套件是否能够运行在申请下载的设备上,并且从设备上获取安装、更新和删除的信息。
MIDPOTAprovisioning模型为移动服务提供商提供了单一、标准的部署MIDP应用程序的途径。
该模型已经被众多技术领先的移动设备制造商和服务提供商所采纳。
J2ME针对嵌入式和移动设备,提供了开发和运行应用程序的平台,随着新的规范的不断推出和众多制造商、软件开发商的支持,J2ME正在飞速向前发展。
JTWI将保证J2ME应用程序在不同制造商的产品上的兼容性。
今后J2ME将借助WebServices的力量,真正成为企业级信息解决方案中不可或缺的一部分。
1.3本课题研究的意义
在我国,随着城市化的快速发展,市公交系统也随之迅速扩大,且更加复杂化,找不到合适的乘车路线的事情经常发生。
当前,复杂的公交系统使得用户往往处于迷惑的状态,给出行带来诸多不便,在另一个方面,我国城市的手机普及率已经非常高了,如果能把这两种情况结合起来,开发出一种基于手机的公交查询软件,将会给用户带来便捷。
基于以上原因,本系统通过对城市公交系统的调研,提出了基于站点优先级和邻接矩阵的公交换乘算法和上下矩阵算法;以J2ME作为开发工具,将其移植到用户手机上,借助于无线互联网,能为客户随时随地提供公交信息的查询。
1.4本软件的开发方法
由于公交数据相对比较庞大和繁琐,同时设计换乘时对系统处理的性能要求也比较高,故本系统采用在服务器上进行计算,结果通过无线网络传输到客户端的形式进行开发。
又由于当前绝大多数手机都支持JAVA,而J2EE和J2ME因为同出一门,具备先天性无缝衔接的优势,故本系统采用J2ME和J2EE结合的方式进行开发。
通过J2ME和J2EE技术的结合,采用C/S模式和B/S模式共同存在的方式,服务器端采用Mysql+Tomcat/Weblogic,通过Servlet实现对外服务器通信,同时前台开发出WEB模块和WAP模块,WEB模块采用MVC模式,使用Struts框架。
手机客户端采用J2ME编程,使用线程技术实现和服务器的网络通信,并且在从服务器取得数据后自动断开连接,节约用户流量。
1.5本文的主要工作
1.5.1研究的主要内容
本设计采用B/S和C/S结合的结构,综合运用以前所学的专业知识,设计开发一个功能较完善的基于手机的公交查询系统,具体包括以下内容:
(1)研究并掌握TCP/IP等传输协议、数据库操作等的基本原理。
(2)学习并掌握J2EE,J2ME等相关知识。
(3)以前面的研究为基础,编程实现服务器及手机客户端线路查询,按站查询,站站查询并且实现手机无线网络通信等功能。
1.5.2各章节的安排
本文章详细介绍了该系统的分析和实现各个流程。
在文章的引言中,主要介绍了该系统面临的背景,研究意义和开发方法等,使读者对本文有全面的了解。
在接下来的第二章里,对系统的需求分析和与之对应的开发工具介绍。
在第三章里,对系统开发涉及的算法进行了介绍和对数据库设计给出了详细的说明。
第四章是系统功能具体实现的介绍其中包括了关键的编程技术,功能的代码说明。
第五章是对系统的测试和分析,包括代码测试和功能测试,并对测试分析总结。
最后,是作者通过对本系统的研究和设计总结出的系统特点以及研究心得。
2手机公交查询的需求分析和开发工具介绍
2.1用户的原始需求
作为关系国计民生的社会公益事业,城市公共交通一直都是政府工作的重点。
就武汉市而言,调研结果中的另一个数据,武汉市乘客以公交方式出行的比例为23.36%,可见城市公交的重要性。
但是从客观上说,公交硬件建设跟不上城市建设的步伐,是全国大城市尤其是特大城市都正在遭遇的发展瓶颈。
也常常造成人们的出行不便。
本系统通过对城市公交查询用户需求的调研,发现用户在查找公交信息的时候一般只有3种方式,即按线路进行查找,按站进行查找线路,按起点站和终点站查找乘坐方案。
同时由于城市公交系统在规划的时候是以站作为单位进行规划的,故经过站数的多少直接决定了公交线路的长短和时间。
因此,在本系统的设计中提出以下方案:
用户在使用本系统的时候,可以按照线路进行公交查询,或者按起点终点进行查询,系统自动按照换乘筛选算法提供出最佳换乘方案,该算法根据用户输入的站名,查找全部可以直达的方案,如无直达方案,则找出全部换乘方案并按照站点优先级进行排序,返回给用户线路最短的前N条的换乘信息,如果用户使用按站查询线路,系统也提供了一定的模糊查询,比如用户查询“百脑汇”,系统能自动辨认出当地站点“磨子桥”。
同时,用户在手机上可以通过J2ME手机客户端和WAP的方式进行查询,在电脑上可以通过访问WEB站点的方式进行查询。
2.2手机公交查询系统功能模块及流程图
通过对需求分析的调研,得出了经过用户确认的手机公交查询系统的系统逻辑模型。
根据手机公交查询系统的业务流程图,明确了整个系统的流程。
(1)WEB和WAP功能模块,如图1所示。
图1WEB和WAP功能模块图
图2手机客户端流程图
(2)J2ME手机客户端的系统流程图,如图2所示。
用户查询流程分为查询内容选择、查询信息输入和信息接收3个步骤。
从该流程图中可以看出,按起点终点查询是整个系统最重要的一部分,也是本系统最能体现算法的一部分,经过对成都公交系统的观察和分析,本系统提出了一次换乘时采用基于站点优先级和邻接矩阵的公交换乘算法,如果第一次换乘没有可以换乘的方案,则采用上下矩阵算法,得出二次换乘信息,同时把得到的方案缓存到数据库中,下个用户查询相同起点终点时就直接从数据库中提取缓存信息,大大的节约了用户的时间和系统资源。
2.3开发工具介绍
JAVA语言是目前Internet上大型的WEB应用和手机程序开发时使用得最热门的编程语言,而目前国内销售的大多数手机都支持JAVA,同时J2ME和J2EE因为都是基于JAVA技术,可以进行无缝连接,所以本系统选用J2ME和J2EE做为开发语言,同时在WEB端应用相关的Struts框架,并完成一个基于这2种技术结合的手机无线公交查询系统。
本系统采用的开发工具为MySQL+Eclipse+Tomcat/Weblogic,MySQL是一个广受Linux社区人们喜爱的半商业的数据库。
MySQL具有强大且简单易用的特点,而且运行速度极快,能够处理企业数据库绝大多数的应用需求。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet 2.4和JSP 2.0规范。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
3手机公交查询系统的设计
3.1手机公交查询系统算法的设计
3.1.1直达的算法设计
现有A,B两个公交站,通过数据库查询语句“select*frombusinfo”获得全部公交线路信息,再把每一路车的信息依次迭代出来,判断A站和B站是否同时在该线路中,如结果为true,则可以直达,同时将直达方案存入一个集合中,继续向下遍历,如果结果为false,则该车不能直达,继续向下遍历。
3.1.2一次换乘的算法设计
一次换乘采用基于站点优先级和邻接矩阵的公交换乘算法,现在A,B两个公交站,通过数据库查询语句查找出经过A站的所有公交车集合Collection1,再通过数据库查询语句查找出经过B站的所有公交车集合Collection2,判断Collection1和Collection2是否有交集,若有,则得到一次换乘方案,存放在结果集合中。
判断结束后,再按照经过站点总数对换乘方案进行排序,因为换乘结果往往数以百计,所以只取结果集的前N条记录展现给用户。
若判断结束后没有找到一次换乘的方案,则执行2次换乘算法。
一次换乘算法,如图3所示。
图3一次换乘算法示意图
图4二次换乘算法示意图
3.1.3二次换乘的算法设计
二次换乘采用上下矩阵算法,现有A,B两个公交站,先通过数据库查询语句和程序业务逻辑得到A站能直达的所有站点,放在集合Collection1中,再按照A站的方法找出B站能知道的所有站点,放在集合Collection2中,再判断是否有公交车可以从Collection1中的站点直达Collection2中的站点,如果,则将方案存放到结果集合中。
至此为止,根据公交线路设计的理论,是肯定可以找到二次换乘的方案的,故不再考虑3次换乘方案。
二次换乘算法,如图4所示。
3.2手机公交查询数据库的设计
3.2.1数据库的逻辑设计
图5数据库主要E-R图
准确了解与分析用户需求(包括数据与处理)是整个设计过程的基础。
而根据用户需求设计合适的数据库以及选择恰当的数据库以确保系统能高速稳定的运行则是数据库设计的根本目地。
由于本系统涉及到大量数据的读取,并且对安全性要求不高,故选用占用系统资源较少并且速度相对较快的MySQL作为本系统的数据库。
通过对用户需求的分析以及对系统本身应用背景的研究,可以看出本系统需要有以下数据支持:
公交线路信息,公交站点信息,站点附近标志信息,用户通知信息,同时考虑到节约系统资源,在用户进行完站站查询后还会产生一个存放查询结果的缓存信息。
由上述可以确认该算法所关系到的数据表。
根据上述分析,可以得出公交信息模型的E-R图,如图5所示。
公交信息相关数据库的数据字典,如表1所示。
表1公交信息相关的数据字典
序号
数据项名称
数据项内容
1.
公交线路信息
公交线路的信息汇总
1.1
线路ID
公交线路的ID
1.2
线路NO
公交线路的名称,如502A
1.3
经过站点
公交线路经过的站点
1.4
收发车时间
公交车的收发车时间
1.5
是否上下行
判断该公交车是否有上下行
2.
公交站点信息
公交