




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于QT的校园导航系统的设计与实现摘要本文主要是介绍利用Linux系统和QT制作校园导航系统的设计方法。使用的操作系统是Linux系统,但是在windows系统下也是可以使用的,所使用的语言是c+,开发工具是QT。设计的主要目的是能够简单地观看整个校园的风景,使不熟悉校园的人能够知道每个景点的位置、介绍,查看学校的建筑物,包括建筑物的图片以及建筑物的描述。尤其,这个系统可以找出两个建筑物之间最短的距离,从而迅速地帮助不熟悉校园的人了解整个校园环境,然后找到最好的方法去参观整个校园,除此之外,该系统还可以查询两个景点之间的所有路径,有助于来往者跟好的选择路径。导航系统是在Linux系统(Linux下开发,windows下也可以运行)下,先利用QT制作出用户界面,再利用C+编程语言设计出基本功能并与界面相结合。本文设计的导航系统能够实现以下三大功能:第一,它可以测量两个建筑物之间的距离,同时在查询两个景点之间的路径信息的同时,提供起始点与终点建筑物的图片信息,便于更好的确认;第二,它可以帮助来访者从众多的路线中选出最短的一条,同时会提供两点之间的所有路径;第三,它可以在标志性建筑添加一些描述信息和图片,还可以查看从该建筑物到所有其他建筑物的路径信息。关键词路径规划;最短路径算法;校园导航;qtiTheschoolnavigatesystembasedonLinuxandQtCreatorAbstractMainlyintroducedinthispaperusingtheLinuxsystemandQTcampusnavigationsystemdesignmethod.UseoftheoperatingsystemisLinuxsystem,butalsocanuseunderWindowssystem,thelanguageisusedbyc+,developmenttoolsisQT.Themainpurposeofdesignistobeabletosimplywatchthesceneryofthewholecampus,whoisfamiliarwiththecampuscanknowthelocationofeachscenicspot,introduction,seetheschoolbuildings,includingthestructureofthepicturesandthedescriptionofthebuilding.Especially,thesystemcanfindouttheshortestdistancebetweentwobuildings,soastohelppeoplewhoarenotfamiliarwiththecampusrapidlyunderstandthecampusenvironment,andfindthebestwaytovisitthewholecampus,inaddition,thesystemcanalsoqueryallpathsbetweentwospots,helpgoingbackandforthwithgoodchoicepath.NavigationsystemisintheLinuxsystem(underLinuxdevelopment,alsocanrununderWindows),thefirstuserproducedusingQT,usingc+programminglanguagebasicdesign.Functionandcombiningwiththeinterface.Thenavigationsystemisdesignedinthispapercanachievethefollowingthreefunctions:first,itcanmeasurethedistancebetweenthetwobuildings,atthesametimethequerypathinformationbetweentwositesatthesametime,providethepictureofthestartingpointandendpointbuildinginformation,tofacilitatebetterconfirmation;Second,itcanhelpvisitorsfrommanychoosetheshortestroute,atthesametimewillprovideallthepathbetweentwopoints;Third,itcanaddsomedescriptioninlandmarkinformationandpictures,youcanalsoviewfromthebuildingtoalltheotherpathinformationofthebuilding.Keywordspathplanning;antalgorithm;thecampusnavigation;qt目录摘要.iAbstract.ii1绪论.11.1概述.11.2研究背景.11.3研究目标.11.4本章小结.12QT简介.22.1QT的背景介绍.22.2QT实现的结构原理.22.3QTQWidget简介.32.3.1详细描述.32.3.2QWidget事件简介.42.4QT应用程序的实现.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系统总体设计描述.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.1Dijkstra(迪杰斯特拉)算法.165.3.2floyed(弗洛耶德)算法.175.4图中节点与路径的存储.195.4.1节点的存储.195.4.2节点间路径长度的存储.195.4.3整个图的存储.205.5本章总结.206系统实现及运行结果.216.1界面设计.216.1.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中文翻译.4701绪论1.1概述现在科技越来越发达,手机上的软件,电脑上的软件越来越多,所以开发小的程序也越来越有必要。QT具备跨平台,易扩展,界面华丽,性能稳定等优点。因此,以嵌入式处理器作为硬件平台,以QT作为程序框架,两者的完美结合必将成为未来技术的发展方向。1.2研究背景现在,汽车正在普及,道路不断建设,城际间的经济往来更加频繁,活动的区域也越来越大。为了提高生活质量,大量的休闲活动、探险活动的举行使我们并不局限在自己认识的一小块区域中,不认识道路,找不到目的地的情况也屡有发生。就此,各种各样的导航仪逐渐走进我们的生活。无论什么导航仪最主要的部分都是电子地图。开发电子地图成为了导航仪的关键。根据调查,电子地图制作困难而且价格相当昂贵,给导航仪的开发带来了很多不便。自主绘制电子地图,编写电子地图应用程序,不管是从经济上还是研究上都具有非常大的意义。现在,各个学校都有了自己的导航系统,但是开发工具语言,还有平台不一样。所以,如果拥有一个跨平台的程序的话,那将会给我们的开发节省了大量的时间。QT正是一个支持多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。所以使用QT作为应用程序框架是一个不错的选择。1.3研究目标本课题名为校园地理信息系统。本系统以太原理工大学为模型,旨在建立一个本学校的导航系统,可以根据不同人的要求,足不出户,就可以浏览校园,得到各种信息基于上述背景,开发一个校园导航项目,使用linux搭配qt来构建这个项目。利用QT4作为系统应用层的程序框架。开发一个可以运行的小客户端。这个客户端虽然是在linux下开发的,但是它是可移植的,在windows下也可以运行。1.4本章小结本章主要介绍本项目的选题背景、意义,选题目标。通过介绍,了解当今社会主要是校园,导航系统的需求以及重要性,明白研究该系统的必要性。12QT简介2.1QT的背景介绍Qt是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境QtCreator3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C+代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。QtCreator包含了一套用于创建和测试基于Qt应用程序的高效工具,包括:一个高级的C+代码编辑器上下文感知帮助系统可视化调试器源代码管理项目和构建管理工具.优良的跨平台特性:Qt支持下列操作系统:MicrosoftWindows95/98,MicrosoftWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIX(OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX等等。面向对象:Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。2.2QT实现的结构原理Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C+封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/EmbeddedAPI可用于多种开发项目。Qt/Embedded的实现结构如图2-1所示:图2-1QT的实现结构图Qt/Embedded的底层图形引擎基于framebuffer。Framebuffer驱动程序的实2现分为两个方面:一方面是对LCD及其相关部分的初始化,包括画在缓冲区的创建和对DMA通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为read、write、lseek等系统调用接口。至于将画面缓冲区的内容输出到LCD显示屏上,则由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后,DMA开始正常工作,并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的。基于该特性,framebuffer驱动程序必须将画面缓冲区的存储空间(物理空间)重新映射到一个不加高缓存和写缓存的虚拟地址区间中,这样能才保证应用程序通过mmap将该缓存映射到用户空间后,对于该画面缓存的写操作能够实时的体现在LCD上。QT程序是基于C+编写的,图形用户界面编程同时需要运行效率和高水平的灵活性。Qt通过结合C+的速度为这一领域提供了Qt对象模型。Qt把下面这些特性添加到了C+当中:一种被称为信号和槽的非常强大的机制;可查询和可设计的属性项;强大的事件和事件过滤器;根据上下文进行国际化的字符串翻译;完善的时间间隔驱动的计时器等。许多Qt的特性是基于QObject的继承,通过标准C+技术实现的。QApplication是必须构造的Qt主对象,需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个Qt应用程序有且仅有一个QApplication对象,该对象必须在做其他事之前创建,这个对象处理一些底层操作,如事件处理、字符串本地化和控制界面外观等。信号和信号处理函数是GUI应用程序用来响应用户输入的基本机制,也是所有GUI库的核心特征,Qt的信号处理机制由信号(signal)和槽(slot)构成,它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。信号和槽用于对象间的通讯,它的基本语法为:connect(object1,signal1,object2,slot1);2.3QTQWidget简介2.3.1详细描述QWidget类是所有用户界面对象的基类。通俗的来讲,基本上所有的UI类都是由QWidgetQt继承出来的,而QWidget继承于QObject,大家可以查阅Qtsource即可发现一些微妙的写法,如这篇文章有详细介绍:Qt库对象数据的声明和使用窗口层次窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。QDialog是最普通的顶级窗口。不被嵌入到一个父窗口部件的窗口部件被叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和和不同的QDialog的子类是最普通的顶级窗口。一个没有父窗口部件的窗口部件一直是顶级窗口部件。非顶级窗口部件是子窗口部件。它们是它们的父窗口部件中的子窗口。你通常不能在视觉角度从它们的父窗口部件中辨别一个子窗口部件。在Qt中的绝大多数其它窗口部件仅仅作为子窗口部件才是有用的。(当然把一个按钮作为或者叫做顶级窗口部件也是可能的,但绝大多数人喜欢把他们的按3钮放到其它按钮当中,比如QDialog。)QWidget有很多成员函数,但是它们中的一些有少量的直接功能:例如,QWidget有一个字体属性,但是它自己从来不用。有很多继承它的子类提供了实际的功能,比如QPushButton、QListBox和QTabDialog等等。每一个窗口部件构造函数接受一个或两个标准参数:1.QWidget*parent=0是新窗口部件的父窗口部件。如果为0(默认),新的窗口部件将是一个顶级窗口部件。如果不是,它将会使parent的一个孩子,并且被parent的几何形状所强迫(除非你指定WType_TopLevel作为窗口部件标记)。2.3.2QWidget事件简介基本事件:*paintEvent()只要窗口部件需要被重绘就被调用。每个要显示输出的窗口部件必须实现它并且不在paintEvent()之外在屏幕上绘制是明智的。*resizeEvent()当窗口部件被重新定义大小时被调用。*mousePressEvent()当鼠标键被按下时被调用。有六个鼠标相关事件,但是鼠标按下和鼠标释放事件是到目前为止最重要的。当鼠标在窗口部件内或者当它使用grabMouse()来捕获鼠标时,它接收鼠标按下事件。*mouseReleaseEvent()当鼠标键被释放时被调用。当窗口部件已经接收相应的鼠标按下事件时,它接收鼠标释放事件。这也就是说如果用户在你的窗口部件内按下鼠标,然后拖着鼠标到其它某个地方,然后释放,你的窗口部件接收这个释放事件。这里有一个例外:如果出现在弹出菜单中,当鼠标键被按下时,这个弹出菜单立即会偷掉这个鼠标事件。*mouseDoubleClickEvent()和它看起来也许不太一样。如果用户双击,窗口部件接收一个鼠标按下事件(如果他们没有拿牢鼠标,也许会出现一个或两个鼠标移动事件)、一个鼠标释放事件并且最终是这个事件。直到你看到第二次点击是否到来之前,不能从一个双击中辨别一个点击。(这是为什么绝大多数图形用户界面图书建议双击是单击的一个扩展,而不是一个不同行为的触发的一个原因。)如果你的窗口部件仅仅包含子窗口部件,你也许不需要实现任何一个事件处理器。如果你想检测在子窗口部件中的鼠标点击,请在父窗口部件的mousePressEvent()中调用子窗口部件的hasMouse()函数。接收键盘的窗口部件需要重新实现一些更多的事件处理器:*keyPressEvent()只要键被按下和当键已经被按下足够长的时间可以自动重复了就被调用。注意如果Tab和Shift+Tab键被用在焦点变换机制中,它们仅仅被传递给窗口部件。为了强迫那些键被你的窗口部件处理,你必须重新实现QWidget:event()。*focusInEvent()当窗口部件获得键盘焦点(假设你已经调用setFocusPolicy())时被调用。写得好的窗口部件意味着它们能按照一种清晰但谨慎的方式来获得键盘焦点。*focusOutEvent()当窗口部件失去键盘焦点时被调用。一些窗口部件也许需要实现一些不太普通的事件处理器:*mouseMoveEvent()只要当鼠标键被按下时鼠标移动就会被调用。举例来说,对于拖动,这个很有用。如果你调用setMouseTracking(TRUE),尽管没有鼠标键被4按下,你也会获得鼠标移动事件。(注意这个使用鼠标跟踪的应用程序在低下的X连接下不是很有用。(也可以)参考拖放信息。*keyReleaseEvent()只要键被释放和当如果这个键是自动重复的并且被按下一段时间时就被调用。在这种情况下窗口部件接收一个键释放事件并且对于每一个重复立即有一个键按下事件。注意如果Tab和Shift+Tab键被用在焦点变换机制中,它们仅仅被传递给窗口部件。为了强迫那些键被你的窗口部件处理,你必须重新实现QWidget:event()。*wheelEvent()当窗口部件拥有焦点时,只要用户转动鼠标滚轮就被调用。*enterEvent()当鼠标进入这个窗口部件屏幕空间时被调用。*leaveEvent()当鼠标离开这个窗口部件的屏幕空间时被调用。*moveEvent()当窗口部件相对于它的父窗口部件已经被移动时被调用。*closeEvent()当用户关闭窗口部件时(或这当close()被调用时)被调用。这里还有一些不太明显的事件。它们在qevent.h中被列出并且你需要重新实现event()来处理它们。event()的默认实现处理Tab和Shift+Tab(移动键盘焦点)并且其它绝大多数事件给上面提到的一个或更多的特定处理器。Windowflag标识关于QWidget的flag的介绍:enumQt:WindowTypeflagsQt:WindowFlags这两个参数参阅官方文档。Qt的WindowFlags有很多,实际使用时,若不关心窗口层次的话,大可不比太关心这个。比如说在Window上做应用开发,大可只关注:Qt:Dialog,Qt:Tool,Qt:Window即可。但若是做嵌入式开发就得好好看看这个属性,整理好这部分属性,有利于窗口管理。着重介绍几个重要成员函数:boolQWidget:close()slot关闭这个窗口部件。如果窗口部件被关闭,返回真,否则返回假。首先它发送给这个窗口部件一个QCloseEvent。如果它接收这个关闭事件,它就被隐藏了。QWidget:closeEvent()的默认实现是接收这个关闭事件。当最后一个可视的顶级窗口部件被关闭,QApplication:lastWindowClosed()信号被发射。注意窗口的enumQt:WidgetAttribute属性,窗口默认属性是Qt:WA_MacOpaqueSizeGrip,设置上这个属性意味着窗口调用close()只销毁了UI想关,QWidget内还有很多内存空间没有释放,需调用delete销毁QWidget。若需要在调用close时一并销毁窗口可以给窗口设置Qt:WA_DeleteOnClose属性。boolQWidget:event(QEvent*e)虚保护这是主事件处理器,它处理事件e。你可以在子类中被重新实现整个函数,但是我们建议你使用一个特定的事件处理器来替代它。主事件首先把事件传递给所有已经被安装的事件过滤器。如果没有过滤器中途截取这个事件,它调用一个特定的事件处理器。键按下和释放事件被处理得和其它事件不同。event()检查Tab和Shift+Tab并且试图适当地移动焦点。如果没有窗口部件被焦点移入(或者键按下不是Tab或Shift+Tab),event()调用keyPressEvent()。如果它能够把一个事件传递给没个东西,这个函数就返回真,否则如果没有任何东西想要这个事件,返回假。也可以参考closeEvent()、focusInEvent()、focusOutEvent()、enterEvent()、keyPressEvent()、keyReleaseEvent()、leaveEvent()、mouseDoubleClickEvent()、mouseMoveEvent()、mousePressEvent()、mouseReleaseEvent()、5moveEvent()、paintEvent()、resizeEvent()、QObject:event()和QObject:timerEvent()。voidQWidget:paintEvent(QPaintEvent*)虚保护这个事件处理器可以在子类中被重新实现来接收绘制事件。绘制事件就是重新绘制这个窗口部件的所有部分的一个请求。它可以是repaint()或update()的结果,或者因为这个窗口部件原来被变暗并且现在已经不再被覆盖了,或者其它很多原因。很多窗口部件在当它们被请求时,它们很简单地重新绘制整个界面,但是一些比较慢的窗口部件需要通过仅仅绘制被请求的区域QPaintEvent:region()进行优化。这个速度优化不会改变结果,在事件处理过程中,绘制仅仅发生在被改变的区域中。例如,QListView和QCanvas就是这样做的。Qt也试图通过把多个绘制事件合并为一个来加快绘制速度。update()被调用几次或者窗口当系统发送几次绘制事件,Qt把它们合并为一个比较大区域(请参考QRegion:unite())的一个事件中。repaint()不允许这样优化,所以只要可能我们建议使用update()。当绘制事件发生,更新区域通常被擦除,所以你正在这个窗口部件的背景上绘制。这里有一些例外并且QPaintEvent:erased()告诉你这个窗口部件是否被擦除。背景可以通过使用setBackgroundMode()、setPaletteBackgroundColor()或setBackgroundPixmap()来设置。setBackgroundMode()的文档详细描述了背景,我们建议你去读一下。voidQWidget:raise()槽把这个窗口部件升高到它的父窗口部件的栈的顶部。如果在屏幕上有与这个窗口部件重叠的兄弟,这个窗口部件将在它后来的这些兄弟之前变的可视了。也可以参考lower()和stackUnder()。voidQWidget:repaint(intx,inty,intw,inth,boolerase=TRUE)槽通过立即调用paintEvent()来直接重新绘制窗口部件,除非更新是失效的或者窗口部件被隐藏。如果erase为真,Qt在paintEvent()调用之前擦除区域(x,y,w,h)。如果w是负数,它被width()-x替换,并且如果h是负数,它被height()-y替换。如果你需要立即重新绘制,我们建议使用repaint(),比如在动画期间。在绝大多数情况下,update()更好,因为它允许Qt来优化速度并且防止闪烁。警告:如果你在一个函数中调用repaint(),而它自己又被paintEvent()调用,你也许会看到无线循环。update()函数从来不会产生循环。也可以参考update()、paintEvent()、updatesEnabled和erase()。2.4QT应用程序的实现由以上简介可知,Qt是一个创建GUI程序的C+类库,编写Qt应用程序的主要工作是基于已有的Qt类编写用户类。Qt提供了一组范围相当广泛的C+类库,并包含了几种命令行和图形界面的工具,有效地使用这些工具可以加速开发过程。QtDesigner:Qt设计器。用来可视化地设计应用程序界面。QtLinguist:Qt语言学家。用来翻译应用程序。以此提供对多种语言的支持。Qmake:使用此工具可以由简单的、与平台无关的工程文件来生成编译所需的Makefile。QtAssistant:关于Qt的帮助文件。类似于MSDN。可以快速地发现你所需要的帮助。6moc:元对象编译器。uic:用户界面编译器。在程序编译时被自动调用,通过ui_*.h文件生成应用程序界面。Qt应用程序的设计使用基于工程的方法,并通过.pro文件进行工程管理。实现应用程序的第一步是编写.pro文件,然后使用QT4自带的qmake工具生成Makefile,最后进行源代码的编译。Qmake的过程如下:qmakeproject/生成.pro的工程文件qmake/生成Makefilenmake/编译2.5本章小结随着越来越多的第三方软件公司利用Qt/Embedded开发嵌入式Linux下的应用软件,Qt的应用已经越来越广泛。本章主要介绍了QT的背景和描述了QT实现的结构原理,还简述了QT的相关特性。此外,也介绍了QT应用程序开发时的相关工具。73需求分析3.1需求分析概述在系统工程及软件工程中,需求分析指的是在创建一个新的或改变一个现存的系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时,分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。3.2需求分析的特点需求分析是一项重要的工作,也是最困难的工作。该阶段工作有以下特点:(1)用户与开发人员很难进行交流在软件生存周期中,其它四个阶段都是面向软件技术问题,只有本阶段是面向用户的。需求分析是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该做什么。但是在开始时,开发人员和用户双方都不能准确地提出系统要做什么?。因为软件开发人员不是用户问题领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚;而用户不熟悉计算机应用的有关问题。由于双方互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。(2)用户的需求是动态变化的对于一个大型而复杂的软件系统,用户很难精确完整地提出它的功能和性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 县内培训试题及答案
- 物理3 4试题及答案
- 2025年贵州中考语文第一次模拟试卷(无答案)
- 2025停车位车库买卖合同范本
- 工程设计企业运营管理的现状及总体形势
- 2025专利权独家授权合同
- trans-2-Hexenal-d2-1-E-2-Hexenal-d-sub-2-sub-1-生命科学试剂-MCE
- Hynapene-B-生命科学试剂-MCE
- 2025年中国室内高尔夫个人运动配件行业市场前景预测及投资价值评估报告
- 2025年西班牙语SIELE考试听力模拟试卷(不同语速场景训练)
- 一例给药错误不良事件汇报
- 三腔二囊管压迫止血及护理课件
- 电气控制柜制作工艺设计及规范
- 动力电池和电机电控英语术语汇总
- 普利兹克奖历届得主及作品赏析
- 糖尿病中医护理查房教学内容
- 消防安全培训记录表-
- 逻辑判断推理口诀
- 关于明确公司安全生产相关责任人的通知
- 工程项目开工停工复工管理工作程序文件
- 城市道路人行道设施设置规范
评论
0/150
提交评论