《基于QT的校园导航系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于QT的校园导航系统的设计与实现.docx(53页珍藏版)》请在优知文库上搜索。
1、基于QT的校园导航系统的设计与实现摘要本文主要是介绍利用Linux系统和QT制作校园导航系统的设计方法。使用的操作系统是LinUX系统,但是在MndOWS系统下也是可以使用的,所使用的语言是c+,开发工具是QT。设计的主要目的是能够简单地观看整个校园的风景,使不熟悉校园的人能够知道每个景点的位置、介绍,查看学校的建筑物,包括建筑物的图片以及建筑物的描述。尤其,这个系统可以找出两个建筑物之间最短的距离,从而迅速地帮助不熟悉校园的人了解整个校园环境,然后找到最好的方法去参观整个校园,除此之外,该系统还可以查询两个景点之间的所有路径,有助于来往者跟好的选择路径。导航系统是在Linux系统(LinUX
2、下开发,windows下也可以运行)下,先利用QT制作出用户界面,再利用C+编程语言设计出基本功能并与界面相结合。本文设计的导航系统能够实现以下三大功能:第一,它可以测量两个建筑物之间的距离,同时在查询两个景点之间的路径信息的同时,提供起始点与终点建筑物的图片信息,便于更好的确认;第二,它可以帮助来访者从众多的路线中选出最短的一条,同时会提供两点之间的所有路径;第三,它可以在标志性建筑添加一些描述信息和图片,还可以查看从该建筑物到所有其他建筑物的路径信息。关键词路径规划;最短路径算法;校园导航;qtTheschoolnavigatesystembasedonLinuxandQtCreatorA
3、bstractMainlyintroducedinthispaperusingtheLinuxsystemandQTcampusnavigationsystemdesignmethod.UseoftheoperatingsystemisLinuxsystem,butalsocanuseunderWindowssystem,thelanguageisusedbyc+,developmenttoolsisQT.Themainpurposeofdesignistobeabletosimplywatchthesceneryofthewholecampus,whoisfamiliarwiththecam
4、puscanknowthelocationofeachscenicspot,introduction,seetheschoolbuildings,includingthestructureofthepicturesandthedescriptionofthebuilding.Especially,thesystemcanfindouttheshortestdistancebetweentwobuildings,soastohelppeoplewhoarenotfamiliarwiththecampusrapidlyunderstandthecampusenvironment,andfindth
5、ebestwaytovisitthewholecampus,inaddition,thesystemcanalsoqueryallpathsbetweentwospots,helpgoingbackandforthwithgoodchoicepath.NavigationsystemisintheLinuxsystem(underLinuxdevelopment,alsocanrununderWindows),thefirstuserproducedusingQT,usingc+programminglanguagebasicdesign.Functionandcombiningwiththe
6、interface.Thenavigationsystemisdesignedinthispapercanachievethefollowingthreefunctions:first,itcanmeasurethedistancebetweenthetwobuildings,atthesametimethequerypathinformationbetweentwositesatthesametime,providethepictureofthestartingpointandendpointbuildinginformation,tofacilitatebetterconfirmation
7、;Second,itcanhelpvisitorsfrommanychoosetheshortestroute,atthesametimewillprovideallthepathbetweentwopoints;Third,itcanaddsomedescriptioninlandmarkinformationandpictures,youcanalsoviewfromthebuildingtoalltheotherpathinformationofthebuilding.Keywordspathplanning;antalgorithm;thecampusnavigation;qt目录摘要
8、iAbstractii1 绪论11.1 概述11.2 研究背景11.3 研究目标11.4 本章小结12 QT简介22.1 QT的背景介绍22.2 QT实现的结构原理22.3 QTQWidget简介32.3.1 详细描述32.3.2 QWidget事件简介42.4 QT应用程序的实现62.5 本章小结73 需求分析83.1 需求分析概述83.2 需求分析的特点83.3 需求分析需要完成的任务83.4 实际需求分析93.4.1 用户需求分析93.4.2 功能需求分析93.4.3 实际需求分析93.4.4 系统性能需求分析93.5 本章小结104总体设计114.1 总体设计概述114.2 系统总体设
9、计描述114.3 系统总体设计模块划分114.3.1 主要模块划分图124.3.2 显示系统主界面模块设计124.3.3 查询导航有关人员模块设计134.3.4 导航主界面的模块的设计134.4 本章总结145详细设计155.1 详细设计概述155.2 校园导航系统主程序流程图155.3 单源最短路径算法介绍165.3.1 DijkStra(迪杰斯特拉)算法165.3.2 floyed(弗洛耶德)算法175.4 图中节点与路径的存储195.4.1 节点的存储195.4.2 节点间路径长度的存储195.4.3 整个图的存储205.5 本章总结206系统实现及运行结果216.1 界面设计216.1
10、.1 主窗体设计216.1.2 子页面布局设计246.1.3 更换起始点的实现276.1.4 点击主页面中的查询路径具体实现296.1.5 点击查看景点信息描述的实现296.2 图的创建316.3 路径查询的具体实现316.3.1 单源最短路径算法具体实现326.3.2 所有可达路径的查询的具体实现336.3.3 每一个点到它可达的所有点的查询的具体实现336.4 选择系统是否退出的具体实现346.5 本章小结357测试367.1 测试目标367.2 测试预期结果367.3 测试用例的设计367.4 本章小结38结论39参考文献40致谢41外文原文42中文翻译471.1 概述现在科技越来越发达
11、,手机上的软件,电脑上的软件越来越多,所以开发小的程序也越来越有必要。QT具备跨平台,易扩展,界面华丽,性能稳定等优点。因此,以嵌入式处理器作为硬件平台,以QT作为程序框架,两者的完美结合必将成为未来技术的发展方向。1.2 研究背景现在,汽车正在普及,道路不断建设,城际间的经济往来更加频繁,活动的区域也越来越大。为了提高生活质量,大量的休闲活动、探险活动的举行使我们并不局限在自己认识的一小块区域中,不认识道路,找不到目的地的情况也屡有发生。就此,各种各样的导航仪逐渐走进我们的生活。无论什么导航仪最主要的部分都是电子地图。开发电子地图成为了导航仪的关键。根据调查,电子地图制作困难而且价格相当昂贵
12、,给导航仪的开发带来了很多不便。自主绘制电子地图,编写电子地图应用程序,不管是从经济上还是研究上都具有非常大的意义。现在,各个学校都有了自己的导航系统,但是开发工具语言,还有平台不一样。所以,如果拥有一个跨平台的程序的话,那将会给我们的开发节省了大量的时间。QT正是一个支持多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。所以使用QT作为应用程序框架是一个不错的选择。1.3 研究目标本课题名为校园地理信息系统。本系统以太原理工大学为模型,旨在建立一个本学校的导航系统,可以根据不同人的要求,
13、足不出户,就可以浏览校园,得到各种信息基于上述背景,开发一个校园导航项目,使用IinUX搭配qt来构建这个项目。利用QT4作为系统应用层的程序框架。开发一个可以运行的小客户端。这个客户端虽然是在IinUX下开发的,但是它是可移植的,在WindoWS下也可以运行。1.4 本章小结本章主要介绍本项目的选题背景、意义,选题目标。通过介绍,了解当今社会主要是校园,导航系统的需求以及重要性,明白研究该系统的必要性。2QT简介2.1 QT的背景介绍Qt是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它既可以开发GUl程序,也可用于开发非GUl程序,比如控制台工具和服务器。Qt是面向
14、对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaobjeetCOmPiIer,moc)以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境QlCreatOr3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、BeaUtifier等插件,废弃了无Python接口的GDB调试支持,集成了基于CIang的C/C+代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WPoQtCreatOr包含了一套用于创建和测试基
15、于Qt应用程序的高效工具,包括:一个高级的C+代码编辑器上下文感知帮助系统可视化调试器源代码管理项目和构建管理工具.优良的跨平台特性:Qt支持下列操作系统:MiCrOSOftWindows95/98,MicrosoftWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIX(OSF1,Tru64),Irix,FreeBSD,BSDOS,SCO,AIX,0S390,QNX等等。面向对象:Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。2.2 QT实现的结构原理QtZEmbedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与Xll版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。QUEmbedded类库完全采用C+封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/EmbeddedAPI可用于多种开发项目。QtZEmbedded的实现结构如图2-1所示: