测绘程序设计(VB).doc_第1页
测绘程序设计(VB).doc_第2页
测绘程序设计(VB).doc_第3页
测绘程序设计(VB).doc_第4页
测绘程序设计(VB).doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

东华理工大学高职学院 测绘程序设计(VB)2012测绘程序设计(VB) 课间实习报告 姓名: 学号: 班级: 年 月目 录1 实习目的32 实习仪器与软件32.1 Visual Basic 6.033 实习要求44 实习内容45 实习步骤45.1 坐标正反算45.2 水准测量55.3 导线计算55.4 集成化设计56 实习总结56.1 实习问题总结56.2 程序调试总结57 实习体会5测绘程序设计实习报告1 实习目的掌握Visual Basic(VB)程序设计的基本理论、方法和应用,掌握VB程序应用于测绘专业的程序开发,理解程序设计在测绘数据处理中的作用和地位,学会利用模块化程序设计的基本技术,掌握面向对象程序设计方法,应用测绘专业的基本技能,测绘专业模块程序包开发的基本方法,为学习后续课程和专业技术工作打下基础。使用计算机程序,处理测量数据,不但方便、快捷;而且准确、具有可重复性。以简单的导线计算为例,一个简单的附合导线,采用手工计算不仅费时费力,而且常常出现数据抄录、计算等方面的错误。而若采用相应的解算程序计算,仅需将原始数据输入,程序便可以自动进行一定的错误检查,并且迅速计算出准确结果。例如,一个有12个点的附合导线的计算,采用手工计算, 算”按钮的一秒。又如,一个有几百个点的三角网的平差计算,用手工几乎无法完成,而利用计算机程序计算,仅仅是增加了数据导入的时间,解算的时间最多也不超过一分钟,并且计算结果可靠。2 实习仪器与软件实习期间主要用到的器材软件:电脑一台Visual Basic(VB)6.0企业版,数据库软件Access、Office软件Word等。2.1 Visual Basic 6.0VB 就是 Visual Basic 的意思,是一种常用的编程开发工具。它的基础是编程语言Basic ,Visual Basic 简单点来说就是微软为了更好的让人们学习编程,应用上 Basic 开发语言的一套工具,简称 就是 VB。VB 的面世使原本极其复杂困难的编程、软件开发的工作变得简单。最初的编程工作都是依靠全套的代码去进行的,工程量极大。Microsoft 就是看准了这个人们渴求快速发展软件开发行业的商机,利用自己的技术实力研发出 VB 这么一套完善的编程工具。VB 把过往的纯代码编程过度到可视化编程,将一些经常要使用到的功能以一个个的控件的形式出现,例如 Label(标签)、TextBox(文本框)等等的。他们在以前的编程工作中需要在使用时重复多次的输入同样的代码去实现这个功能,而这些代码去不是小工程,耗费了很大的人力物力和很多的时间。所以有了 VB 之后,编程的工作也就可以普及啦,可以免去了机械的重复的代码的输入,又可以一面编辑核心功能一面进行界面优化美化,一劳多得啊。 VB 是 Basic 语言软件开发者的首选编译器,是学习 Basic 语言编程必须要接触而且是经常接触的一款整合型技术编译器。VB的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。 窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。 VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。 VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。 VB使用引用计数的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。 VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。 编辑本段术语在讨论 Visual Basic(不包含 .NET)时,经常可以听到以下这些术语,因此掌握这些术语的基本理解对初学者十分有帮助。 控件:简单的说,控件就是构成或者说建造 Visual Basic 应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控件和图片控件等等 事件:由用户或操作系统引发的动作,例如击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制,或从端口接收数据。 方法:嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是Visual Basic中所有对象的示例。 物件:一个控件、窗体等都可被看作一个物件。 过程:为完成某些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。 属性:属性是组成用户界面的各对象的性质的具体描述。例如上述“物件”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的属性。属性决定物件的外观,有时也决定物件的行为。物件的属性绝大部分是VB中已经事先定义好的,但也有的属性是需要在应用过程中才去定义的。属性即可为物件提供数据,也能从物件取回信息。 窗体的常用属性 现在,我列举出了一些窗体的常用属性,请你对它们先进行一下感性认识。 VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。 VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。3 实习要求1.较为熟练地掌握VB程序设计与开发Caption:设置窗体标题栏上的文字。 ControlBox:设置窗体标题栏上是否具有控制菜单栏及按钮。 Enabled:决定运行时窗体是否响应用户事件。在程序运行时可以看到改变 Enabled属性的效果。此时Enabled已设为False,所以点击按钮不会有反应。 Height:设置窗体的高度。 Width:设置窗体的宽度。 Left:设置程序运行时窗体的水平位置 Top:设置程序运行时窗体的垂直位置 Visible:设置程序运行时窗体是否可见。当Visible为False时,窗体是不可见的。将值改为为True。运行时窗体就是可见的了。 WindowsState:设置程序运行中窗体的最小化、最大化和原形这三种状态。程序运行时的最小化状态。 Icon:设置窗体标题栏上的图标。 Picture:给窗体配上漂亮的位图。 最后要说明的是:窗体的Name和Caption属性,虽然缺省值相同,都是Form1,但实际意义却不一样。Caption指的窗体标题栏上的文字,Name指这个窗体的对象名,千万不能混淆。 2掌握测绘外业工作需要的一些基本理论与方法作为一个多半时间蹦波在野外的测量工作者来说,能够很好的认识到测量就是一切基础建设的基础,它是工程的眼睛,因此我们必须本着踏实的心态做好实事求是,一切都要以数据说话的原则从事好这项野外即辛苦又脏又累的工作,酸甜苦辣、严寒酷暑何所惧! 在地形图测量中,外野时能够很好的记住地物地貌的特征及相应的关联关系,是对画草图有着快速成效,当然绘制草图必须清新,合理更具具体情况绘制,以便内业成图是方便阅读,花草图不仅自己要能够看懂,别人也得懂。测量工作时一定得要定向准确,多次检核,以免出现过程中的错误。内业处理问题主要是图根控制点的平常处理,现在Excel很实用计算一些数据,可以很好的利用相关公式计算,且计算很方便的。绘图软件只要我们多练,掌握一些快捷命令,成图速度会大大的提高,当然能够灵活的对图层进行用运和管理也是很好的,可以整体对各个图层进行快速修改。 很多时候外野所采集的数据回来几个组会出现差错的,部分与实际相对位置不一致,多半是要进行旋转才能套合的,最初解释还以为是盘左盘右的问题,其实问题不是这样的,是后视定向的问题,我们在观测是一定将测量模式改成坐标测量模式,不要在角度测量模式下进行。 有一个间接检核后视定向的方法,开始测量之前,找一个固定的目标,越小越好,记住水平角读数,分若干时间进行角度检核,如果相差太远就说明有问题,应当记录下来,必要时从测,之后需要重新定向就可以了。3.掌握测绘内业数据处理的流程 1.数据导出 2.将数据检查,校正3.将数据导入到南方cass4.把数据的x与y轴对调,利用数据批量处理(因为全站仪的数据坐标顺序不同)5.根据草图和点号成图4掌握常用测绘专业软件的交换格式。4 实习内容充分学习VB可视化编程以后,熟悉各种常用控件的使用。再结合测量专业数据处理,编写全部或部分专业程序。要求进行循序渐进的方式,先采用基本结构编写,在随后的课程学习当中,采用数组,函数,再生成数据文件格式,从低级到高级应用,最后通过窗体应用与函数的方法进行集成,将所有的实习最后集成到一个程序当中,使之进一步完善与改进等。 坐标正反算 简易水准平差 简易导线计算 交会测量程序 集成化界面设计(根据实际实习内容写)5 实习步骤实习主要在北区机房内进行,主要按实习内容进行5.1 坐标正反算 坐标反算是根据已知点坐标,计算两点间距离和角度,正算公式为:a为坐标方位角,S为两点的距离公式分析: 从式上可以知道公式需要知道初始始坐标,距离和角度,即需要四个输入,若需要在一个函数中实现,返回值有二个,可以有二种方法1. 单个函数实现Function Dis2xy(ByVal Dis as Double ,ByVal Ang as Double) as Double利用数据返回End Function2. 两个函数实现Function Dis2xy(ByVal Dis as Double,ByVal Ang as Double,ByVal Flag as Integer) as Double增加参数控制End Function 5.2 水准测量四等水准测量记录表测点后尺下丝前尺下丝方向及尺编号标尺读数黑+K-红高差中数(m)上丝上丝后视距前视距黑面红面视距差d1(1)(5)后(3)(8)(10)(2)(6)前(4)(7)(9)(12)(13)后前(16)(17)(11)(14)(15)四等水准测量记录表 计算公式:高差部分 (9)=(4)+ k - (7) (10)=(3)+ k - (8) (11)=(4)- (9) (16)=(3)- (4)(17)=(8)- (7)(11)=(16)加减100 (9) (12)=(1)- (2) (13)=(5)- (6)(14)=(12)- (13) (15)=本站的(14)+ 前站的 (15) (3)(4)=(16)=h黑 (3)+k)(8)=(10) (8)(7)=(17)=h红 (4)+k)(7)=(9) h中=1/2(h黑h红)5号尺k=4787,6号尺k=4687闭合水准路线。 fh=h测附合水准路线 fh =h测(H终H始)支水准路线 fh =往返闭合差限度 Fh容=正负40L(mm) Fh容=正负12n(mm)L水准路线长度n测站数公式分析: 从式上可以知道此题计算简单只是有点繁琐,需要耐心分析。2.利用主要函数有:Msgbos根据已知的数据,计算后距视距差,前距,高差中数: 利用Function(byval a as integer , byval a as integer , byval a as integer , byval a as integer , byval a as integer , byval a as integer , byval a as integer )as double计算出来 水准测量是用水准仪和水准尺测定地面上两点间高差的方法。在地面两点间安置水准仪,观测竖立在两点上的水准标尺,按尺上读数推算两点间的高差。通常由水准原点或任一已知高程点出发,沿选定的水准路线逐站测定各点的高程。由于不同高程的水准面不平行,沿不同路线测得的两点间高差将有差异,所以在整理国家水准测量成果时,须按所采用的正常高系统加以必要的改正,以求得正确的高程。5.3 导线计算 地面上选定一系列点连成折线,在点上设置测站,然后采用测边、测角方式来测定这些点的水平位置的方法。导线测量是建立国家大地控制网的一种方法,也是工程测量中建立控制点的常用方法。设站点连成的折线称为导线,设站点称为导线点。测量每相邻两点间距离和每一导线点上相邻边间的夹角,从一起始点坐标和方位角出发,用测得的距离和角度依次推算各导线点的水平位置。 导线测量布设灵活,推进迅速,受地形限制小,边长精度分布均匀闭合导线测量的计算步骤:1. 角度闭合差的计算与调整.理=-(n-2)*180由于观测角度不可避免的好友误差,因此会产生角度闭合差f=测-理角度闭合差的容许值根据倒显得等级确定,图根导线规定为f=40sqr(n)2 有改正后的导线左叫或右角推算各边的坐标方位角i+1=i+左-180(适用于左角)i+1=i+左+180(适用于右角)推算过程注意:a. 如果算出的i+1 360度,则应减去360度b. 如果算出的i+1 360度,则应加上360度c. 闭合导线各边坐标的方位角的推算,最后推算出起始边坐标方位角,他应该与原有的已知坐标方位角相等,否则应重新检查计算。3. 坐标增量的计算及闭合差的调整。a. 坐标增量的计算。 i=Di*cosi yi=Di*sinb 坐标增量闭合差的计算与调整。导线全长闭合差为fx=xi- fy=yi fD=sqr(fx* fx +fy fy* fy)导线全长相对误差为:K= f/D/Fd不同等级的导线对K值得要求也不尽相同,其中图根导线要求K值不大于1/2000若K值超限,则需要检查观测数据或重新观测坐标增量改正的计算Vxi+1=Xi+Xxi+Vxi yi+1=yi+yi+Vyi4 . 用改正后的坐标增量计算各个导线点的坐标Xi+1= xi+xi+vxiYi+1= yi+yi+ vyi5. 符合导线的坐标计算步骤与闭合导线相同,知识角度闭合差与坐标增量闭合差的计算稍有区别,具体公式如下:f=a始+左-n*180-a终fx=xi-(x终-x始)fy=yi-(y终-y始)5.4 集成化设计集成化设计是基于并行工程思想的设计,它利用现代信息技术把传统产品设计强调产品设计及其过程同时交叉进行,减少设计过程的多次反复,力求使产品开发人员在设计一开始就考虑到产品整个生命周期中从概 念形成到产品报废处理的所有因素,从而最大限度地提高设计效率、降低生产成本的设计方法。 5.4 集成化设计集成化设计就是把我们设计过的小程序全部都编辑到一个更全面的测量程序界面,把需要用的程序都编辑到一个菜单栏里,什么实习过的程序都有,比如有角度转换弧度,弧度转角度,三角高程测量的计算,任意三角形求面积等一些程序。6 实习总结6.1 实习问题总结1、 如何用 VB 启动其他程序或开启各类文件 要在 VB 中启动其他程序或开启各类文件,最简单的方法就是使用 Shell 函数,例如:要开启 C:Test.txt 这个文字文件,则要启动记事本来开启这个文件案,程序如下:Dim RetVal As LongRetVal = Shell(C:WindowsNotepad.exe C:Test.txt, 3)3代表视窗会最大化,并具有驻点,细节请查 Help以上的语法虽然很简单,但有一个风险,若是我们不知道开启文件的执行文件位置,则程序便会有错误产生,尤其一般软件在安装的时候都可以让使用者自行选择安装目录,所以执行文件的路径不能写死在程序中,要解决这个问题,就是在注册文件中找到该副文件名之启动程序位置,再放入 Shell 中。但是以上的作法必须熟悉注册文件,而且必须使用 Windows API 来 Call (注册文件的存取以后会有专文来说明),如果您对注册文件的存取及 API 的使用都很纯熟的话,当然没问题,但是有些人对于注册文件会有畏惧,这时候,您可以使用下面的方法:Shell(Start C:Test.txt)2.如何得到文件路径的文件名Dim sFilePath As StringsFilePath = C:WindowsSystemsytem.dllDim lGetLen As Long, lNum As LongDim sGetFile As String, sTemp As StringlGetLen = Len(sFilePath) 得到文件路径长度sTemp = lGetLenFor lNum = 1 To lGetLenIf Left(sGetFile, 1) = Then Exit ForsGetFile = Mid(sFilePath, sTemp, lNum)sTemp = sTemp - 1Next lNumsGetFile = Mid(sGetFile, 2) 得到文件名MsgBox sGetFile3.在 TextBox 中如何限制只能输入数字?Private Sub Text1_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 48 To 57 Case Else KeyAscii = 0 End Select End Sub 3. 我们在 VB 的程序中要如何判断,目前文件资源管理器中的设定是否显示扩展文件名呢?Private Declare Function GetFileTitle Lib comdlg32.dll Alias GetFileTitleA (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As IntegerPrivate Function HasExtension(sFileName As String) As LongDim sTemp As StringDim lTemp As LongsTemp = String(1, 0)lTemp = GetFileTitle(sFileName, sTemp, Len(sTemp)If lTemp 0 Then HasExtension = -1: Exit FunctionsTemp = String(lTemp, 0)Call GetFileTitle(sFileName, sTemp, Len(sTemp)If (Left$(Right$(Left$(sTemp, lTemp - 1), 4), 1) = . ThenHasExtension = 1ElseHasExtension = 0End IfEnd Function若有显示扩展文件名,返回值是 1,否则返回0。 6.2 程序调试总结主要的重点和难点还是在程序代码的调试上,只有调试好了这个编写的程序这个程序才算是成功的。经过这半个学期VB 的了解,对程序编写和调试。下面是我对VB调试的总结: 其步骤为:第一步:按f11在“代码”窗口选定监视表达式。f21选择“调试”菜单中的决速监视”: 或按Shift+F9键:或单击“调试”工具栏的决速监视”按钮(在VB工具栏上右击鼠标并选定“调试”选项可显示“调试”工具栏) f31选择“添加”按钮则此监视表达式添加到监视窗口中。第二步:就是利用断点,断点就是放在程序中的标记程序执行到断点时自动进入到中断方式通过设置断点可以把程序的执行点移到程序问题的附近然后在有问题的代码块内仔细地单步运行,同时检查变量的值从而找出问题的根源。设置或删除断点的方法有: f11在“代码”窗口中 ,把插人点移动到要设置或删除断点的代码行然后选择“调试”菜单的“切换断点”:或是单击“调试”工具栏上的“切换断点”按钮;或是按F9键f21在“代码”窗口要设置或删除断点的那一行代码的左边空白区单击鼠标。第三步;就是利用St0D语句可以在过程中的任何地方放置St0p语句。使用St0p语句,相当于在程序代码中设置断点。StoD语句会暂停程序的执行,但它和End语句不同,StoD不会关闭任何文件或清除变量。第四步:利用“逐语句”和“逐过程”命令逐语句是一次一条语句地执行代码(也被称为逐过程执行)。在逐过程通过每条语句之后,我们可通过查看应用程序的窗体或调试窗口来看它的效果选择“凋试”菜单的“逐语句”或单击“调试”工具栏的“逐语句”按钮或按F8键可以启动逐语句执行除了当前语句包含过程调用的情况外,在其他时刻。逐过程与逐语句是相同的。它们之间的差别是:逐语句将进入到被调用的过程里面而逐过程则把被调用过程当成单元来执行然后到达当前过程的下条语句。第五步:利用“运行到光标处”命令当应用程序处在中断模式时。可用“运行到光标处”命令在代码的后面选择想要停止运行的语句因此可以略过不感兴趣的那部分代码。其步骤为:f1)把应用程序设置为中断模式f21把光标设置在需要停止运行的地方。f3)按Ctrl+F8组合键:或选择“调试”菜单的“运行到光标处”命令。最后就是结束语了掌握了上述程序调试的内容对我们快速调试程序非常有效果其实在VB实际编程中调试程序几乎没有什么规律可循我们只要透彻地理解了程序代码并能够灵活运用中断调试方法就可以快速发现程序中的错误7. 实习体会 通过这次的实训使我学到了很多,同时也让我意识到我要学的更多。本次实训的项目是关于工程测量的程序设计, 任务是四等水准测量的程序设计。从程序的需求分析、可行性分析、设计到编写、调试、修改、完善、到最后的实训报告,每个人都付出了时间和精力去做好自己的任务并努力地去完善它。 实训的第一天接到任务时我都觉得有点难度,很有挑战性,毕竟四等水准测量是一个比较系统、完善、功能相对较齐全的计算程序,因此程序编写也十分复杂, 编写一定要认真。一个小小的失误都可能使程序出现大的漏洞。而我只是学了点简单的vb程序编写,没有尝试过这种相对来说比较系统完善的系统。 可即使如此我还是出现了错误,我的程序在编写上存在一些漏洞,导致调试时不能正常运行,后经过老师的指导、我的调整,终于可以完美的运行, 我做了四等水准测量的计算程序、竖直角计算和视距测量三块内容。在实训过程中,老师对我亲切认真负责,很有耐心地对我进行讲解并指导我解决遇到的难题。老师交会了我很多简单实用的技巧。也让我意识到了要想全面完整地完成一个模块,首先要进行程序的设计,全面分析会用到的东西以及考虑可能会出现的情况,理清思绪、写出大致的要点后再上机编写程序以及操作。否则像一开始的我马上上机编写、想到什么就补什么,不仅浪费时间也乱了之前写好的一些程序。系统分析越准确,设计的系统越精确,可以大大减少后期的修改、维护工作。当然做好做对一个程序固然重要, 无论是从参观者的角度还是自己看的角度都很重要。 总的来说,这次实训还是比较成功的。最后出来的系统,大家都很有成就感,这是我一步步设计、一步步完善、辛苦付出后得到的成果, 我都得到了很好的锻炼。当然实训不仅使我学到了知识,也帮助我缩小了实践和理论的差距,通过这次实训让我更深一步的对vb这门课程的知识有更进一步的渴望,同时对自己的专业,对自己的能力,对自己所学的有正确的认识,并且能在以后的学习工作中不断提高和完善自己。 程序代码水准测量 在每个text里只能输入数字其他的不能输入Private Sub Command1_Click()Dim aa#, bb#, cc#, dd#aa = Val(Text5.Text)bb = Val(Text10.Text)cc = Val(Text11.Text)dd = Val(Text12.Text)Text5.Text = Val(Text1.Text) - Val(Text2.Text)Text10.Text = Val(Text6.Text) - Val(Text7.Text)End Sub Function zz(ByVal aa As Double, ByVal bb As Double, ByVal cc As Double) As Double If (aa / 10 - bb / 10) -5 Then Text14.Text = aa - bbEnd IfText11.Text = Val(Text3.Text) - Val(Text8.Text)Text12.Text = Val(Text4.Text) - Val(Text9.Text)If cc dd Then Text13.Text = (cc + (dd + 100) / 2 Else Text13.Text = (cc + (dd - 100) / 2 Print Text13.Text End If End Function Private Sub Command2_Click()Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text7.Text = Text8.Text = Text9.Text = Text10.Text = Text11.Text = Text12.Text = Text13.Text = Text14.Text = End SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57Case ElseKeyAscii = 0End SelectEnd SubPrivate Sub Text2_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57Case ElseKeyAscii = 0End SelectEnd SubPrivate Sub Text3_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57Case ElseKeyAscii = 0End SelectEnd SubPrivate Sub Text4_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57Case ElseKeyAscii = 0End SelectEnd SubPrivate Sub Text6_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57Case ElseKeyAscii = 0End SelectEnd SubPrivate Sub Text7_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57Case ElseKeyAscii = 0End SelectEnd SubPrivate Sub Text8_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57Case ElseKeyAscii = 0End SelectEnd SubPrivate Sub Text9_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57Case ElseKeyAscii = 0End SelectEnd Sub坐标转换正算Dim k1#,e1#,dx1#Dim x1#,xx1#,y1#,dyy1#Private sub cmdcalc1.click()K1 =text2E1=text2Dx1=text3Dy1=text4X1=text5Y1=text6End subFunction xx1( byval k1 as double , byval x1 as double , byval y1 as double)as doubleDim yy as double Xx1=(k1+1)*(x1*cos(e1)+y1*sin(e1)+dx1Yy1=(k1+1)*(y1*cos(e1)x1*sin(e1)+dy1Print xx1,yy1End function坐标反算Dim k2#,e2#,dx2#, Dim x2#,xx2#,y2#,dyy2#Private sub cmdcalc1.click()K2 =text2E2=text2Dx2=text3Dy2=text4X2=text5Y2=text6Function xx1( byval k2 as double , byval x2 as double , byval y2 as double)as doubleDim yy2 as double Xx2=(k2+1)*(x2*cos(e2)+y2*sin(e2)+dx2Yy2=(k2+1)*(y2*cos(e2)-x2*sin(e2)+dy2Print xx2,yy2End function导线测量 Dim sAngle() As Double, sdAngle() As Double, sEdge() As Double Dim detX() As Double, detY() As Double, reX() As Double, reY() As Double Dim iType%, iAngleType%, Xa#, Ya#, Xb#, Yb#, Xc#, Yc#, Xd#, Yd# Dim iStation As Integer Dim detA As Double Dim detTX#, detTY#, detTT#, Tedge# Const PI = 3.141592653 Private Sub mnuAbout_Click() Form2.Show 1End SubFunction adc(bval xc as double,byval yc as double,byval xd as double ,byval yd as double ) as double Dim aAB#, aDC# Dim i% aAB = DirectAB(Xa, Ya, Xb, Yb) txtShow.Text = txtShow.Text & vbCrLf & 起始坐标方位角 & Format(HuToDo(aAB), 0.0000) If iType = 1 Then aDC = DirectAB(Xc, Yc, Xd, Yd) txtShow.Text = txtShow.Text & vbCrLf & 终止坐标方位角 & Format(HuToDo(aDC), 0.0000) End If End function sdAngle(1) = aAB txtShow.Text = txtShow.Text & vbCrLf & 方位角初值: & vbCrLf For i = 1 To iStation sdAngle(i + 1) = sdAng

温馨提示

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

最新文档

评论

0/150

提交评论