1、VB程序上机实验报告VB程序设计专 业:测绘工程班级学号:1102601-24编 写 人:丁浩指导老师:唐争气日 期:2013.12实验一1、实验名称 程序登录界面二、实验原理与过程(1)用户通过界面登录系统,输入用户名和密码;(2)用户名错误或者密码错误时提醒用户出现错误,并提醒用户共有三次操作机会;(3)当选择用户名和密码都正确时,提醒用户登录成功;三、部分代码Private Sub Command1_Click()Static t As Integer If Text1.Text = Then 如果Text1为空,即没有输入用户 MsgBox 请输入用户名!, vbOKOnly + vb
2、Critical, 错误 Exit Sub 退出这个过程End If If Text1.Text = 110260124 And Text2.Text = 666666 Then 如果输入的用户名是110260124且密码为666666 MsgBox 密码正确,欢迎进入!, vbOKOnly + vbInformation, 欢迎进入 CX.Show DL.Hide Else 如果不是1102601或密码不是666666 MsgBox 用户名或密码错误!, vbOKOnly + vbCritical, 错误 Text1.SetFocus t = t + 1 If t = 3 Then MsgB
3、ox 3次出现错误,程序将自动退出 End End If四、实验结果五、心得体会本次课外实验合理使用VB操作软件,设计了一个简易用户登录系统,能方便地实用户登录功能。其中用到了VB中自定义数据类型,随机文件的读写,常用控件的使用(文本框,单选按扭等)。通过本次课外实验,初步了解了VB语言知识,提高了综合运用所学知识解决实际问题的能力。虽然程序中存在诸多的问题,比如调试程序时的出错,程序没有运行,多余等问题。希望在以后的学习中不断探索,不断创新,改进,实践。在这次课程设计中积累的这些宝贵的经验对于以后的学习和工作一定会起着非常重要的作用。实验四2、实验名称坐标正反算二、实验原理与过程通常极坐标法
4、正反算是采用工程计算器计算取得,各种工程计算器的计算操作方法不尽相同,这就导致在不同的计算器使用时产生错误操作,反复的计算检核,给测绘工作带来不便。随着便携式微型电脑的普及,野外工程测量工作中随时随地的采用电脑计算绘图成为现实,不仅方便准确,而且效率大大提高。本文利用VB编程中的面向对象功能,开发方便实用的工程测量小程序:极坐标正反算三、部分代码PrivateSubCommand1_Click(IndexAsInteger)Dima1%,a2%,a3%,a4!,a5!,pi!Constconpi=3.14159265358979IfIsNumeric(Text1(1)=FalseOrIsNum
5、eric(Text2(2)=FalseOrIsNumeric(Text3(3)=FalseOrIsNumeric(Text4(4)=FalseOrIsNumeric(Text5(5)=FalseOrIsNumeric(Text6(6)=FalseThenMsgBox输入有误Text1(1).SetFocusElseIfVal(Trim(Text5(5).Text)60OrVal(Trim(Text5(5).Text)60OrVal(Trim(Text6(6).Text)0ThenLabel31.Caption=90:Label32.Caption=0:Label33.Caption=0Else
6、Ifdx=0Anddy0Anddy0Then:a12=r12ElseIfdx0Then:a12=pi-r12ElseIfdx0Anddy0Anddy0Then:a12=2*pi-r12EndIfa12=a12/conpi*180Label31.Caption=Fix(a12)Label32.Caption=Abs(Fix(a12-Fix(a12)*60)Label33.Caption=Abs(Fix(a12-Fix(a12)*60)-Fix(a12-Fix(a12)*60)*60)EndIfEndIfEndSubPrivateSubCommand4_Click()Text7.Text=:Tex
7、t8.Text=:Text9.Text=:Text10.Text=Label25.Caption=:Label31.Caption=:Label32.Caption=:Label33.Caption=Text7.SetFocusEndSubPrivateSubTimer1_Timer()Label34.Left=Label34.Left+20IfLabel34.Left=12300ThenLabel34.Left=0EndIfEndSub四、实验结果五、心得体会 经过测量学的学习,已经初步认识到坐标的换算。所以对于这种左边换算的程序,难点不在于知识点,对于原理和思路并不难。难点在于慢慢的去写代
8、码,把所掌握的知识变成能运行的程序。写程序还是蛮锻炼思维能力的。只要思路对,就不要急,慢慢来就能出来。实验三一、 实验名称角度与弧度的换算二、实验原理与过程设计一个角表示为A(度),弧度表示为R(弧度),则角度与弧度的转化公式为:角度化为弧度:R=3.1415926/180 弧度化为角度:A=R*180/3.1415926在输入时,将度分秒的形式化为弧度表示,为程序设计做准备,在输出时,将弧度化为度分秒的形式,以便于显示和观看。三、部分代码Option ExplicitDim a%, b%, c%, d#Const pi = 3.1415926Private Sub Command1_Clic
9、k() a = Text1.Text:b = Text2.Text:c = Text3.Text:d = (a + b / 60 + c / 3600) * pi / 180 Text4.Text = Format(d, 0.000000)End SubPrivate Sub Command2_Click()d = Text4.Text:d = d * 180 / pi:a = Int(d):d = (d - a) * 60b = Int(d):d = (d - b) * 600:c = Int(d) / 10#Text1.Text = a:Text2.Text = b:Text3.Text
10、= cEnd SubPrivate Sub Command3_Click()Text1.Text = :Text2.Text = :Text3.Text = :Text4.Text = Text1.SetFocusCommand1.Enabled = FalseCommand2.Enabled = FalseEnd SubPrivate Sub Command4_Click()CX.ShowJD.HideEnd SubPrivate Sub Text1_Change()If Text1.Text And Text2.Text And Text3.Text ThenCommand1.Enable
11、d = TrueEnd IfEnd SubPrivate Sub Text2_Change()If Text1.Text And Text2.Text And Text3.Text ThenCommand1.Enabled = TrueEnd IfEnd SubPrivate Sub Text3_Change()If Text1.Text And Text2.Text And Text3.Text ThenCommand1.Enabled = TrueEnd IfEnd SubPrivate Sub Text4_Change()If Text4.Text ThenCommand2.Enable
12、d = TrueEnd IfEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenText2.SetFocusEnd IfEnd SubPrivate Sub Text2_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenText3.SetFocusEnd IfEnd SubPrivate Sub Text3_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenText4.SetFocusEnd IfE
13、nd Sub四、实验结果五、心得体会 角度与弧度的换算并不是很难,在测量学的学习中就已经掌握了这个知识点,只是在编程的时候有点生疏而已,简单的回忆一下就能想起。所以,在寝室里简单的查询了一些编写的方法和代码后,程序很快就写出来了,经过调试后,程序也能够运行。我个人认为这个程序还是比较简单的。程序的知识,是在日常生活中不断的积累出来的,所以,平时我们也必须要时常的编写一些小的程序,以后再编写大的程序时,就能够得心应手。实验二一、实验名称两点间距离和方位角的计算二、实验原理与过程利用两点的坐标,然后求差,计算出X、Y的增量。再利用勾股定理求出两点间的距离。用三角函数的只是求出方位角。三、部分代码P
14、rivate Sub Command1_Click() Dim Xa#, Ya#, Xb#, Yb#, detX#, detY#, tana#, ab#, du%, fen%, miao%, s# Const Pi = 3.14159265358979 Xa = Val(txtXa.Text) Ya = Val(txtYa.Text) Xb = Val(txtXb.Text) Yb = Val(txtYb.Text) detX = Xb - Xa detY = Yb - Ya If Abs(detX) 0.00000001 Then MsgBox 除数为零,请检查坐标输入是否正确! txtXa
15、.SetFocus Exit Sub End If s = Sqr(detX * detX + detY * detY) If Abs(detX) 0 Then ab = 90 Else ab = 270 End If Else tana = detY / detX ab = Atn(tana) 得到的是弧度 ab = ab * 180 / Pi If detX 0 And detY 0.04 * Sqr(tDist) Then 采用40*Sqr(L)来计算,单位是毫米 MsgBox 闭合差超限,测量成果不合格!, , 闭合差超限 txtShowResult.Text = txtShowRes
16、ult.Text & 闭合差超限,测量成果不合格! Exit Sub Else MsgBox 闭合差合格,继续计算转点高程!, , 闭合差合格 End If Dim temp! temp = startPoint txtShowResult.Text = txtShowResult.Text & 平差后的高程为: & vbCrLf For i = 0 To nMarks temp = temp + detH(i) + closeDetH * dis(i) / tDist txtShowResult.Text = txtShowResult.Text & ( & Str(i) & ): & St
17、r(Format(temp, 0.000) & vbCrLf Next iEnd SubPrivate Sub cmdExit_Click() EndEnd SubPrivate Sub cmdInput_Click() 检查输入的几个文本框:是否已经输入了 If txtStartPoint.Text = 0 Then MsgBox 还没有输入起始点高程! Exit Sub End If If txtEndPoint.Text = 0 And optAnnex.Value = True Then MsgBox 还没有输入终点高程! Exit Sub End If If txtBMNum.Tex
18、t = 0 And optAnnex.Value = True Then MsgBox 还没有输入测站数! Exit Sub End If frmInput.ShowEnd SubPrivate Sub optAnnex_Click() txtEndPoint.Enabled = optAnnex.ValueEnd SubPrivate Sub optClose_Click() txtEndPoint.Enabled = Not optClose.ValueEnd SubPrivate Sub optSpur_Click() txtEndPoint.Enabled = Not optSpur.
19、ValueEnd SubPrivate Sub txtStartPoint_LostFocus() If Not IsNumeric(txtStartPoint.Text) Then MsgBox 输入的高程含有非数字字符! txtStartPoint.Text = txtStartPoint.SetFocus Exit Sub End If If Val(txtStartPoint.Text) 5000 Or Val(txtStartPoint.Text) -100 Then MsgBox 输入的高程有误! txtStartPoint.Text = txtStartPoint.SetFocus Exit Sub End If st
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1