测绘程序设计VB.docx

上传人:b****5 文档编号:6509518 上传时间:2023-01-07 格式:DOCX 页数:26 大小:61.60KB
下载 相关 举报
测绘程序设计VB.docx_第1页
第1页 / 共26页
测绘程序设计VB.docx_第2页
第2页 / 共26页
测绘程序设计VB.docx_第3页
第3页 / 共26页
测绘程序设计VB.docx_第4页
第4页 / 共26页
测绘程序设计VB.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

测绘程序设计VB.docx

《测绘程序设计VB.docx》由会员分享,可在线阅读,更多相关《测绘程序设计VB.docx(26页珍藏版)》请在冰豆网上搜索。

测绘程序设计VB.docx

测绘程序设计VB

测绘程序设计(VB)

课间实习报告

姓名:

学号:

班级:

年月

 

测绘程序设计实习报告

1实习目的

掌握VisualBasic(VB)程序设计的基本理论、方法和应用,掌握VB程序应用于测绘专业的程序开发,理解程序设计在测绘数据处理中的作用和地位,学会利用模块化程序设计的基本技术,掌握面向对象程序设计方法,应用测绘专业的基本技能,测绘专业模块程序包开发的基本方法,为学习后续课程和专业技术工作打下基础。

使用计算机程序,处理测量数据,不但方便、快捷;而且准确、具有可重复性。

以简单的导线计算为例,一个简单的附合导线,采用手工计算不仅费时费力,而且常常出现数据抄录、计算等方面的错误。

而若采用相应的解算程序计算,仅需将原始数据输入,程序便可以自动进行一定的错误检查,并且迅速计算出准确结果。

例如,一个有12个点的附合导线的计算,采用手工计算,算”按钮的一秒。

又如,一个有几百个点的三角网的平差计算,用手工几乎无法完成,而利用计算机程序计算,仅仅是增加了数据导入的时间,解算的时间最多也不超过一分钟,并且计算结果可靠。

2实习仪器与软件

实习期间主要用到的器材软件:

电脑一台

VisualBasic(VB)6.0企业版,数据库软件Access、Office软件Word等。

2.1VisualBasic6.0

VB就是VisualBasic的意思,是一种常用的编程开发工具。

它的基础是编程语言Basic,VisualBasic简单点来说就是微软为了更好的让人们学习编程,应用上Basic开发语言的一套工具,简称就是VB。

VB的面世使原本极其复杂困难的编程、软件开发的工作变得简单。

最初的编程工作都是依靠全套的代码去进行的,工程量极大。

Microsoft就是看准了这个人们渴求快速发展软件开发行业的商机,利用自己的技术实力研发出VB这么一套完善的编程工具。

VB把过往的纯代码编程过度到可视化编程,将一些经常要使用到的功能以一个个的控件的形式出现,例如Label(标签)、TextBox(文本框)等等的。

他们在以前的编程工作中需要在使用时重复多次的输入同样的代码去实现这个功能,而这些代码去不是小工程,耗费了很大的人力物力和很多的时间。

所以有了VB之后,编程的工作也就可以普及啦,可以免去了机械的重复的代码的输入,又可以一面编辑核心功能一面进行界面优化美化,一劳多得啊。

  VB是Basic语言软件开发者的首选编译器,是学习Basic语言编程必须要接触而且是经常接触的一款整合型技术编译器。

VB的中心思想就是要便于程序员使用,无论是新手或者专家。

VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。

VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。

因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。

过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。

  窗体控件的增加和改变可以用拖放技术实现。

一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。

每个控件都有自己的属性和事件。

默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。

很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。

举个例子来说:

窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。

在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。

  VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。

有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。

  VB的组件既可以拥有用户界面,也可以没有。

这样一来服务器端程序就可以处理增加的模块。

  VB使用引用计数的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。

因为越来越多组建的出现,程序员可以选用自己需要的扩展库。

和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。

默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。

  VB使得大量的外界控件有了自己的生存空间。

大量的第三方控件针对VB提供。

VB也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。

编辑本段术语

  在讨论VisualBasic(不包含.NET)时,经常可以听到以下这些术语,因此掌握这些术语的基本理解对初学者十分有帮助。

  控件:

简单的说,控件就是构成或者说建造VisualBasic应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控件和图片控件等等……  事件:

由用户或操作系统引发的动作,例如击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制,或从端口接收数据。

  方法:

嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。

例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。

控件和窗体是VisualBasic中所有对象的示例。

  物件:

一个控件、窗体等都可被看作一个物件。

  过程:

为完成某些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。

  属性:

属性是组成用户界面的各对象的性质的具体描述。

例如上述“物件”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的属性。

属性决定物件的外观,有时也决定物件的行为。

物件的属性绝大部分是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.将数据导入到南方cass

4.把数据的x与y轴对调,利用数据批量处理(因为全站仪的数据坐标顺序不同)

5.根据草图和点号成图

4.掌握常用测绘专业软件的交换格式。

  

4实习内容

充分学习VB可视化编程以后,熟悉各种常用控件的使用。

再结合测量专业数据处理,编写全部或部分专业程序。

要求进行循序渐进的方式,先采用基本结构编写,在随后的课程学习当中,采用数组,函数,再生成数据文件格式,从低级到高级应用,最后通过窗体应用与函数的方法进行集成,将所有的实习最后集成到一个程序当中,使之进一步完善与改进等。

①坐标正反算

②简易水准平差

③简易导线计算

④交会测量程序

⑤集成化界面设计

(根据实际实习内容写)

5实习步骤

实习主要在北区机房内进行,主要按实习内容进行

5.1坐标正反算

坐标反算是根据已知点坐标,计算两点间距离和角度,正算公式为:

a为坐标方位角,S为两点的距离

公式分析:

从式上可以知道公式需要知道初始始坐标,距离和角度,即需要四个输入,若需要在一个函数中实现,返回值有二个,可以有二种方法

1.单个函数实现

FunctionDis2xy(ByValDisasDouble,ByValAngasDouble)asDouble

利用数据返回

EndFunction

2.两个函数实现

FunctionDis2xy(ByValDisasDouble,ByValAngasDouble,ByValFlagasInteger)asDouble

增加参数控制

EndFunction

5.2水准测量

四等水准测量记录表

测点

下丝

下丝

标尺读数

+

K

-红

 

高差

中数(m)

上丝

上丝

后视距

前视距

黑面

红面

视距差

∑d

1

(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容=正负40√L(mm)

Fh容=正负12√n(mm)

L——水准路线长度

n——测站数

公式分析:

从式上可以知道此题计算简单只是有点繁琐,需要耐心分析。

2.利用主要函数有:

Msgbos

根据已知的数据,计算后距视距差,前距,高差中数:

利用Function(byvalaasinteger,byvalaasinteger,byvalaasinteger,byvalaasinteger,byvalaasinteger,byvalaasinteger,byvalaasinteger)asdouble

计算出来

水准测量是用水准仪和水准尺测定地面上两点间高差的方法。

在地面两点间安置水准仪,观测竖立在两点上的水准标尺,按尺上读数推算两点间的高差。

通常由水准原点或任一已知高程点出发,沿选定的水准路线逐站测定各点的高程。

由于不同高程的水准面不平行,沿不同路线测得的两点间高差将有差异,所以在整理国家水准测量成果时,须按所采用的正常高系统加以必要的改正,以求得正确的高程。

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*cosаi

△yi=Di*sinа

b.坐标增量闭合差的计算与调整。

导线全长闭合差为fx=∑△xi-

fy=∑△yi

fD=sqr(fx*fx+fyfy*fy)

导线全长相对误差为:

K=f/∑D/Fd

不同等级的导线对K值得要求也不尽相同,其中图根导线要求K值不大于1/2000若K值超限,则需要检查观测数据或重新观测

坐标增量改正的计算Vxi+1=Xi+△Xxi+Vxi

yi+1=yi+△yi+Vyi

4.用改正后的坐标增量计算各个导线点的坐标

Xi+1=xi+△xi+vxi

Yi+1=yi+△yi+vyi

5.符合导线的坐标计算步骤与闭合导线相同,知识角度闭合差与坐标增量闭合差的计算稍有区别,具体公式如下:

fβ=a始+∑β左-n*180-a终

fx=∑△xi-(x终-x始)

fy=∑△yi-(y终-y始)

5.4集成化设计

集成化设计是基于并行工程思想的设计,它利用现代信息技术把传统产品设计强调产品设计及其过程同时交叉进行,减少设计过程的多次反复,力求使产品开发人员在设计一开始就考虑到产品整个生命周期中从概念形成到产品报废处理的所有因素,从而最大限度地提高设计效率、降低生产成本的设计方法。

 

5.4集成化设计

集成化设计就是把我们设计过的小程序全部都编辑到一个更全面的测量程序界面,把需要用的程序都编辑到一个菜单栏里,什么实习过的程序都有,比如有角度转换弧度,弧度转角度,三角高程测量的计算,任意三角形求面积等一些程序。

6实习总结

6.1实习问题总结

一、如何用VB启动其他程序或开启各类文件

要在VB中启动其他程序或开启各类文件,最简单的方法就是使用Shell函数,例如:

要开启C:

\Test.txt这个文字文件,则要启动记事本来开启这个文件案,程序如下:

 

DimRetValAsLong

RetVal=Shell("C:

\Windows\Notepad.exeC:

\Test.txt",3)

''3代表视窗会最大化,并具有驻点,细节请查Help

  以上的语法虽然很简单,但有一个风险,若是我们不知道开启文件的执行文件位置,则程序便会有错误产生,尤其一般软件在安装的时候都可以让使用者自行选择安装目录,所以执行文件的路径不能写死在程序中,要解决这个问题,就是在注册文件中找到该副文件名之启动程序位置,再放入Shell中。

  但是以上的作法必须熟悉注册文件,而且必须使用WindowsAPI来Call(注册文件的存取以后会有专文来说明),如果您对注册文件的存取及API的使用都很纯熟的话,当然没问题,但是有些人对于注册文件会有畏惧,这时候,您可以使用下面的方法:

Shell("StartC:

\Test.txt")

2.如何得到文件路径的文件名

DimsFilePathAsString

sFilePath="C:

\Windows\System\sytem.dll"

DimlGetLenAsLong,lNumAsLong

DimsGetFileAsString,sTempAsString

lGetLen=Len(sFilePath)''得到文件路径长度

sTemp=lGetLen

ForlNum=1TolGetLen

IfLeft(sGetFile,1)="\"ThenExitFor

sGetFile=Mid(sFilePath,sTemp,lNum)

sTemp=sTemp-1

NextlNum

sGetFile=Mid(sGetFile,2)''得到文件名

MsgBoxsGetFile

3.在TextBox中如何限制只能输入数字?

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

SelectCaseKeyAsciiCase48To57

CaseElseKeyAscii=0

EndSelect

EndSub

3.我们在VB的程序中要如何判断,目前文件资源管理器中的设定是否显示扩展文件名呢?

PrivateDeclareFunctionGetFileTitleLib"comdlg32.dll"Alias"GetFileTitleA"(ByVallpszFileAsString,ByVallpszTitleAsString,ByValcbBufAsInteger)AsInteger

PrivateFunctionHasExtension(sFileNameAsString)AsLong

DimsTempAsString

DimlTempAsLong

sTemp=String(1,0)

lTemp=GetFileTitle(sFileName,sTemp,Len(sTemp))

IflTemp<0ThenHasExtension=-1:

ExitFunction

sTemp=String(lTemp,0)

CallGetFileTitle(sFileName,sTemp,Len(sTemp))

If(Left$(Right$(Left$(sTemp,lTemp-1),4),1))="."Then

HasExtension=1

Else

HasExtension=0

EndIf

EndFunction

若有显示扩展文件名,返回值是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实际编程中.调试程序几乎没有什么规律可循.我们只要透彻

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

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

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