VB程序测量

合集下载

VB测量平差程序设计讲稿

VB测量平差程序设计讲稿

Case 0 '读入观测值文件Text1.Visible = FalseCommonDialog1.ShowOpenfname = CommonDialog1.FileName '将用户在"打开"对话框中选择的文件名对变量fname赋值If fname <> "" Then '若无此判断当对话框中选择取消时、下面赋值语句将出错Set ts = fso.OpenTextFile(fname) '将fname作为文本文件打开,并设置句柄j = 0: k = 0: p = 0: h = 0'j是测站数累计变量,k是已知点累计变量,l(j)、ns(j)分别是方向值、边长累积计数Do While ts.AtEndOfLine <> True '前测型循环,进入循环的条件是没有读到文件结束尾B = ts.ReadLine '读一行,置入bB = Trim(B): i = 1: '删除B可能有的前导和尾随空格,i是工作变量,m(i) = InStr(B, ",") '查行中第一个逗号的左数位置,并保存在整形数组变量m(i)Do While m(i) <> 0 '前测型Do... Loop循环,成立条件是该行字符串中有逗号tr(i) = Mid(B, m(i - 1) + 1, m(i) - m(i - 1) - 1) '提取指定位置开始的指定数目字符。

i = i + 1m(i) = InStr(m(i - 1) + 1, B, ",") '从上一个找到的逗号位置起,查找下一个逗号的位置LoopIf m(i) = 0 And i > 1 Then tr(i) = Right(B, Len(B) - m(i - 1)) '处理一行中最后一个逗号后的字符串'以下部分是将存储在数组变量m(i)中的字符分类存放到方向、边长、已知坐标、网型信息等数组中If p = 0 Then '读到的是文件第一行。

基于VB语言的施工测量应用程序设计

基于VB语言的施工测量应用程序设计
ormalFocus End Sub Private Sub dxjspc_Click() Shell App.Path & "\DATA\pc\ 导 线 近 似 平 差 计 算 .EXE", vbNormalFocus End Sub Private Sub fhdxpc_Click() Shell App.Path & "\DATA\pc\ 附合导线平差 .EXE", vbNormalFocus End Sub Private Sub Form_Load() mnuopen.Enabled = False mnusave.Enabled = False
Shell App.Path & "\DATA\qt\ 位于圆曲线斜交盖梁 长度和两端点桩号及座标计算 .EXE", vbNormalFocus End Sub Private Sub hgljs_Click() Shell App.Path & "\DATA\qt\ 缓和曲线盖梁长度计 算 .EXE", vbNormalFocus End Sub Private Sub hpjs_Click() Shell App.Path & "\DATA\lx\ 高速公路超高横坡计 算 .EXE", vbNormalFocus End Sub Private Sub jyszpc_Click() Shell App.Path & "\DATA\pc\ 简易水准平差 .EXE", vbNormalFocus End Sub Private Sub LXSJPC1_Click() Shell App.Path & "\DATA\zh\ 菱 形 三 角 平 差 (1). EXE", vbNormalFocus End Sub Private Sub LXSJPC2_Click() Shell App.Path & "\DATA\zh\ 菱 形 三 角 平 差 (2). EXE", vbNormalFocus End Sub Private Sub mnuaboat_Click() frmAbout.Show 1 End Sub Private Sub mnuend_Click() End End Sub Private Sub pqxjs_Click() Shell App.Path & "\DATA\lx\ 平 曲 线 计 算 .EXE", vbNormalFocus End Sub Private Sub razhrjs_Click() Shell App.Path & "\DATA\qt\ 卵形线与钻桩或路基 计算 .EXE", vbNormalFocus End Sub Private Sub sbspc_Click() Shell App.Path & "\DATA\pc\ 三 边 锁 严 密 条 件 平 差 .EXE", vbNormalFocus End Sub Private Sub sjspc_Click() Shell App.Path & "\DATA\pc\ 三角锁严密平差 .EXE", vbNormalFocus

基于VB的测量数据有效数字取位程序开发

基于VB的测量数据有效数字取位程序开发

基于VB的测量数据有效数字取位程序开发摘要:测量数据的有效数字取位时存在舍入问题,合理的舍入法则会减小误差,同时本文根据测量数据量大的特点开发了批量处理的程序。

abstract: effective digital position of measurement data has rounding problems. reasonable rounding rules will reduce the error. this paper develops batch processing program of measurement data according to the characteristics of the large amount of measured data.关键词: vb开发;有效数字取位;测量数据key words: vb development;effective digital position;measurement data中图分类号:tp311.1 文献标识码:a 文章编号:1006-4311(2013)24-0174-020 引言实际测量工作中经常遇到测量与计算结果数据有效数字的取位问题,取位时会引入误差,若舍入得当则此误差就会变小。

同时由于测量数据量的较大,若单数据进行手工取位则是一项较为繁琐且易出错的过程,因此本文针对此问题进行了程序的开发可以对测量数据进行批量的处理。

1 数据舍入法则1.1 “四舍五入”法则“四舍五入”法则规定,有效数字右一位为4或者小于4时则舍去,有效数字右一位为5或者大于5时则进1。

如数字3.145,若要求保留两位有效数字,由于有效数字右一位为4则取位后为3.1;若要求保留三位有效数字,由于有效数字右一位为5,则取位后为3.15。

但是由于测量数据的特殊性,在其取位时一般不采用此法则而是采用“四舍六入尾留双”法则。

1.2 “四舍六入尾留双”法则此法则为国家科技部推荐使用的,其要点有:a、有效数字右一位为4或者小于4时则舍去,如数字5.532,若保留两位有效数字,取位后为5.5;b、有效数字右一位为6或者大于6时则进1,如数字7.378,若保留三位有效数字,取位后为7.38;c、有效数字右第一位为5,后面的数字不全为0时则进1,如数字7.452,若保留两位有效数字,取位后为7.5;d、有效数字右第一位为5,后面的数字全为0时,则有效位最后一位为奇数时则进1,若有效位最后一位为偶数时(包括0)则舍去,如数字8.35,若保留两位有效数字,取位后为8.4;数字8.25,若保留两位有效数字,取位后为8.2。

vb测量常用程序

vb测量常用程序

'Excel中VBA测量程序集'“度分秒”为单位的角度转化为“弧度”为单位的角度Public Function dufenmiao_hu(D As Double) As DoubleDim du As DoubleDim fen As DoubleDim miao As DoubleDim hu As Doubledu = Int(D)fen = Int((D - Int(D)) * 100)miao = (D * 100 - Int(D * 100)) * 100dufenmiao_hu = (du + fen / 60 + miao / 3600) * 3.14159265358979 / 180End Function'“度”为单位的角度转化为“弧度”为单位的角度Public Function du_hu(du As Double) As Doubledu_hu = du * 3.14159265358979 / 180End Function ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'坐标系正转化X坐标'c为新坐标系的原点在旧坐标系的X坐标,d为新坐标系的原点在旧坐标系的Y坐标,U 为新坐标系的X轴在旧坐标系中的方位角,单位为“度”,'A为转化点在旧坐标系中的X坐标,B为转化点在旧坐标系中的Y坐标,QD_ZH为新坐标系的原点的施工桩号。

Public Function zuobiaoxi_zhuanhua_x(C As Double, D As Double, U As Double, A As Double, B As Double, QD_ZH As Double) As DoubleU = U * 3.14159265358979 / 180zuobiaoxi_zhuanhua_x = (A - C) * Cos(U) + (B - D) * Sin(U) + QD_ZHEnd Function'坐标系正转化Y坐标'c为新坐标系的原点在旧坐标系的X坐标,d为新坐标系的原点在旧坐标系的Y坐标,U 为新坐标系的X轴在旧坐标系中的方位角,单位为“度”,'A为转化点在旧坐标系中的X坐标,B为转化点在旧坐标系中的Y坐标。

VB测绘程序设计课程教学研究

VB测绘程序设计课程教学研究

随着 数 字 化 测 绘 技 术 的发 展 , 测 绘 数 据 的 后 期
处理 手段 也 发 生 了 重 大 变革 , 用 程 序 运算 来 代 替 传
统 的手 工计 算 是 勿 庸 置 疑 的 , 所 以 许 多 院 校 的 测 绘 类专 业也 随之 开设 了相 关计 算 机程 序 设计 方 面 的课 程—— 《 V i s u a l B a s i c 测 绘 程 序设 计 》 。 因此 , 如 何 提
白君 芬
( 甘 肃工业 职业技 术 学 院 电信 学院 , 甘肃 天水
7 4 1 0 2 5 )
摘要: 对 当前 V i s u a l B a s i c测绘 程序 设计 课程 教 学进行 现 状 调 查 的基 础 上 , 分析 了 V i s u a l B a s i c测绘
程 序设 计课 程教 学 中所存在 的 主要 问题 , 探 索并提 出了解决 问题 的有 效方 法。 关键 词 : V i s u a l B a s i c ;测绘 程序 ;问题分析 ;教 学探 索 中图分 类号 : G 6 4 2 . 0 文献 标识 码 : B 文章 编号 : 1 0 0 1 — 3 5 8 X( 2 0 1 4 ) 0 1 — 0 1 0 6— 0 3 起 来很 困难 , 学生 普遍 有畏 难 心 理 , 甚 至 有 的学 生会
出现厌 学 、 弃 学等 现象 。
1 . 3 师资 问题
V B测 绘程 序 设计 课 程 在 客 观上 要 求 授 课 教 师
不 仅必须 具 有深厚 的 V B编 程 的功底 , 而且 还要 具有
高本 课 程 的教 学 效 果 与 教学 质 量 , 如何 培养 出 符 合
职业 岗位需 求 、 服 务 于测 绘 生 产 第 一 线 的技 术 应 用 型人 才 , 是V i s u a l B a s i c ( 以下 简称 V B ) 测 绘 程 序 设

VB测量程序设计

VB测量程序设计

实验报告课程名称:测量程序设计任课老师:段伟姓名:王森学号:1476210082016年12月24日综合实验设计:窗体及代码如下7Part1:封面代码:Private Sub Timer1_Timer()Label1.Left = Label1.Left + 100If Label1.Left + Label1.Width > frmCover.Width ThenTimer2.Enabled = True: Timer1.Enabled = FalseEnd IfEnd SubPrivate Sub Timer2_Timer()Label1.Left = Label1.Left - 100If Label1.Left < 0 ThenTimer1.Enabled = True: Timer2.Enabled = FalseEnd IfEnd SubPrivate Sub Timer3_Timer()Label7.Caption = NowEnd SubPrivate Sub cmdEnter_Click()If i > 2 ThenMsgBox "您已输错密码超过三次,程序将关闭!", , "输入次数超限"EndEnd IfIf txtUserName.Text = "admire" And txtPassWord.Text = "1111" ThenFormMain.Show: Unload MeElseMsgBox "密码错误,请从新输入!" & vbCrLf & "还有" & Str(4 - i) & "次机会!", , "密码错误"txtPassWord.Text = "": txtPassWord.SetFocus: i = i + 1End IfEnd SubPrivate Sub cmdExit_Click() EndEnd SubPart2:主函数代码:Private Sub cmdExit_Click() EndEnd SubPrivate Sub cmdH_Click() FormMain.Hide: frmH.Show End SubPrivate Sub cmdqh_Click() FormMain.Hide: frmqh.Show End SubPrivate Sub cmdS_Click() FormMain.Hide: frmMain.Show End SubPart3:方位角计算Dim iRound%, dblAngle() As Double, n%Const PI = 3.14159265Private Sub Command1_Click()Dim duLA%, fenLA%, miaoLA%, duLB%, fenLB%, miaoLB%, duRA%, fenRA%, miaoRA%, duRB%, fenRB%, miaoRB%Dim duHAL%, fenHAL%, miaoHAL%, duHAR%, fenHAR%, miaoHAR%, duWH%, fenWH%, miaoWH%Dim halfL As Double, halfR As Double, angle As DoubleduLA = Val(Text1.Text)fenLA = Val(Text2.Text)miaoLA = Val(Text3.Text)duLB = Val(Text4.Text)fenLB = Val(Text5.Text)miaoLB = Val(Text6.Text)duRA = Val(Text7.Text)fenRA = Val(Text8.Text)miaoRA = Val(Text9.Text)duRB = Val(Text10.Text)fenRB = Val(Text11.Text)miaoRB = Val(Text12.Text)halfL = (duLB - duLA) + (fenLB - fenLA) / 60 + (miaoLB - miaoLA) / 3600halfR = (duRB - duRA) + (fenRB - fenRA) / 60 + (miaoRB - miaoRA) / 3600If Abs(halfL - halfR) * 3600 > 40 ThenMsgBox "半测回差超限,请检查观测和输入是否正确!", , "角差超限"Exit SubEnd Ifangle = (halfL + halfR) / 2duHAL = Int(halfL)halfL = (halfL - duHAL) * 60fenHAL = Int(halfL)halfL = (halfL - fenHAL) * 60miaoHAL = Int(halfL + 0.5)duHAR = Int(halfR)halfR = (halfR - duHAR) * 60fenHAR = Int(halfR)halfR = (halfR - fenHAR) * 60miaoHAR = Int(halfR + 0.5)duWH = Int(angle)angle = (angle - duWH) * 60fenWH = Int(angle)angle = (angle - fenWH) * 60miaoWH = Int(angle + 0.5)Text13.Text = Str(duHAL)Text14.Text = Str(fenHAL) Text15.Text = Str(miaoHAL) Text16.Text = Str(duHAR)Text17.Text = Str(fenHAR) Text18.Text = Str(miaoHAR) Text19.Text = Str(duWH)Text20.Text = Str(fenWH)Text21.Text = Str(miaoWH) End SubPrivate 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 = ""Text15.Text = ""Text16.Text = ""Text17.Text = ""Text18.Text = ""Text19.Text = ""Text20.Text = ""Text21.Text = ""Text1.SetFocusEnd SubPrivate Sub Command3_Click() EndEnd SubPrivate Sub Command4_Click() n = Val(Text22.Text)ReDim dblAngle(1 To n) As DoubleCommand2_ClickiRound = iRound + 1Label28.Visible = TrueLabel28.Caption = "正在输入第1个测回,共" & Trim(Str(n)) & "个。

用VB开发测量应用程序的经验总结

用VB开发测量应用程序的经验总结
2 数据库管理系统 (DBMS) 的选择 、数据库的操作和数据库
格式的转换 测量软件系统一般都要处理大量的原始数据 ,处理的结果
有可能会生成另外一批数据 。因此 ,数据的存储方式是一个重 要环节 。如果我们采用文本文件或自定义格式存储数据 ,则由 于数据的读取格式缺乏通用性 ,难以在各种不同的平台上共享 数据资源 ,也给资料的管理和检索带来困难 。另外 ,好的存储 方式也会给编程带来极大的方便 ,所以我们必须仔细选择数据 管理系统 (DBMS) 。 2. 1 数据库管理系统 (DBMS) 的选择
用 VB 代码创建 Access 数据库大致分两步[4 ] : 第一步 :使用 Create Database () 函数创建历史数据外壳 , (如 : Dim Mydb as Database ’定义数据库对象变量 Set Mydb = Create Database “( c : \ Pat h \ xxx. mdb”) ’在指 定路径创建数据库 3 . mdb 第二步 :创建数据库内部结构 - 创建表和索引及相应的表 集 ( Table Defs) 、索引集和字段集 ,如 : Dim Mytd as New TableDef ’定义新表对象变量 Dim Myfid as New Field ’定义新字段对象变量 Sub Create Table (Byval TableName as String) Mytd. name = TableName ’表名
Select Case MSComm1. CommEvent
Case ComEvReceive Data1 = MSComm1. Input ’读取传输数据
Print # 1 ,Data1 ; ……
End Sub 另外此传输程序还根据 GRE4 数据格式的特点进行了一 些特殊处理 : ①波特率不能设置得过高 ,以2 400波特为宜 ; ②由 于记录测站信息及镜高的编码记录与测量记录长度不一致 ,且 编码记录是在野外数据采集时 ,根据不同的测站和不同的镜高 而随机输入的 ,因此 ,传输时一次读取的数据长度不能设置为 一固定值 ,也没有规律来改变一次读取的数据长度 。若阀值设 置成一固定长度 ,一是不能保证每次读取的数据恰好是一条编 码记录或测量记录 ,这给以后的数据处理带来不便 ;二是很难 保证读取的最后一串字符是“ ! - - ( + ”(文件结束符) ,因而 MSComm 控件的 CommEvent 属性不会出现 comEvEOF (收到 文件结束符) 值 ,即检测不到文件结尾 。为解决这个问题 Байду номын сангаас把 Rt hreshold 设置成 1 ,当读取到“ !”字符时传输结束 。

VB语言与测量程序设计试卷A.doc

VB语言与测量程序设计试卷A.doc

一、单项选择题1. 在设计阶段,当双击窗体上的某个控件时,所打开的窗口是( C )(A)工程资源管理器窗口(B)工具箱窗口(C)代码窗口(D)属性窗口2. 有程序代码如下:text1.text=“visual basic”则:text1、text和“visual basic”分别代表( C )(A)对象,值,属性(B)对象,方法,属性(C)对象,属性,值(D)属性,对象,值3.以下各表达式中, 计算结果为0的是(D )(A)INT(12.4)+INT(-12.6) (B)CINT(12.4)+CINT(-12.6)(C)FIX(13.6)+FIX(-12.6) (D)FIX(12.4)+FIX(-12.6)4. 确定一个控件在窗体上的位置的属性是( C )(A)Width和Height (B)Width或Height(C)Top和Left (D)Top或Left5.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()x=InputBox("Input")Select Case xCase 1,3Print "分支 1"Case Is >4Print "分支 2"Case ElsePrint "Else 分支 "End SelectEnd Sub程序运行后,如果在输入对话框中输入2,则窗体上显示的是(C )(A)分支1 (B)分支2(C)Else分支(D)程序出错6. 以下叙述中正确的是( A )(A)窗体的Name属性指定窗体的名称,用来标识一个窗体(B)窗体的Name属性的值是显示在窗体标题栏中的文本(C)可以在运行期间改变对象的Name属性的值(D)对象的Name属性值可以为空7. 若要设置标签的背景颜色,使用的属性是( B )(A)Color (B)BackColor (C)ForeColor (D)FontBold8.下面是合法的变量名( A )(A)X_yz (B)123abc (C)integer (D)X#Y9. 表达式16/4-2^5*8/4 mod 5\2的值为( D )(A)14 (B)4 (C)20 (D)210. 已知A$=”12345678”,则表达式Val(Left$(A$,4)+Mid$(A$,4,2))的值为( B )(A)123456 (B)123445 (C)1279 (D)”123445”11.以下关于文件的叙述中,错误的是 (B)(A )顺序文件中的记录一个接一个地顺序存放(B )随机文件中记录的长度是随机的(C )执行打开文件的命令后,自动生成一个文件指针 (D )LOF 函数返回给文件分配的字节数 12.设x=4,y=8,z=7,以下表达式的值是 (D)x<y And (Not y>z) Or z<x(A )1 (B )-1 (C )True(D )False13.代数式dc a c ba +++ln 的Visual Basic 表达式是(D )(A )a+b/sqr(c+Log(a))+c/d (B )(a+b)/(Abs(c+Log(a))+c/d) (C )a+b/(Abs(c+Log(a))+c/d)(D )(a+b)/(sqr(c+Log(a))+c/d)14.在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:Option Base 1Private Sub Command1_Click()Dim a As Variant a=Array(1,2,3,4,5) Sum=0 For i=1 To 5 Sum = sum+a(i) Next i x=Sum/5 For i =1 To 5If a(i)>x Then Print a(i); Next i End Sub程序运行后,单击命令按钮,在窗体上显示的内容是 ( B ) (A )1 2 (B )4 5 (C )1 2 3(D )3 4 515. 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() a=InputBox(“请输入第一个数”) b=InputBox(“请输入第二个数”) Print b+a End Sob程序运行后,单击命令按钮,先后在两个输入框中分别输入456和123,则输出结果是 ( D ) (A )579 (B )123 (C )456 (D )12354616. VB 提供了结构化程序设计的三种基本结构是 ( D )(A )递归结构、选择结构、循环结构 (B )选择结构、过程结构、顺序结构 (C )过程结构、输入、输出结构、转向结构(D )选择结构、循环结构、顺序结构17. 要分配存放如下方阵⎪⎪⎪⎭⎫ ⎝⎛9.9 8.8 7.7 6.6 5.5 4.4 3.3 2.2 1.1,可使用声明语句 来实现(不能浪费空间) ( c ) (A )Dim a(9) as single (B )Dim a(3,3) as single(C )Dim a(-1 to 1,-5 to -3) as single (D )Dim a(-3 to -1,5 to 7) as integer18. 数组声明语句Dim a(3,-2 to 2,5) as integer 中,数组a 包含的元素个数为 ( A ) (A )120 (B )75 (C )60 (D )1319. 计时器控件,如果希望每秒产生10个事件,则要将Interval 属性的值设置为 ( C )(A )1 (B )10 (C )100 (D )1000 20.在窗体上画一个文本框,再编写如下事件过程: Private Sub Text1_KeyPress(KeyAscii as integer) Dim ch as string Ch=Chr(KeyAscii) KeyAscii=ASC(Ucase(ch)) Text1.Text=string(6, KeyAscii) End Sub程序运行后,如果在键盘上输入字母”a ”,则文本框中显示的内容为 ( D ) (A )a (B )A (C )aaaaaaa (D )AAAAAAA二、填空题(每题3分,本题满分12分)21.下列循环语句控制的循环次数为 0 FOR K=1 TO 10 STEP –122.为了选择多个控件,可以按住 CTrl 键,然后单击每个控件。

基于VB的测量数据有效数字取位程序开发

基于VB的测量数据有效数字取位程序开发

基于VB的测量数据有效数字取位程序开发作者:唐博来源:《价值工程》2013年第24期摘要:测量数据的有效数字取位时存在舍入问题,合理的舍入法则会减小误差,同时本文根据测量数据量大的特点开发了批量处理的程序。

Abstract: Effective digital position of measurement data has rounding problems. Reasonable rounding rules will reduce the error. This paper develops batch processing program of measurement data according to the characteristics of the large amount of measured data.关键词: VB开发;有效数字取位;测量数据Key words: VB development;effective digital position;measurement data中图分类号:TP311.1 文献标识码:A 文章编号:1006-4311(2013)24-0174-020 引言实际测量工作中经常遇到测量与计算结果数据有效数字的取位问题,取位时会引入误差,若舍入得当则此误差就会变小。

同时由于测量数据量的较大,若单数据进行手工取位则是一项较为繁琐且易出错的过程,因此本文针对此问题进行了程序的开发可以对测量数据进行批量的处理。

1 数据舍入法则1.1 “四舍五入”法则“四舍五入”法则规定,有效数字右一位为4或者小于4时则舍去,有效数字右一位为5或者大于5时则进1。

如数字3.145,若要求保留两位有效数字,由于有效数字右一位为4则取位后为3.1;若要求保留三位有效数字,由于有效数字右一位为5,则取位后为3.15。

但是由于测量数据的特殊性,在其取位时一般不采用此法则而是采用“四舍六入尾留双”法则。

vb水准

vb水准

导线测量平差水准测量平差VB程序导线测量, 水准测量, 程序符合导线平差程序如下:Const pi As Double = 3.14159265358979 Private Sub Command1_Click() Form8.Hide mj = Val(Text1.Text) If list1.Text = "等精度" Then ma = Val(Text2.Text) mb = Val(Text3.Text) End If If Opt1.Value Then ij = 1 ElseIf Opt2.V alue Then ij = Val(Text4.Text) End If CommonDialog1.ShowOpen On Error GoTo errorhandler Open CommonDialog1.FileName For Input As #1 If Form8.Caption = "闭合导线" Then Input #1, bi1, bi2 End If Dim a1() Do n1 = n1 + 1 ReDim Preserve a1(1 To n1) Input #1, a1(n1) Loop Until Left(a1(n1), 1) = "*" n1 = (n1 - 1) / 3 ReDim Preserve a1(1 To 3 * n1) Dim c() Do t = t + 1 ReDim Preserve c(1 To t) Input #1, c(t) Loop Until Left(c(t), 1) = "*" t = t - 1 ReDim Preserve c(1 To t) Dim b1() If list1.Text = "等精度" Then '等精度时,取角度和距离观测值Do n2 = n2 + 1 ReDim Preserve b1(1 To n2) Input #1, b1(n2) Loop Until Left(b1(n2), 1) = "*" n2 = (n2 - 1) / 4 ReDim Preserve b1(1 To 4 * n2) Dim d1() Do While Not EOF(1) n3 = n3 + 1 ReDim Preserve d1(1 To n3) Input #1, d1(n3) Loop n3 = n3 / 3 ElseIf list1.Text = "不等精度" Then '不等精度时,取角度和距离观测值以及中误差Dim b5() Do n2 = n2 + 1 ReDim Preserve b1(1 To 4 * n2), b5(1 To n2) Input #1, b1(4 * n2 - 3), b1(4 * n2 - 2), b1(4 * n2 - 1), b1(4 * n2), b5(n2) Loop Until Left(b1(4 * n2 - 3), 1) = "*" Dim d4() ReDim d1(1 To 3), d4(1 To 1) d1(1) = b1(4 * n2 - 2): d1(2) = b1(4 * n2 - 1) d1(3) = b1(4 * n2): d4(1) = b5(n2) n2 = n2 - 1 ReDim Preserve b1(1 To 4 * n2), b5(1 To n2) n3 = n3 + 1 Do While Not EOF(1) n3 = n3 + 1 ReDim Preserve d1(1 To 3 * n3), d4(1 To n3) Input #1, d1(3 * n3 - 2), d1(3 * n3 - 1), d1(3 * n3), d4(n3) Loop End If Close #1 n6 = 0 Dim ax1() If Form8.Caption = "附有条件的导线网" Then '如是附有条件的导线,取条件CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #2 Do While Not EOF(2) n6 = n6 + 1 ReDim Preserve ax1(1 To n6) Input #2, ax1(n6) Loop n6 = n6 / 4 Close #2 End If For i = 1 To n2 If b1(4 * i - 3) Like b1(4 * i - 2) Or b1(4 * i - 3) Like b1(4 * i - 1) Or b1(4 * i - 2) Like b1(4 * i - 1) Then MsgBox "角度观测中,第" & i & "行存在重复点名!", , "错误" Exit Sub End If Next For i = 1 To n3 If d1(3 * i - 2) Like d1(3 * i - 1) Then MsgBox "边长观测中,第" & i & "行存在重复点名!", , "错误" Exit Sub End If Next Dim b11(), d11() ReDim b11(1 To 4 * n2), d11(1 To 3 * n3) For i = 1 To n2 For i1 = 1 To t If b1(4 * i - 3) Like c(i1) Then b11(4 * i - 3) = i1 + n1 GoTo 1 End If Next For i1 = 1 To n1 If b1(4 * i - 3) Like a1(3 * i1 - 2) Then b11(4 * i - 3) = i1 GoTo 1 End If Next int8 = MsgBox("角度观测中,第" & i & "行存在错误测站点" & b1(4 * i - 3) & "!", , "错误!") If int8 = vbOK Then Exit Sub 1: For i1 = 1 To t If b1(4 * i - 2) Like c(i1) Then b11(4 * i - 2) = i1 + n1 GoTo 2 End If Next For i1 = 1 To n1 If b1(4 * i - 2) Like a1(3 * i1 - 2) Then b11(4 * i - 2) = i1 GoTo 2 End If Next int8 = MsgBox("角度观测中,第" & i & "行存在错误后视点" & b1(4 * i - 2) & "!", , "错误!") If int8 = vbOK Then Exit Sub 2: For i1 = 1 To t If b1(4 * i - 1) Like c(i1) Then b11(4 * i - 1) = i1 + n1 GoTo 3 End If Next For i1 = 1 To n1 If b1(4 * i - 1) Like a1(3 * i1 - 2) Then b11(4 * i - 1) = i1 GoTo 3 End If Next int8 = MsgBox("角度观测中,第" & i & "行存在错误前视点" & b1(4 * i - 1) & "!", , "错误!") If int8 = vbOK Then Exit Sub 3: b11(4 * i) = b1(4 * i) Next For i = 1 To n3 For i1 = 1 To t If d1(3 * i - 2) Like c(i1) Then d11(3 * i - 2) = i1 + n1 GoTo 4 End If Next For i1 = 1 To n1 If d1(3 * i - 2) Like a1(3 * i1 - 2) Then d11(3 * i - 2) = i1 GoTo 4 End If Next int8 = MsgBox("边长观测中,第" & i & "行存在错误点" & d1(3 * i - 2) & "!", , "错误!") If int8 = vbOK Then Exit Sub 4: For i1 = 1 To t If d1(3 * i - 1) Like c(i1) Then d11(3 * i - 1) = i1 + n1 GoTo 5 End If Next For i1 = 1 To n1 If d1(3 * i - 1) Like a1(3 * i1 - 2) Then d11(3 * i - 1) = i1 GoTo 5 End If Next int8 = MsgBox("边长观测中,第" & i & "行存在错误点" & d1(3 * i - 1) & "!", , "错误!") If int8 = vbOK Then Exit Sub 5: d11(3 *i) = d1(3 * i) Next Dim x0() If Form8.Caption = "附合导线" Then ReDim x0(1 To 2 * t + 2) x0() = 附合导线(a1(), b11(), d11(), t) fx = x0(2 * t + 1) '坐标闭合差fy = x0(2 * t + 2) fs = Sqr(fx * fx + fy * fy) fx = Format(fx * 100, "0.0") fy = Format(fy * 100, "0.0") s = 0 For i = 1 To n3 '全长相对闭合差s = s + d1(3 * i) Next fs = Int(s / fs) For i = 1 To n2 '方位闭合差If b11(4 * i - 3) <= n1 And b11(4 * i - 2) <= n1 Then i1 = b11(4 * i - 3): i2 = b11(4 * i - 2) x1 = a1(3 * i1 - 1): y1 = a1(3 * i1) x2 = a1(3 * i2 - 1): y2 = a1(3 * i2) aq = xlu(x2, y2, x1, y1) ElseIf b11(4 * i - 3) <= n1 And b11(4 * i - 1) <= n1 Then i1 = b11(4 * i - 3): i2 = b11(4 * i - 1) x1 = a1(3 * i1 - 1): y1 = a1(3 * i1) x2 = a1(3 * i2 - 1): y2 = a1(3 * i2) az = xlu(x1, y1, x2, y2) End If bb = bb + hu(b1(4 * i)) Next bb = (aq + bb - n2 * pi - az) * 206264.806247096 bb = Format(bb, "0.00") bb1 = mj * Sqr(n2) bb1 = Format(bb1, "0.00") ReDim Preserve x0(1 To 2 * t) ElseIf Form8.Caption = "闭合导线" Then ReDim x0(1 To 2 * t + 2) x0() = 附合导线(a1(), b11(), d11(), t) fx = x0(2 * t + 1) '坐标闭合差fy = x0(2 * t + 2) fs = Sqr(fx * fx + fy * fy) fx = Format(fx * 100, "0.0") fy = Format(fy * 100, "0.0") s = 0 For i = 1 To n3 s = s + d1(3 * i) Next fs = Int(s / fs) For i = 1 To n2 bb = bb + hu(b1(4 * i)) Next If bi1 = 0 Then '方位闭合差If bi2 = 0 Then bb = (bb - (n2 - 2) * pi) * 206264.806247096 ElseIf bi2 = 1 Then bb = (bb - (n2 + 2) * pi) * 206264.806247096 End If ElseIf bi1 = 1 Then For i = 1 To n2 If b11(4 * i - 3) <= n1 And b11(4 * i - 2) <= n1 Then i1 = b11(4 * i - 3): i2 = b11(4 * i - 2) x1 = a1(3 * i1 - 1): y1 = a1(3 * i1) x2 = a1(3 * i2 - 1): y2 = a1(3 * i2) aq = xlu(x2, y2, x1, y1) End If Exit For Next If bi2 = 0 Then bb = (bb - aq - (n2 - 3) * pi) * 206264.806247096 ElseIf bi2 = 1 Then bb = (bb - aq - (n2 + 1) * pi) * 206264.806247096 End If End If bb1 = mj * Sqr(n2) bb1 = Format(bb1, "0.00") ReDim Preserve x0(1 To 2 * t) ElseIf Form8.Caption = "导线网平差" Then ReDim ax1(0) ReDim x0(1 To 2 * t) x0() = 导线网(a1(), b11(), d11(), ax1(), t) Else ReDim x0(1 To 2 * t) x0() = 导线网(a1(), b11(), d11(), ax1(), t) End If mj1 = mj For ii = 1 To ij Dim b2(), l2(), p() ReDim Preserve b2(1 To n2, 1 To 2 * t), l2(1 To n2), p(1 To n2 + n3) l2() = 角常系数1(a1(), b11(), x0()) b2() = 方系数2(a1(), b11(), x0()) Dim b3(), l3() ReDim b3(1 To n3, 1 To 2 * t), l3(1 To n3) b3() = 边系数2(a1(), d11(), x0()) l3() = 边常数项1(a1(), d11(), x0()) Dim b(), l() ReDim Preserve b(1 To n2 + n3, 2 * t), l(1 To n2 + n3) For j = 1 To 2 * t For i = 1 To n2 If b2(i, j) = "" Then b2(i, j) = 0 End If b(i, j) = 10 ^ 4 * b2(i, j) / 206264.806247096 If list1.Text = "等精度" Then p(i) = 1 ElseIf list1.Text = "不等精度" Then p(i) = mj1 * mj1 / (b5(i) * b5(i)) End If l(i) = 10 ^ 4 * l2(i) / 206264.806247096 Next For i = 1 To n3 If b3(i, j) = "" Then b3(i, j) = 0 End If b(i + n2, j) = b3(i, j) If list1.Text = "等精度" Then p(i + n2) = 2350.4 * mj1 * mj1 / ((ma + mb * d1(3 * i) / 1000) * (ma + mb * d1(3 * i) / 1000)) ElseIf list1.Text = "不等精度" Then p(i + n2) = 2350.4 * mj1 * mj1 / (d4(i) * d4(i)) End If l(i + n2) = l3(i) Next Next If Form8.Caption = "附有条件的导线网" Then '如是附有条件的导线,计算系数Dim ax(), lx() ReDim ax(1 To 2 * t, 1 To n6), lx(1 To n6) For i = 1 To n6 For i1 = 1 To n1 If ax1(4 * i - 3) Like a1(3 * i1 - 2) Then x1 = a1(3 * i1 - 1): y1 = a1(3 * i1) GoTo 111 End If Next i1 = i1 - 1 For i2 = 1 To t If ax1(4 * i - 3) Like c(i2) Then x1 = x0(2 * i2 - 1): y1 = x0(2 * i2) GoTo 111 End If Next 111: For i3 = 1 To n1 If ax1(4 * i - 2) Like a1(3 * i3 - 2) Then x1 = a1(3 * i3 - 1): y1 = a1(3 * i3) GoTo 112 End If Next i3 = i3 - 1 For i4 = 1 To t If ax1(4 * i - 2) Like c(i4) Then x2 = x0(2 * i4 - 1): y2 = x0(2 * i4) GoTo 112 End If Next 112: ss1 = Sqr((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) x3 = x2 - x1: y3 = y2 - y1 If ax1(4 * i) = 0 Then '如是方位角时,计算系数lx(i) = 10000 * (xlu(x1, y1, x2, y2) - hu(ax1(4 * i - 1))) If ax1(4 * i - 3) <> a1(3 * i1 - 2) Then ax(2 * i2 - 1, i) = 10000 * y3 / (ss1 * ss1) ax(2 * i2, i) = -10000 * x3 / (ss1 * ss1) End If If ax1(4 * i - 2) <> a1(3 * i3 - 2) Then ax(2 * i4 - 1, i) = -10000 * y3 / (ss1 * ss1) ax(2 * i4, i) = 10000 * x3 / (ss1 * ss1) End If ElseIf ax1(4 * i) = 1 Then '如是距离,计算系数lx(i) = ss1 - ax1(4 * i - 1) If ax1(4 * i- 3) <> a1(3 * i1 - 2) Then ax(2 * i2 - 1, i) = -x3 / ss1: ax(2 * i2, i) = -y3 / ss1 End If If ax1(4 * i -2) <> a1(3 * i3 - 2) Then ax(2 * i4 - 1, i) = x3 / ss1: ax(2 * i4, i) = y3 / ss1 End If End If Next Fori = 1 To 2 * t For j = 1 To n6 If ax(i, j) = "" Then ax(i, j) = 0 End If Next Next End If Dim u(), nni(), xx(), nni1() ReDim u(1 To 2 * t), nni(1 To t * (2 * t + 1)) nni() = 法系数(b(), p()) u() = 常数项(b(), p(), l()) If Form8.Caption = "附有条件的导线网" Then ReDim nni1(1 To (2 * t + n6) * (2 * t + n6 + 1) / 2) nni1() = 附有条件的法方程(nni(), ax()) ReDim Preserve u(1 To 2 * t + n6) For i = 1 To n6 u(2 * t + i) = lx(i) Next nni1() = ni(nni1(), 2 * t + n6) xx() = bx(nni1(), u()) ReDim Preserve xx(1 To 2 * t) nni() = 条件从有到无(nni1(), t, n6) Else nni() = ni(nni(), 2 * t) xx() = bx(nni(), u()) End IfFor i = 1 To 2 * tx0(i) = x0(i) + xx(i)NextDim v(), fz()ReDim v(1 To n2 + n3), fz(1 To 2 * t)v() = 改正数(b(), xx(), l())Dim v1(), v2()ReDim v1(1 To n2), v2(1 To n3)For i = 1 To n2v1(i) = v(i) * 206264.806247096 / 10000m1 = m1 + v1(i) * v1(i)Nextm1 = Sqr(m1 / (n2 - 1)): m1 = Format(m1, "0.00")For i = 1 To n3v2(i) = v(i + n2)Nextmm0 = 单位权中误差(v(), p())mm0 = Sqr(mm0 / (n2 + n3 - 2 * t + n6))m0 = mm0 * 206264.806247096 / 10000If Optd2.Value Thenmj1 = m0End IfNextDim vas1 As String * 5, vas2 As String * 5, vas3 As String * 5, vas4 As String * 20Dim vas5 As String * 10, vas6 As String * 20txt = txt & Chr(13) & Chr(10)txt = txt & "导线平差成果表" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "角度观测成果表" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "-------------------------------------------------------------------" & Chr(13) & Chr(10)txt = txt & "测站" & Space(1) & "后视" & Space(1) & "前视" & Space(1) & "方向观测值(°′″)" & Space(1) & "改正数(″)" & Space(1) & "方向平差值(°′″)" & Space(1) & Chr(13) & Chr(10)Dim f(), f1(), f2()ReDim f(1 To n2)f() = 角度平差值(v1(), b1())For i = 1 To n2ReDim f1(1 To 3), f2(1 To 3)f1() = 度分离(b1(4 * i))v1(i) = Format(v1(i), "0.00")f2() = 度分离(f(i))LSet vas1 = b1(4 * i - 3)LSet vas2 = b1(4 * i - 2)LSet vas3 = b1(4 * i - 1)LSet vas4 = f1(1) & Space(1) & f1(2) & Space(1) & f1(3)LSet vas5 = v1(i)LSet vas6 = f2(1) & Space(1) & f2(2) & Space(1) & f2(3)txt = txt & vas1 & vas2 & vas3 & vas4 & vas5 & vas6 & Chr(13) & Chr(10)Nexttxt = txt & "---------------------------------------------------------------------" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "边长观测成果表" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "---------------------------------------------------------------------" & Chr(13) & Chr(10) Dim bz()ReDim bz(1 To n3 + 3)bz() = 边长相对中误差(mm0, nni(), b3(), d1())Dim bc()ReDim bc(1 To n3)bc = 边长平差值(v2(), d1())txt = txt & "起点" & Space(1) & "终点" & Space(1) & "观测边长(m)" & Space(1) & "改正数(mm)" & "边长平差值(m)" & Space(1) & "边长观测值的相对中误差" & Chr(13) & Chr(10) Dim vas7 As String * 12, vas8 As String * 12For i = 1 To n3v2(i) = v2(i) * 1000: v2(i) = Format(v2(i), "0.0")LSet vas1 = d1(3 * i - 2)LSet vas2 = d1(3 * i - 1)LSet vas7 = d1(3 * i)LSet vas5 = v2(i)LSet vas8 = bc(i)LSet vas6 = "1:" & Space(1) & bz(i)txt = txt & vas1 & vas2 & vas7 & vas5 & vas8 & vas6 & Chr(13) & Chr(10)Nexttxt = txt & "--------------------------------------------------------------------" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "点位误差及误差椭圆" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "---------------------------------------------------------------------------------" & Chr(13) & Chr(10)txt = txt & "点号" & Space(1) & "误差X(mm)" & Space(1) & "误差Y(mm)" & Space(1) & "点位误差(mm)" & Space(1) & "椭圆长轴E(mm)" & Space(1) & "椭圆短轴(mm)" & Space(1) & "方位角(°′″)" & Chr(13) & Chr(10)Dim dw(), e()ReDim dw(1 To 3 * t), e(1 To 3 * t)dw() = 点位误差(mm0, t, nni())e() = 点位误差椭圆(mm0, t, nni())Dim vas9 As String * 10, vas10 As String * 10, vas11 As String * 12, vas12 As String * 12For i = 1 To tf1() = 度分离(e(3 * i))LSet vas1 = c(i)LSet vas9 = dw(3 * i - 2)LSet vas10 = dw(3 * i - 1)LSet vas7 = dw(3 * i)LSet vas8 = e(3 * i - 2)LSet vas11 = e(3 * i - 1)LSet vas12 = f1(1) & Space(1) & f1(2) & Space(1) & f1(3)txt = txt & vas1 & vas9 & vas10 & vas7 & vas8 & vas11 & vas12 & Chr(13) & Chr(10)Nexttxt = txt & "---------------------------------------------------------------------------------" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "坐标成果表" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "----------------------------------------------" & Chr(13) & Chr(10)txt = txt & "点号" & Space(2) & "坐标X(m)" & Space(12) & "坐标Y(m)" & Space(11) & Chr(13) & Chr(10)For i = 1 To n1LSet vas1 = a1(3 * i - 2)LSet vas4 = a1(3 * i - 1)LSet vas6 = a1(3 * i)txt = txt & vas1 & vas4 & vas6 & Chr(13) & Chr(10)NextFor i = 1 To tx0(2 * i - 1) = Format(x0(2 * i - 1), "0.0000"): x0(2 * i) = Format(x0(2 * i), "0.0000")LSet vas1 = c(i)LSet vas4 = x0(2 * i - 1)LSet vas6 = x0(2 * i)txt = txt & vas1 & vas4 & vas6 & Chr(13) & Chr(10)Nextm0 = Format(m0, "0.0")txt = txt & "---------------------------------------------" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)txt = txt & "整网精度评定" & Chr(13) & Chr(10)txt = txt & Chr(13) & Chr(10)Dim vass As String * 20, vas17 As String * 20txt = txt & "----------------------------------------------" & Chr(13) & Chr(10) LSet vass = "导线全长:"LSet vas17 = bz(n3 + 3) & "Km"txt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "验前测角中误差:"LSet vas17 = mj & "″"txt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "验后测角中误差:"LSet vas17 = m1 & "″"txt = txt & vass & vas17 & Chr(13) & Chr(10)If Form8.Caption = "附合导线" ThenLSet vass = "实测角度闭合差:"LSet vas17 = bb & "″"txt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "允许角度闭合差:"LSet vas17 = bb1 & "″"txt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "坐标闭合差(cm):"LSet vas17 = "fx=" & fx & Space(1) & "fy=" & fytxt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "坐标增量相对差:"LSet vas17 = "1:" & fstxt = txt & vass & vas17 & Chr(13) & Chr(10)ElseIf Form8.Caption = "闭合导线" Thenbb = Format(bb, "0.0")LSet vass = "角度闭合差:"LSet vas17 = bb & "″"txt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "允许角度闭合差:"LSet vas17 = bb1 & "″"txt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "坐标闭合差(cm):"LSet vas17 = "fx=" & fx & Space(1) & "fy=" & fytxt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "坐标增量相对差:"LSet vas17 = "1:" & fstxt = txt & vass & vas17 & Chr(13) & Chr(10)End IfLSet vass = "单位权中误差:"LSet vas17 = m0 & "″"txt = txt & vass & vas17 & Chr(13) & Chr(10)LSet vass = "最弱边相对中误差" & "(" & d1(3 * bz(n3 + 1) - 2) & "-" & d1(3 * bz(n3 + 1) - 1) & ")" & ":"LSet vas17 = "1:" & bz(n3 + 2)txt = txt & vass & vas17 & Chr(13) & Chr(10)Form1.Text1.Alignment = 2Form1.Text1.Text = txterrorhandler:If Err.Number = 75 ThenExit SubEnd If100: End SubPrivate Sub list1_Click()If list1.Text = "不等精度" Then '等精度和不等精度的互换Label1.Caption = "单位权中误差(″)"Text2.BackColor = &H80000004Text2.Locked = TrueText3.BackColor = &H80000004Text3.Locked = TrueElseIf list1.Text = "等精度" ThenLabel1.Caption = "测角中误差(″)"Text2.BackColor = &H80000005Text2.Locked = FalseText3.BackColor = &H80000005Text3.Locked = FalseEnd IfEnd SubPrivate Sub Opt1_Click()If Opt1.Value ThenFrame3.Enabled = FalseLabel5.Enabled = FalseText4.BackColor = &H80000004Text4.Text = 1Text4.Locked = TrueOptd1.Enabled = FalseOptd2.Enabled = FalseEnd IfEnd SubPrivate Sub Opt2_Click()If Opt2.Value ThenFrame3.Enabled = TrueLabel5.Enabled = TrueText4.BackColor = &H80000005 Text4.Locked = FalseOptd1.Enabled = TrueOptd1.Value = TrueOptd2.Enabled = TrueEnd IfEnd SubPrivate Function 查错(a1(), n1, n2)End Function[em1][em1][em1]。

四等水准测量VB 程序 代码

四等水准测量VB 程序 代码

四等水准测量VB 程序Private Sub Command1_Click()Dim BBU As SingleDim BBM As SingleDim BBL As SingleDim BRM As SingleDim BK As SingleDim FBU As SingleDim FBM As SingleDim FBL As SingleDim FRM As SingleDim FK As SingleBBU = Val(ltrim$(rtrim$(Text1.Text) ))BBM = Val(ltrim$(rtrim$(Text2.Text) ))BBL = Val(ltrim$(rtrim$(Text3.Text) ))BRM = Val(ltrim$(rtrim$(Text4.Text) ))BK = Val(ltrim$(rtrim$(Text9.Text) ))FBU = Val(ltrim$(rtrim$(Text5.Text) ))FBM = Val(ltrim$(rtrim$(Text6.Text) ))FBL = Val(ltrim$(rtrim$(Text7.Text) ))FRM = Val(ltrim$(rtrim$(Text8.Text) ))FK = Val(ltrim$(rtrim$(Text10.Text) ))bdh = (BBM - FBM) '黑面高差'fdh = (BRM - FRM) '红面高差'If BK > FK Thenfdh = fdh - 0.1Elsefdh = fdh + 0.1End IfIf Abs((BBU - BBL) - (FBU - FBL)) * 100 > 3 Then MsgBox "前后视距较差超限"Exit Sub '退出程序'ElseIf Abs(BBM + BK - BRM) > 0.003 Then MsgBox "后视黑~红面读数较差超限"Exit Sub '退出程序'ElseIf Abs(FBM + FK - FRM) > 0.003 Then MsgBox "前视黑~红面读数较差超限"Exit Sub '退出程序'ElseIf Abs(bdh - fdh) > 0.005 ThenMsgBox "黑红面所测高差较差超限"Exit Sub '退出程序'Elsedh = Format((bdh + fdh) / 2, "0.0000") '计算高差'MsgBox "测站高差="& Str$(dh) &”m”,vbokonly,”计算结果” End IfDim hsjl As SingleDim qsjl As SingleDim qhsjc As SingleDim qhsjljc As SingleDim hchhmdsc As SingleDim qchhmdsc As SingleDim hmgc As SingleDim hmgc1 As SingleDim hhmgczc As Singlehsjl = (BBU - BBL) * 100qsjl = (FBU - FBL) * 100qhsjc = qsjl - hsjlhchhmdsc = BBU - BRMqchhmdsc = FBU - FRMhmgc = BBM - FBMhmgc1 = BRM - FRMhhmgczc = hmgc - hmgc1Text1.Text = Format(hsjl, "0.0000")Text2.Text = Format(qsjl, "0.0000")Text3.Text = Format(qhsjc, "0.0000")Text4.Text = Format(qhsjljc, "0.0000")Text5.Text = Format(hchhmdsc, "0.0000")Text6.Text = Format(qchhmdsc, "0.0000")Text7.Text = Format(hmgc, "0.0000")Text9.Text = Format(hhmgczc, "0.0000")Text8.Text = Format(hmgc1, "0.0000")End SubDim BBU As SingleDim BBM As SingleDim BBL As SingleDim BRM As SingleDim BK As SingleDim FBU As SingleDim FBM As SingleDim FBL As SingleDim FRM As SingleDim FK As SinglePrivate Sub Combo1_Click()Dim ReTxt As StringReTxt = Combo1.ListIndexBK = Combo1.List(ReTxt)End SubPrivate Sub Combo2_Click()Dim ReTxt As StringReTxt = Combo2.ListIndexFK = Combo2.List(ReTxt)End SubPrivate Sub Command1_Click()BBU = Val(LTrim$(RTrim$(Text1.Text))) BBM = Val(LTrim$(RTrim$(Text2.Text))) BBL = Val(LTrim$(RTrim$(Text3.Text))) BRM = Val(LTrim$(RTrim$(Text4.Text)))FBU = Val(LTrim$(RTrim$(Text5.Text))) FBM = Val(LTrim$(RTrim$(Text6.Text))) FBL = Val(LTrim$(RTrim$(Text7.Text))) FRM = Val(LTrim$(RTrim$(Text8.Text)))Dim BBU As SingleDim BBM As SingleDim BBL As SingleDim BRM As SingleDim BK As SingleDim FBU As SingleDim FBM As SingleDim FBL As SingleDim FRM As SingleDim FK As SinglePrivate Sub Combo1_Click()Dim ReTxt As StringReTxt = Combo1.ListIndexBK = Combo1.List(ReTxt)End SubPrivate Sub Combo2_Click()Dim ReTxt As StringReTxt = Combo2.ListIndexFK = Combo2.List(ReTxt)End SubPrivate Sub Command1_Click()BBU = Val(LTrim$(RTrim$(Text1.Text)))BBM = Val(LTrim$(RTrim$(Text2.Text)))BBL = Val(LTrim$(RTrim$(Text3.Text)))BRM = Val(LTrim$(RTrim$(Text4.Text)))FBU = Val(LTrim$(RTrim$(Text5.Text)))FBM = Val(LTrim$(RTrim$(Text6.Text)))FBL = Val(LTrim$(RTrim$(Text7.Text)))FRM = Val(LTrim$(RTrim$(Text8.Text)))bdh = (BBM - FBM) '黑面高差'fdh = (BRM - FRM) '红面高差'If BK > FK Thenfdh = fdh - 100Elsefdh = fdh + 100End IfIf Abs((BBU - BBL) - (FBU - FBL)) * 0.1 > 3 Then MsgBox "前后视距较差超限"Exit Sub '退出程序'ElseIf Abs(BBM + BK - BRM) > 3 Then MsgBox "后视黑~红面读数较差超限"Exit Sub '退出程序'ElseIf Abs(FBM + FK - FRM) > 3 Then MsgBox "前视黑~红面读数较差超限"Exit Sub '退出程序'ElseIf Abs(bdh - fdh) > 5 ThenMsgBox "黑红面所测高差较差超限"Exit Sub '退出程序'Elsedh = Format((bdh + fdh) / 2, "0.0000") '计算高差' Text10.Text = dh / 1000End IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Text7.Text = ""Text8.Text = ""Text9.Text = ""Text10.Text = ""Text1.SetFocusEnd Sub。

教你如何通过Excel VBA编写测量坐标计算程序

教你如何通过Excel VBA编写测量坐标计算程序

教你如何通过Excel VBA编写测量坐标计算程序发布日期:2013-01-11 来源:网络作者:未知浏览次数:1704摘要:认识VBA、理解VBA,并利用Office Excel VBA编写测量坐标计算程序。

关键词:Excel VBA 程序坐标编写了解:VBA是什么?简单的说就是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。

可以用Excel的宏语言来使Excel自动化运行等……Microsoft让它开发出来的应用程序共享一种通用的自动化语言——Visual Basic For Application(VB A),可以认为VBA是非常流行的应用程序开发语言Visual Basic的子集,事实上VBA是V B应用程序的版本,尽管存在有些不同VBA和VB在结构上仍然十分相似。

如果你已经了解VB会发现学习VBA非常快。

相应的学完VBA会给学习VB打下坚实的基础。

理由:选择Excel VBA编程的理由是因为它的计算功能非常强大,是现今任何编程计算器无法逾越的。

它运用范围广,计算速度快,计算精度高,合理化显示等。

或许很多测量人员对Excel VBA还有些陌生,主要是大家寄托于计算器、电脑、手机PDA等系列软件使用。

Excel VBA对于大多数测量人员而没有系统学过计算机语言程序设计的人群来讲有一定含糊,不过只要有基本数学知识、测量常识和逻辑理解的人,都能通过Excel VBA编写设计出称心如意的测量程序。

目标:基于Excel VBA的测量坐标计算程序的设计目标是将繁琐计算过程转入到计算机中,利用程序语言的重复性原理,在计算机中可将坐标计算得出更精确的结果,使坐标计算更加可靠。

最终目标是让用户可以通过Excel VBA自行完成坐标计算程序设计。

认识:学习VBA到底需要什么基础和了解些什么?学习VBA需要认识英文字母、一般的单词(如:函数所用的过程)、数学基础知识、测量常识、逻辑性思维即可。

vb课程课件测绘程序设计7(七)

vb课程课件测绘程序设计7(七)

【解】:
1. 列条件方程 本题有2个未知点,需4个必要观测,实际有 9个观测值,故应列出5个条件方程。其中3个 图形条件,1个圆周角条件,1个极条件。
2. 闭合差检核
一级小三角网测角中误差应不大于5” •图形条件闭合差检核: |wi| max =1.6”< w限 w限 2m 3 17.3" •圆周角条件闭合差检核:
二、测量工作中的坐标系
坐标系的建立是个历史过程,逐步的完善和精化 1、1954年北京坐标系 1954年,鉴于当时的历史条件,将从苏联传算来的坐标系定名为 1954年北京坐标系。 1954年北京坐标系实际上是前苏联1942年普尔科 沃坐标系在我国的延伸,1954年北京坐标系属于参心坐标系,采用克拉 索夫斯基椭球参数;大地原点是前苏联的普尔科沃; 1954年北京坐标系-问题和缺点 克拉索夫斯基椭球比现代精确椭球相差过大;
System),称为1984年世界大地坐标系统。地心地固坐标系,其坐标系的Z 轴指向BIH (国际时间)1984.O定义的协议地球极(CTP)方向,X轴指向
BIH 1984.0的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐
标系,GPS广播星历基于WGS-84坐标系。WGS-84采用的椭球是国际大地测 量与地球物理联合会第17届大会大地测量常数推荐值,其四个基本参数:
wO限 2m 3 17.3" •极条件闭合差检核:
wO = -3.2”< wO限
ws限 2m 46.5"
ws
i i
sin b ) " 33.1" w (1 sin a
s限
3. 列立条件方程
条件方程的矩阵形式为:AV+W=0, 本例中:

vb课程测绘程序设计二

vb课程测绘程序设计二

作业
1 角度换算程序
2 坐标方位角计算程序 3 导线测量近似坐标计算程序 4 全站仪放样元素计算程序
调用 Call recarea(10,20) recarea 10,20
5、文件操作 Open d:\dx.dat For Input As #1 打开文件
读数据 inout #1 a,b,c line input #1 a$
Open d:\dx1.dat For output As #2 打开 文件写数据
3) C点坐标计算公式: xc=xb+s*cos tbc yc=yb+s*sin tbc
4) 导线计算近似坐标,在各导线点上循环 计算.
五、全站仪放样元素计算
放样:把设计图纸上工程建筑物的平面位置和高程, 用一定的测量仪器和方法测设到实地上去的测量工作 称为施工放样(也称施工放线)。 测图工作是利用控制 点测定地面上地形特征点,缩绘到图上。施工放样则 与此相反,利用控制点,在实地上定出建筑物的特征 点,据以施工 . 公路 管线 桥梁 水电站等等都需要施工 放样.
jd4
-12
88
jd
-78.7533 -78.0755
2) 度换算度分秒 Public Function Dms( jd) [公有过程 子函数 名称(形参) ] jd1=fix(jd) jd2=(jd-jd1)*60 jd3=fix(jd2) jd4=(jd2-jd3)*60 jd=jd1+jd3/100+jd4/10000 End function
+ 字符串连接符
a$=Surveying program
Instr() 查找子串
Left() 取左侧字符
Right() 取右侧字符

利用VB编程实现电子水准测量手簿的自动检查

利用VB编程实现电子水准测量手簿的自动检查

利用VB编程实现电子水准测量手簿的自动检查作者:王凯来源:《科技创新导报》2017年第30期摘要:随着现代测绘科技、仪器的发展进步,测绘技术装备发生了革命性变化。

电子水准仪逐渐取代了传统光学水准仪,在水准测量作业中发挥着越来越重要的作用。

外业利用电子水准仪进行水准测量结束后,通过内业处理将数据转换为ExcelL格式的电子水准测量记录手簿,但是由于数据量较大,因此手工检查比较费时,且容易出现漏检的情况。

本文论述了利用VB编程,实现对电子水准测量记录手簿中单元格的数据进行检查,自动标记出超限的数据,实现水准手簿内业检查的自动化,提高内业工作效率。

关键词:VB Excel 电子水准测量手簿自动检查中图分类号:P22 文献标识码:A 文章编号:1674-098X(2017)10(c)-0140-031 引言水准测量是利用水准仪提供的水平视线测定两点间的高差,进而求得测点高程的方法,它是高程测量中最基本、精度最高的一种方法,在国家高程控制测量、工程勘察和施工放样中得到广泛应用。

电子水准仪在现今的水准测量中发挥着重要作用,与传统光学水准仪相比有以下特点。

(1)读数客观:不存在误记问题,没有人为读数误差。

(2)精度高:视线高和视距读数都是采用大量条码分划图像经处理后取平均得出来的,因此削弱了标尺分划误差的影响。

多数仪器都有进行多次读数取平均的功能,可以削弱外界条件影响,不熟练的作业人员也能进行高精度测量。

(3)速度快:由于省去了报数、听记、现场计算的时间以及人为出错的重测数量,测量时间与传统仪器相比可以节省1/3左右。

(4)效率高:只需调焦和按键就可以自动读数,减轻了劳动强度。

电子水准仪外业测量结束后,内业数据处理软件可以将外业测量数据处理成规范的电子水准测量记录手簿。

图1为一段标准的电子水准手簿记录格式,计算机中电子文档保存为Excel 软件的XLS或XLSX格式。

实际测量工作中,由于路线较长,观测天数多,测站较多,某些测站难免会产生一些超限的读数,如视线长度、视距差、视距累积差超限等。

用VB实现基于GPIB的自动测试系统

用VB实现基于GPIB的自动测试系统

2007.5现代计量通讯用VB实现基于GPIB的自动测试系统季青(江苏省计量科学研究院)""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!"摘要:通过一个应用于数字移动通信综合测试仪输出小功率测试的完整实例,介绍了在VisualBasic编程环境中用SCPI实现对带有GPIB接口的智能仪器进行程控,组成一个自动测试系统的方法。

关键字:VBGPIB自动测试系统SCPI1引言飞速发展的无线通信技术对测试测量提出越来越高的要求,表现在测试任务多、精度要求高、测试速度快等方面,而传统的指标测量,采用多台仪器对被测设备的指标逐项进行测量,测试周期长,过程繁琐;其次测量结果通常采用人工记录,不能对数据进行有效的管理和回放,在一定程度上影响日后的数据处理。

这就使得传统的人工测量已不能满足实际测量的需求,迫切的要求采用自动测试系统。

通常把在最少人工参与的情况下能自动进行测量、数据处理并输出测量结果的系统称为自动测试系统。

一般,自动测试系统包括控制器、程控仪器与设备、总线与接口、测试软件、被测对象五个部分。

在数字移动通信综合测试仪的校准中,很多性能指标的测量都与测量接收机FSMR26有着密切的关系。

本文以测量接收机FSMR26测量小功率为例,介绍用VB实现计算机对带有GPIB接口的智能仪器程控的方法。

2系统组成及特点本测试系统用计算机通过GPIB接口卡和线缆与GPIB标准总线仪器搭建成仪器硬件平台。

由于每台GPIB标准总线仪器拥有唯一的GPIB地址,计算机则为整个系统的核心,采用GPIB接口卡、GPIB线缆与GPIB仪器相连,通过它对连接在总线上的仪器进行操作,并处理从通信仪器中获得的数据,而且按用户所希望的格式输出,其中GPIB接口卡实现了GPIB总线与USB总线间的连接。

系统的硬件基本组成框图如图1所示。

本系统有如下显著功能:2.1系统内部仪器的远程启动和关闭,远程设置GPIB仪器状态参数。

VB开发测量应用程序的体会

VB开发测量应用程序的体会

VB开发测量应用程序的体会杨东升【摘要】文章作者结合Visual Basic 6.0的可视化编程语言在测量软件编程方面的应用,详细叙述了用Visual Basic 6.0实现全站仪采集数据格式与各种计算机制图软件展点数据格式的转换过程,结合自己的工作经验,介绍了南方测绘仪器公司基于AutoCAD平台技术开发的CASS系统综合性数字化测图软件的使用方法和技巧.【期刊名称】《矿山测量》【年(卷),期】2010(000)005【总页数】2页(P35-36)【关键词】VB;CASS;数据格式【作者】杨东升【作者单位】抚顺矿业集团东岩地质测绘勘察有限公司,辽宁,抚顺,113006【正文语种】中文【中图分类】P209随着电子全站仪及电子计算机的普及,地形图的成图方法正在逐步地由传统的纸质法成图转向数字化成图方向,数字成图几乎已占据了大部分的地形图测绘市场。

不同类型的电子全站仪采集、下载的数据格式也不完全一致,这样就给计算机制图软件展点带来不便。

VB是基于W indow s的可视化编程语言,其用户界面设计简单,并采用了面向对象、事件驱动的程序设计方法,极大地简化了用户编程,可将主要精力集中到解决实际问题上。

因此VB已成为应用程序的重要开发工具。

本文就如何利用VB编写数据格式转换的测量应用程序进行如下探讨。

CASS是南方测绘仪器公司基于Au toCAD平台技术开发的一个综合性数字化成图软件。

它具有完备的数据采集、数据处理、图形生成、图形输出等功能,能方便灵活地完成数字化成图工作。

坐标数据文件是 CASS最基础的数据文件,扩展名是“DAT”,无论是从电子手簿传输到计算机,还是用电子平板在野外直接记录数据,最终都生成一个坐标数据文件,其格式为:1点点名,1点编码,1点 Y(东)坐标,1点 X (北)坐标,1点高程…N点点名,N点编码,N点 Y(东)坐标,N点 X (北)坐标,N点高程(1)文件内每一行代表一个点;(2)每个点 Y坐标、X坐标、高程的单位是米;(3)编码内不能含有逗号,即使编码为空,其后的逗号也不能省略;(4)所有的逗号不能在全角方式下输入。

VB程序测量

VB程序测量
VB的启动和退出
启动 退出

VB的窗口结构
主窗口 工程资源管理器 属性窗口 窗体编辑窗口 代码窗口 工具箱
定制集成开发环境*
VB的启动和退出
启动的四种方法
(1)单击“开始”菜单,选择“程序 Microsoft Visual Basic 6.0 中文版”。 (2)双击 Visual Basic 6.0的快捷图标。 ( 3 ) 使 用 “ Windows 资 源 管 理 器 ” 寻 找 Visual Basic可执行文件。 (4)双击VB的工程或窗体文件。
退出
“关闭”按钮、“文件退出”
VB的窗口结构
主窗口 工程资源管理器窗口 属性窗口 窗体布局窗口 窗体编辑窗口 代码编辑窗口 工具箱窗口
定制集成开发环境*
编辑器选项卡
要求变量声明
编辑器格式
代码颜色
环境选项卡
提示保存
1.3 应用举例:程序封面
创建应用程序界面 设置窗体和控件的属性 编写代码 运行和调试 程序的保存
创建应用程序界面
绘制控件
(1)在工具箱上单击要绘制的控件的图标,这里要绘制的是“文本框”。 (2)将鼠标指针移到窗体上,该指针变成十字线。 (3)将十字线放在控件的左上角所在处,拖动十字线画出适合控件大小的方框。 (4)释放鼠标按钮,控件出现在窗体上。
调整控件大小
(1)用鼠标单击要调整尺寸的控件,选定的控件上会出现尺寸句柄(控件四周和四 角上出现的实心小方块)。 (2)将鼠标指针定位到尺寸柄上,拖动尺寸柄直到控件达到所希望的大小为止。角 上的尺寸柄可同时调整控件水平和垂直方向的大小,边上的尺寸柄调整一个方向 的大小。 (3)释放鼠标按钮确定控件的尺寸。
第一章 概述
1.1 测绘程序设计与VB语言

测量导线计算VB程序设计

测量导线计算VB程序设计

收稿日期:2003-03-13作者简介:薄志义(1964-),男,辽宁工程技术大学测量工程专业毕业,中国矿业大学(北京校区)在读博士生,副教授。

测量导线计算VB 程序设计薄志义1,2(1.中国矿业大学北京校区,北京100083;2.北京工业职业技术学院,北京100042)摘 要:应用Visual BASIC (VB )计算机编程语言对图根导线计算进行编程设计。

探讨了VB 编程方法技巧与测量计算有机的结合,程序具有较高的实用性。

关键词:测量导线;计算;VB ;程序设计中图分类号:P209 文献标识码:B 文章编号:1671-6558(2003)03-08-04VB Program Design of T raverse C alculationBo Zhiyi 1,2(1.China University of Mining &Technology ,Beijing 100083,China 2.Beijing Vocational &Technical Institute of Industry ,Beijing 100042,China )Abstract :This article applies Visual BASIC to program design of traverse calculation ,and explores better combi 2nation of programming methods and traverse calculation ,which proves to have high practical value.Key words :traverse ;calculation ;VB ;seismic source ;program design1测量导线计算VB 程序的功能本程序适用于地形测量、地籍测量、工程测量中的图根导线的计算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序:计算机能执行的指令序列 程序设计:编写程序的过程 程序设计语言:
机器语言:面向机器,0/1编码,直接执行 汇编语言:面向机器,字符编码,编译执行 高级语言:Fortran、C/ C++ 、Pascal、Basic、FoxBase Delphi、VC++、VB、Visual FoxPro、Java
为什么选择VB:VB的特点
简单:BASIC 面向对象:对象——属性、事件、方法 可视化:Visual 事件驱动:事件过程、事件序列 可扩充性:控件(.ocx)、DLL、API 二次开发:VBA 数据访问:ODBC、ADO、DAO
VB的版本
从VB 1.0 到
学习版、专业版、企业版
1.2 VB的集成开发环境
VB的启动和退出
启动 退出
VB的窗口结构
主窗口 工程资源管理器 属性窗口 窗体编辑窗口 代码窗口 工具箱
定制集成开发环境*
VB的启动和退出
启动的四种方法
(1)单击“开始”菜单,选择“程序 Microsoft Visual Basic 6.0 中文版”。 (2)双击 Visual Basic 6.0的快捷图标。 ( 3 ) 使 用 “ Windows 资 源 管 理 器 ” 寻 找 Visual Basic可执行文件。 (4)双击VB的工程或窗体文件。
退出
“关闭”按钮、“文件退出”
VB的窗口结构
主窗口 工程资源管理器窗口 属性窗口 窗体布局窗口 窗体编辑窗口 代码编辑窗口 工具箱窗口
定制集成开发环境*
编辑器选项卡
要求变量声明
编辑器格式
代码颜色
环境选项卡
提示保存
1.3 应用举例:程序封面
创建应用程序界面 设置窗体和控件的属性 编写代码 运行和调试 程序的保存
创建应用程序界面
绘制控件
(1)在工具箱上单击要绘制的控件的图标,这里要绘制的是“文本框”。 (2)将鼠标指针移到窗体上,该指针变成十字线。 (3)将十字线放在控件的左上角所在处,拖动十字线画出适合控件大小的方框。 (4)释放鼠标按钮,控件出现在窗体上。
调整控件大小
(1)用鼠标单击要调整尺寸的控件,选定的控件上会出现尺寸句柄(控件四周和四 角上出现的实心小方块)。 (2)将鼠标指针定位到尺寸柄上,拖动尺寸柄直到控件达到所希望的大小为止。角 上的尺寸柄可同时调整控件水平和垂直方向的大小,边上的尺寸柄调整一个方向 的大小。 (3)释放鼠标按钮确定控件的尺寸。
1.1 测绘程序设计与VB语言
测绘程序设计的意义
学习测绘程序设计的意义 程序、程序设计与编程语言
VB的特点
简单 面向对象 可视化 事件驱动 可扩充性 二次开发能力 数据访问能力
测绘程序设计的意义
程序处理数据:方便、快速、准确
掌握编程能力:应对千变万化的世界 设计测绘程序:有助于巩固基础知识
程序、程序设计、程序设计语言
VB语言与测绘程序设计
第一章 概述
1.1 测绘程序设计与VB语言
1. 测绘程序设计的意义 2. 为什么选择VB
1.2 VB的集成开发环境
1. VB的启动和退出 2. VB的窗口结构 3. 定制集成开发环境*
1.3 应用举例:程序封面
程序设计步骤:画界面、设置属性、编码、调试
几个VB程序的例子
图像处理的例子:dipTB 1.35.exe 日常应用的例子:闹钟.exe 测绘专业的例子: ——图幅坐标计算程序.EXE ——闭和导线平差.exe ——控制网平差.exe
保存文件
选中文件保存文件
第Байду номын сангаас章 小结
1.1 测绘程序设计与VB语言
1. 测绘程序设计的意义 2. 为什么选择VB
1.2 VB的集成开发环境
1. VB的启动和退出 2. VB的窗口结构 3. 定制集成开发环境 *
1.3 应用举例:程序封面
程序设计步骤:画界面、设置属性、编码、调试
作 业
1. 进行测量程序设计的意义是什么? 2. 为什么要选用VB进行测量程序设计? 3. VB在测量程序设计中的应用主要体 现在哪些方面? 6. VB系统集成环境包括哪几个窗口, 各有什么功能? 9. 叙述建立一个完整的应用程序的过程。
移动控件
单击要移动的控件,按住鼠标拖动到目标位置,松开鼠标
设置属性
属性窗口:对象框、排序、属性列表 激活属性窗口:“视图”菜单、工具栏、 F4 设置属性:
(1)从“视图”菜单中选取“属性”项,或在工具栏中单击“属性” 对象框 按钮。“属性”窗口显示所选窗体或控件的属性设置值。 (2)从属性列表中选定属性名。 排序 (3)在右列中输入或选定新的属性设置值。
属性列表
编写代码
代码编辑窗口 激活代码编辑窗口 “视图”菜单、工具栏、双击窗体或控件 事件过程
运行和调试
解释运行
三种状态:设计、运行、暂停
生成可执行程序运行
(1)在“文件”菜单中选择“生成 工程名.exe”选项。 (2)在出现的对话框中,默认的文件名为当前的工程文件名,扩展 名为.exe。如果用户不想使用默认文件名,可以在对话框中的文 件名部分直接键入新的文件名。 (3)单击对话框中的“确定”按钮,即可生成以对话框中文件名 部分为文件名,以.exe为扩展名的可执行文件。
程序的保存
工程的组成:
工程文件(.vbp)、窗体文件(.frm)、标准模块文件(.bas)
添加文件
“工程添加”,选择“现存”或“新建”
删除文件
(1)在“工程资源管理器”窗口内选定要删除的窗体或模块文件。 (2)在“工程”菜单中选择“删除 该文件名”选项。在“工程”菜单 中对于工程中的每个文件都具有一项对应的“删除 该文件名”的选项。
相关文档
最新文档