数据处理副本.docx
《数据处理副本.docx》由会员分享,可在线阅读,更多相关《数据处理副本.docx(15页珍藏版)》请在冰豆网上搜索。
数据处理副本
实训报告
实训项目:
测量数据计算实训
实训时间:
2014.11.3-2014.11.21
实训地点:
机房
指导教师:
李金生杨丹彭博王赫
实训班级:
测绘12-1班
学生姓名
【实验目的】
1、对工程中的数据会用电子表格处理;
2、掌握VisualBasic(VB)程序设计的基本理论、方法和应用;
3、掌握VB程序应用于测绘专业的程序开发,理解程序设计在测绘数据处理中的作用和地位;
4、掌握面向对象程序设计方法,应用测绘专业的基本技能,测绘专业模块程序包开发的基本方法。
【实验内容】
【实训题1】已知某交点的里程为K3+135.12m,测得偏角
右=40º20′,圆曲线的半径R=120m,求圆曲线的要素和主点里程。
【实训题2】已知某圆曲线三个主点里程已知,半径为120m,细部点间距为10m,要求按整桩号法计算曲线上各细部点的偏角值。
【实训题3】在JD2处设置圆曲线,半径R=1500m,,转向角(α右)=12°59′28.0″,细部点间距l=10m,完成如下计算:
求圆曲线要素和主点里程,并检核里程计算;
求圆曲线细部点独立坐标(以ZY为圆心,以ZY到JD方向为X轴,以ZY到圆心方向为Y轴);(整桩号法)
求圆曲线细部点线路统一坐标;
求直线段(点到ZY点)各细部点的线路统一坐标。
点位
里程
X坐标
Y坐标
起点(JD1)
K0+000.000
4635266.008
549016.171
JD2(圆曲线)
K1+796.790
4636033.124
550640.975
JD3
K3+186.404
4636329.044
552000.214
独立坐标系和线路坐标系夹角
64.72667774度,1.129693621弧度
主点点号
X坐标
Y坐标
ZY点
4635960.209
550486.537
QZ点
4636023.948
550644.096
YZ点
4636069.454
550807.852
【实训题4】制作一个程序集,程序集需要输入“用户名”和“密码”才能登陆
【实训题5】登陆后程序集中包含2个程序需要设计,实现单击程序集中“水平角计算程序”则弹出“水平角计算”程序界面,单击“四等水准计算程序”则弹出“四等水准计算”程序界面
【实验内容】
【实训题1】
切线长T=R*tan(α/2)=44.072
曲线长L=R*α*(π/180)=84.474
外矢距E=R*[sec(α/2)-1]=7.837
切曲差D=2*T-L=3.67
ZY里程=JD里程-T=k3+091.048
YZ里程=ZY里程+L=k3+175.522
QZ里程=YZ里程-L/2=k3+133.285
JD里程=QZ里程+D/2=k3+135.12
【实训题2】
圆曲线细部点偏角计算(整桩号法)
点号
里程
相邻细部点间弧长
各细部点到起点的弧长
偏角(度)
偏角(度分秒)
m
m
m
度
分
秒
ZY
3091.05
0
0
0
0
0
0
1
3100
8.95
8.95
2.136655147
2
8
11
2
3110
10
18.95
4.523979335
4
31
26
3
3120
10
28.95
6.911303522
6
54
40
4
3130
10
38.95
9.298627709
9
17
55
QZ
3133.28
3.28
42.23
10.08167004
10
4
54
5
3140
6.72
48.95
11.6859519
11
41
9
6
3150
10
58.95
14.07327608
14
4
23
7
3160
10
68.95
16.46060027
16
27
38
8
3170
10
78.95
18.84792446
18
50
52
YZ
3175.52
5.52
84.47
20.16572741
20
9
56
【实训题3】
切线长T=R*tan(α/2)=170.786
曲线长L=R*α*(π/180)=340.106
外矢距E=R*[sec(α/2)-1]=9.691
切曲差D=2*T-L=1.466
ZY里程=JD里程-T=1626.004
YZ里程=ZY里程+L=1966.110
QZ里程=YZ里程-L/2=1796.507
JD里程=QZ里程+D/2=1796.790
点号
里程
弧长
偏角
弦长
x
y
X
Y
单位
m
m
弧度
m
m
m
m
m
zy
626.004
0.000
0.000
0.000
0.000
0.000
4635960.209
550486.537
1.000
636.000
9.996
0.003
9.996
9.996
0.033
4635964.447
550495.590
2.000
646.000
19.996
0.007
19.996
19.995
0.133
4635968.625
550504.675
3.000
656.000
29.996
0.010
29.996
29.994
0.300
4635972.743
550513.788
4.000
666.000
39.996
0.013
39.995
39.991
0.533
4635976.801
550522.928
5.000
676.000
49.996
0.017
49.994
49.987
0.833
4635980.797
550532.095
6.000
686.000
59.996
0.020
59.992
59.980
1.200
4635984.732
550541.288
7.000
696.000
69.996
0.023
69.990
69.971
1.633
4635988.605
550550.507
8.000
706.000
79.996
0.027
79.987
79.958
2.133
4635992.418
550559.752
9.000
716.000
89.996
0.030
89.983
89.942
2.699
4635996.168
550569.022
10.000
726.000
99.996
0.033
99.977
99.922
3.332
4635999.856
550578.317
11.000
736.000
109.996
0.037
109.971
109.897
4.031
4636003.483
550587.636
12.000
746.000
119.996
0.040
119.964
119.868
4.797
4636007.047
550596.980
13.000
756.000
129.996
0.043
129.955
129.833
5.629
4636010.549
550606.346
14.000
766.000
139.996
0.047
139.945
139.793
6.528
4636013.988
550615.736
15.000
776.000
149.996
0.050
149.934
149.746
7.493
4636017.365
550625.149
16.000
786.000
159.996
0.053
159.920
159.693
8.525
4636020.679
550634.584
qz
796.057
170.053
0.057
169.962
169.689
9.629
4636023.948
550644.095
17.000
806.000
179.996
0.060
179.888
179.564
10.787
4636027.118
550653.519
18.000
816.000
189.996
0.063
189.869
189.488
12.017
4636030.242
550663.018
19.000
826.000
199.996
0.067
199.848
199.404
13.313
4636033.303
550672.538
20.000
836.000
209.996
0.070
209.825
209.311
14.675
4636036.301
550682.078
21.000
846.000
219.996
0.073
219.799
219.208
16.104
4636039.235
550691.638
22.000
856.000
229.996
0.077
229.771
229.096
17.598
4636042.105
550701.217
23.000
866.000
239.996
0.080
239.740
238.973
19.158
4636044.911
550710.816
24.000
876.000
249.996
0.083
249.707
248.840
20.784
4636047.653
550720.432
25.000
886.000
259.996
0.087
259.671
258.696
22.476
4636050.331
550730.067
26.000
896.000
269.996
0.090
269.632
268.540
24.234
4636052.945
550739.719
27.000
906.000
279.996
0.093
279.590
278.373
26.057
4636055.494
550749.389
28.000
916.000
289.996
0.097
289.545
288.193
27.945
4636057.979
550759.075
29.000
926.000
299.996
0.100
299.496
298.000
29.899
4636060.399
550768.778
30.000
936.000
309.996
0.103
309.445
307.794
31.919
4636062.754
550778.497
31.000
946.000
319.996
0.107
319.390
317.574
34.003
4636065.045
550788.231
32.000
956.000
329.996
0.110
329.331
327.341
36.153
4636067.270
550797.980
yz
966.110
340.106
0.113
339.378
337.199
38.392
4636069.454
550807.851
【实训题4】
水平角计算代码
PrivateSubCommand1_Click()‘“计算”按钮激发程序
Dimdula%,fenla%,miaoLA%,duLB%,fenLB%,miaoLB%
DimduRA%,fenRA%,miaorA%,durB%,fenrB%,miaorB%
DimduHAL%,fenHAL%,miaoHAL%,duHAR%,fenHAR%,miaoHAR%
DimduWH%,fenWH%,miaoWH%,halfL#,halfR#,angle#
dula=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)
IfduLBhalfL=(durB-duRA)+(fenLB-fenla)/60+(miaoLB-miaoLA)/3600
IfdurBhalfR=(durB-duRA)+(fenrB-fenRA)/60+(miaorB-miaorA)/3600
IfAbs(halfL-halfR)*3600>40Then
MsgBox"半测回值超限,请检查观测和输入是否正确!
”,,“角差超限”"
ExitSub
EndIf
angle=(halfL+halfR)/2
duHAL=Int(halfL):
halfL=(halfL-duHAL)*60
fenHAL=Int(halfL):
halfL=(halfL-fenHAL)*60:
miaoHAL=Int(halfL+0.5)
duHAR=Int(halfR):
halfR=(halfR-duHAR)*60
fenHAR=Int(halfR):
halfR=(halfR-fenHAR)*60:
miaoHAR=Int(halfR+0.5)
duWH=Int(angle):
angle=(angle-duWH)*60
fenWH=Int(angle):
angle=(angle-fenWH)*60:
miaoWH=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)
EndSub
PrivateSubCommand2_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.SetFocus
EndSub
PrivateSubCommand3_Click()‘“退出”按钮激发程序
End
EndSub
【实训题5】
四等水准计算代码
PrivateSubcmdCheckCalc_Click()
Dimi%,tDist‘距离
tDist=0
DimtotalDetH!
closeDetH!
‘累计高差和高差闭合差
Fori=1TonMarks
tDist=tDist+dis(i)
Next
totalDetH=0
Fori=1TonMarks‘计算累计高差
totalDetH=totalDetH+detH(i)
Nexti
‘计算闭合差
startPoint=Val(txtStartPoint.Text)
endPoint=Val(txtEndPoint.Text)
IfoptAnnex.ValueThen‘附合水准
closeDetH=(endPoint-startPoint)-totalDetH
Else‘闭合水准和支水准
closeDetH=-totalDetH
EndIf
‘检查闭合差是否超限
IfcloseDetH>0.04*Sqr(tDist)Then‘采用40*Sqr(L)来计算,单位是毫米
MsgBox"闭合差超限,测量成果不合格!
",,"闭合差超限"
txtShowResult.Text=txtShowResult.Text&"闭合差超限,测量成果不合格!
"
ExitSub
Else
MsgBox"闭合差合格,继续计算转点高程!
",,"闭合差合格"
EndIf
Dimtemp!
temp=startPoint
txtShowResult.Text=txtShowResult.Text&"平差后的高程为:
"&vbCrLf
Fori=0TonMarks
temp=temp+detH(i)+closeDetH*dis(i)/tDist
txtShowResult.Text=txtShowResult.Text&"("&Str(i)&"):
"&Str(Format(temp,"0.000"))&vbCrLf
Nexti
EndSub
PrivateSubcmdExit_Click()
End
EndSub
PrivateSubcmdInput_Click()
‘检查输入的几个文本框:
是否已经输入了
IftxtStartPoint.Text="0"Then
MsgBox"还没有输入起始点高程!
"
ExitSub
EndIf
IftxtEndPoint.Text="0"AndoptAnnex.Value=TrueThen
MsgBox"还没有输入终点高程!
"
ExitSub
EndIf
IftxtBMNum.Text="0"AndoptAnnex.Value=TrueThen
MsgBox"还没有输入测站数!
"
ExitSub
EndIf
frmInput.Show
EndSub
PrivateSuboptAnnex_Click()
txtEndPoint.Enabled=optAnnex.Value
EndSub
PrivateSuboptClose_Click()
txtEndPoint.Enabled=NotoptClose.Value
EndSub
PrivateSuboptSpur_Click()
txtEndPoint.Enabled=NotoptSpur.Value
EndSub
PrivateSubtxtStartPoint_LostFocus()
IfNotIsNumeric(txtStartPoint.Text)Then
MsgBox"输入的高程含有非数字字符!
"
txtStartPoint.Text=""
txtStartPoint.SetFocus
ExitSub
EndIf
IfVal(txtStartPoint.Text)>5000OrVal(txtStartPoint.Text)<-100Then
MsgBox"输入的高程有误!
"
txtStartPoint.Text=""
txtStartPoint.SetFocus
ExitSub
EndIf
startPoint=Val(txtStartPoint.Text)
EndSub
PrivateSubtxtEndPoint_LostFocus()
IfNotIsNumeric(txtEndPoint.Text)Then
MsgBox"输入的高程含有非数字字符!
"
txtEndPoint.Text=""
txtEndPoint.SetFocus
ExitSub
EndIf
IfVal(txtEndPoint.Text)>5000OrVal(txtEndPoint.Text)<-100Then
MsgBox"输入的高程有误!
"
txtEndPoint.Text=""
txtEndPoint.SetFocus
ExitSub
EndIf
endPoint=Val(txtEndPoint.Text)
EndSub
PrivateSubtxtBMNum_LostFocus()
IfNotIsNumeric(txtBMNum.Text)Then
MsgBox"输入的测站数含有非数字字符或尚未输入!
"
txtBMNum.Text=""
txtBMNum.SetFocus
ExitSub
EndIf
nMarks=Val(txtBMNum.Text)
If