📄 form2.frm
字号:
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "comdlg32.ocx"
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Begin VB.Form Form2
BorderStyle = 1 'Fixed Single
Caption = "加乘常数计算 编写:冉海涛"
ClientHeight = 10395
ClientLeft = 150
ClientTop = 840
ClientWidth = 8730
LinkTopic = "Form2"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 10395
ScaleWidth = 8730
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Text1
Height = 264
Left = 0
TabIndex = 1
Top = 0
Visible = 0 'False
Width = 852
End
Begin MSFlexGridLib.MSFlexGrid MSFlexGrid1
Height = 10335
Left = 0
TabIndex = 0
Top = 120
Width = 8175
_ExtentX = 14420
_ExtentY = 18230
_Version = 393216
Rows = 28
Cols = 6
FixedRows = 0
FixedCols = 0
BackColorBkg = 16777215
WordWrap = -1 'True
Redraw = -1 'True
ScrollTrack = -1 'True
GridLines = 3
AllowUserResizing= 3
MousePointer = 1
OLEDropMode = 1
End
Begin MSComDlg.CommonDialog CommonDialog1
Left = 0
Top = 0
_ExtentX = 688
_ExtentY = 688
_Version = 393216
End
Begin VB.Menu file
Caption = "文件"
Begin VB.Menu open
Caption = "打开观测值"
End
Begin VB.Menu save
Caption = "保存"
End
Begin VB.Menu end
Caption = "结束"
End
End
Begin VB.Menu JS
Caption = "计算"
Begin VB.Menu JCJS
Caption = "加乘常数计算"
End
Begin VB.Menu BJS
Caption = "标称精度"
End
Begin VB.Menu report
Caption = "报表"
End
End
End
Attribute VB_Name = "Form2"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim nodX As Node
Dim grow As Integer
Dim gcol As Integer
Public n As Integer
Dim X1 As String
Dim D(1 To 21) As Double '休正后值
Dim D0(1 To 21) As Double '基线值
Dim L(1 To 21) As Double '差值
Dim a As Double '加常数
Dim b As Double '乘常数
Dim filename As String '文件名
Dim sumD As Double
Dim sumL As Double
Dim L0(1 To 21) As Double
Dim sumL0 As Double
Dim sumLL As Double
Dim sumLL0 As Double
Dim sumDL0 As Double
Dim sumDL As Double
Dim sumDD As Double
Dim sumVV As Double
Dim k As Double
Dim m0 As Double
Dim mr As Double
Dim mk As Double
Dim Q11 As Double
Dim Q22 As Double
Private Sub BJS_Click()
CommonDialog1.ShowOpen
filename = CommonDialog1.filename
Open filename For Input As #1
Do While Not EOF(1)
Line Input #1, mynumber
mystr = Split(mynumber, ",")
If i > 1 Then
MSFlexGrid1.TextMatrix(i + 3, 4) = mystr(2)
End If
i = i + 1
Loop
n = i - 1
For i = 4 To n + 3
L0(i - 3) = (MSFlexGrid1.TextMatrix(i, 4) - MSFlexGrid1.TextMatrix(i, 1)) * 1000
Next i
For i = 4 To n + 3
MSFlexGrid1.TextMatrix(i, 5) = Format(L0(i - 3), "0.0000")
Next i
For i = 4 To n + 3
L0(i - 3) = Abs(L0(i - 3))
Next i
sumDD = 0
For i = 1 To n
sumDD = sumDD + D(i) * D(i)
Next i
sumD = 0
For i = 1 To n
sumD = sumD + D(i)
Next i
sumLL0 = 0
For i = 1 To n
sumLL0 = sumLL0 + L0(i) * L0(i)
Next i
sumL0 = 0
For i = 1 To n
sumL0 = sumL0 + L0(i)
Next i
sumDL0 = 0
For i = 1 To n
sumDL0 = sumDL0 + D(i) * L0(i)
Next i
aa = (sumD * sumDL0 - sumDD * sumL0) / (sumD ^ 2 - n * sumDD)
bb = (sumD * sumL0 - n * sumDL0) / (sumD ^ 2 - n * sumDD)
End Sub
Private Sub end_Click()
End
End Sub
Private Sub Form_Load()
Dim i As Integer
JS.Enabled = False
BJS.Enabled = False
MSFlexGrid1.RowHeight(0) = 450
MSFlexGrid1.RowHeight(25) = 350
MSFlexGrid1.RowHeight(26) = 350
MSFlexGrid1.RowHeight(27) = 350
For i = 1 To 24 '表格高度
MSFlexGrid1.RowHeight(i) = 350
MSFlexGrid1.TextMatrix(i, 0) = i - 3
Next i
For i = 1 To 5 '表格宽度
MSFlexGrid1.ColWidth(i) = 1500
Next i
MSFlexGrid1.ColWidth(3) = 1300
For i = 0 To 5
MSFlexGrid1.TextMatrix(0, i) = " 加乘常数计算"
Next i
For i = 0 To 5
MSFlexGrid1.TextMatrix(1, i) = " 仪器型号: 仪器编号: 检定地点: 日 期: "
Next i
For i = 0 To 5
MSFlexGrid1.TextMatrix(2, i) = " 观 测 者: 记 录 者: 计 算 者: 检 校: "
Next i
For i = 0 To 5
MSFlexGrid1.TextMatrix(27, i) = " 西南电力设计院勘测工程分公司"
Next i
MSFlexGrid1.MergeRow(27) = True
MSFlexGrid1.MergeCells = flexMergeFree
For i = 0 To 5
MSFlexGrid1.TextMatrix(26, i) = "加常数中误差Mc=" & " mm 乘常数中误差Mk=" & " mm/km" & " 测距中误差Mk= mm"
Next i
MSFlexGrid1.MergeRow(26) = True
MSFlexGrid1.MergeCells = flexMergeFree
For i = 0 To 5
MSFlexGrid1.TextMatrix(25, i) = "加常数C=" & " mm 乘常数K=" & " mm/km" & " 固定误差部分a=" & Format(aa, "0.000") & " mm 比例误差系数b=" & Format(bb * 1000, "0.0") & " mm/km"
Next i
MSFlexGrid1.MergeRow(25) = True
MSFlexGrid1.MergeCells = flexMergeFree
MSFlexGrid1.MergeRow(1) = True
MSFlexGrid1.MergeRow(0) = True
MSFlexGrid1.MergeRow(2) = True
MSFlexGrid1.MergeCells = flexMergeFree
MSFlexGrid1.Width = 1700 * 4 + MSFlexGrid1.ColWidth(0) + 2200
MSFlexGrid1.TextMatrix(3, 0) = " 序号"
MSFlexGrid1.TextMatrix(3, 1) = " 基线值"
MSFlexGrid1.TextMatrix(3, 2) = "观测值"
MSFlexGrid1.TextMatrix(3, 3) = " 差值"
MSFlexGrid1.TextMatrix(3, 4) = "修正后值"
MSFlexGrid1.TextMatrix(3, 5) = "修正后差值"
'文本赋值(基线值)
Dim mystr() As String
Dim j As Integer
filename = App.Path & "\JX.SYS"
Open filename For Input As #1
i = 3
Do While Not EOF(1)
Line Input #1, mynumber
mystr = Split(mynumber, ",")
MSFlexGrid1.TextMatrix(i + 1, 1) = mystr(0)
i = i + 1
Loop
Close #1
'文本赋值(修正后值)
'
' MSFlexGrid1.TextMatrix(4, 2) = 48.0051
' MSFlexGrid1.TextMatrix(5, 2) = 120.0096
' MSFlexGrid1.TextMatrix(6, 2) = 191.9985
' MSFlexGrid1.TextMatrix(7, 2) = 263.9781
' MSFlexGrid1.TextMatrix(8, 2) = 407.9842
' MSFlexGrid1.TextMatrix(9, 2) = 552.0113
' MSFlexGrid1.TextMatrix(10, 2) = 504.0019
' MSFlexGrid1.TextMatrix(11, 2) = 791.9556
' MSFlexGrid1.TextMatrix(12, 2) = 359.9825
' MSFlexGrid1.TextMatrix(13, 2) = 215.9838
' MSFlexGrid1.TextMatrix(14, 2) = 144.0018
' MSFlexGrid1.TextMatrix(15, 2) = 72.0169
' MSFlexGrid1.TextMatrix(16, 2) = 71.9901
' MSFlexGrid1.TextMatrix(17, 2) = 143.9725
' MSFlexGrid1.TextMatrix(18, 2) = 431.9956
' MSFlexGrid1.TextMatrix(19, 2) = 719.9406
' MSFlexGrid1.TextMatrix(20, 2) = 647.9494
' MSFlexGrid1.TextMatrix(21, 2) = 360.0015
' MSFlexGrid1.TextMatrix(22, 2) = 215.9863
' MSFlexGrid1.TextMatrix(23, 2) = 71.9872
' MSFlexGrid1.TextMatrix(24, 2) = 287.9726
'
End Sub
Private Sub JCJS_Click() '加乘常数计算
Dim i As Integer
For i = 4 To n + 3 '表格高度
MSFlexGrid1.TextMatrix(i, 3) = Format(Val((MSFlexGrid1.TextMatrix(i, 1)) - Val(MSFlexGrid1.TextMatrix(i, 2))) * 1000, "0.0")
Next i
For i = 4 To n + 3
D0(i - 3) = MSFlexGrid1.TextMatrix(i, 1)
Next i
For i = 4 To n + 3
D(i - 3) = MSFlexGrid1.TextMatrix(i, 2)
Next i
For i = 4 To n + 3
L(i - 3) = MSFlexGrid1.TextMatrix(i, 3)
Next i
sumD = 0
For i = 1 To n
sumD = sumD + D(i)
Next i
sumL = 0
For i = 1 To n
sumL = sumL + L(i)
Next i
For i = 1 To n
sumLL = sumLL + L(i) * L(i)
Next i
sumDL = 0
For i = 1 To n
sumDL = sumDL + D(i) * L(i)
Next i
sumDD = 0
For i = 1 To n
sumDD = sumDD + D(i) * D(i)
Next i
a = (sumD * sumDL - sumDD * sumL) / (sumD ^ 2 - 21 * sumDD)
b = (sumD * sumL - 21 * sumDL) / (sumD ^ 2 - 21 * sumDD)
For i = 4 To 3 + n
D(i - 3) = MSFlexGrid1.TextMatrix(i, 2) * (1 + b / 1000) + a / 1000
Next i
For i = 4 To 3 + n
MSFlexGrid1.TextMatrix(i, 4) = Format(D(i - 3), "0.0000")
Next i
sumVV = sumLL - sumL * a - sumDL * b
Q11 = -sumDD / (sumD ^ 2 - n * sumDD)
Q22 = -21 / (sumD ^ 2 - n * sumDD)
m0 = Sqr(sumVV / (n - 2))
mk = m0 * Sqr(Q11)
mr = m0 * Sqr(Q22)
'************************************************
For i = 4 To n + 3
L0(i - 3) = (MSFlexGrid1.TextMatrix(i, 4) - MSFlexGrid1.TextMatrix(i, 1)) * 1000
Next i
For i = 4 To n + 3
MSFlexGrid1.TextMatrix(i, 5) = Abs(Format(L0(i - 3), "0.0000"))
Next i
For i = 4 To n + 3
L0(i - 3) = Abs(L0(i - 3))
Next i
sumDD = 0
For i = 1 To n
sumDD = sumDD + D(i) * D(i)
Next i
sumD = 0
For i = 1 To n
sumD = sumD + D(i)
Next i
sumLL0 = 0
For i = 1 To n
sumLL0 = sumLL0 + L0(i) * L0(i)
Next i
sumL0 = 0
For i = 1 To n
sumL0 = sumL0 + L0(i)
Next i
sumDL0 = 0
For i = 1 To n
sumDL0 = sumDL0 + D(i) * L0(i)
Next i
aa = (sumD * sumDL0 - sumDD * sumL0) / (sumD ^ 2 - n * sumDD)
bb = (sumD * sumL0 - n * sumDL0) / (sumD ^ 2 - n * sumDD)
For i = 0 To 5
MSFlexGrid1.TextMatrix(25, i) = "加常数C=" & Format(a, "0.000") & "mm 乘常数K=" & Format(b * 1000, "0.000") & "mm/km" & " 固定误差部分a=" & Format(aa, "0.000") & "mm 比例误差系数b=" & Format(bb * 1000, "0.000") & "mm/km"
Next i
MSFlexGrid1.MergeRow(25) = True
MSFlexGrid1.MergeCells = flexMergeFree
For i = 0 To 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -