📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "油箱截面计算(Fgb)"
ClientHeight = 5310
ClientLeft = 60
ClientTop = 510
ClientWidth = 6915
DrawStyle = 2 'Dot
LinkTopic = "Form1"
LockControls = -1 'True
MaxButton = 0 'False
ScaleHeight = 5310
ScaleWidth = 6915
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Text7
Height = 1095
Left = 360
Locked = -1 'True
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 14
Top = 4080
Width = 6375
End
Begin VB.TextBox Text6
Height = 375
Left = 1440
TabIndex = 11
Text = "82"
Top = 1080
Width = 1335
End
Begin VB.TextBox Text5
Height = 375
Left = 1440
TabIndex = 10
Text = "152"
Top = 480
Width = 1335
End
Begin VB.CommandButton Command2
Caption = "计算任意两刻度间的油量"
Height = 375
Left = 3120
TabIndex = 9
Top = 3480
Width = 3615
End
Begin VB.CommandButton Command1
Caption = "计算现刻度下油箱的油量情况"
Height = 375
Left = 240
TabIndex = 8
Top = 2160
Width = 2535
End
Begin VB.TextBox Text4
Height = 2415
Left = 3000
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 6
Top = 600
Width = 3735
End
Begin VB.TextBox Text3
Height = 375
Left = 1440
TabIndex = 3
Top = 3480
Width = 1335
End
Begin VB.TextBox Text2
Height = 375
Left = 1440
TabIndex = 1
Top = 2880
Width = 1335
End
Begin VB.TextBox Text1
Height = 375
Left = 1440
TabIndex = 0
Top = 1680
Width = 1335
End
Begin VB.Label Label6
Caption = "油箱直径(cm):"
Height = 375
Left = 240
TabIndex = 13
Top = 1200
Width = 1215
End
Begin VB.Label Label5
Caption = "油箱长度(cm):"
Height = 375
Left = 240
TabIndex = 12
Top = 600
Width = 1335
End
Begin VB.Label Label4
Caption = "结果显示(立方米)"
Height = 255
Left = 4200
TabIndex = 7
Top = 240
Width = 1455
End
Begin VB.Label Label3
Caption = "比较刻度(大)"
Height = 255
Left = 360
TabIndex = 5
Top = 3600
Width = 1095
End
Begin VB.Label Label2
Caption = "比较刻度(小)"
Height = 375
Left = 360
TabIndex = 4
Top = 3000
Width = 1095
End
Begin VB.Label Label1
Caption = "现刻度值:"
Height = 255
Left = 360
TabIndex = 2
Top = 1800
Width = 975
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim sss
Private Sub Command1_Click()
yyy = Val(Text1.Text) / 100 '将CM化为M
If yyy <= Val(Text6.Text) / 100 And yyy >= 0 Then '确认半径是否有效
count_you (yyy)
Else
Text4 = ""
Text4 = "直径有误!"
End If
End Sub
Private Sub count_you(yyy)
Text4 = "" '清空原记录数据
h = Val(Text5.Text) / 100 '油箱半径
r = 0.5 * Val(Text6.Text) / 100 '长度
PI = 3.1415926 '圆周率
If yyy > r Then z = (yyy - r) '油的高度(米)
If yyy <= r Then z = (r - yyy) '油的高度(米)
y = Sqr(r * r - z * z) '1/2油的截面长度
s_0 = ArcCos(z / r) '1/2扇形的角度值
s_san = (r * r * PI) * (s_0 / 180) '扇形的面积
s_3 = y * z '扇形内的三角形面积
s = (s_san - s_3) * h '空油的体积部分
ss = PI * r * r * h '满油时的总体积
sss = ss - s '剩余油的体积
If yyy <= r Then
k = s
s = sss
sss = k
End If
If Text1.Text <> "" Then Text4.Text = "满油时的体积:=" & Format(ss, "##.####") & vbCrLf & "剩余油的体积:=" & Format(sss, "#.####") & vbCrLf & "已用油的体积:=" & Format(s, "##.###0")
End Sub
Private Function ArcCos(X As Single) As Single '反余弦函数
Dim lSngResult As Single
If X = 0 Then
lSngResult = 90
ElseIf X = 1 Then
lSngResult = 0
Else
lSngResult = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
lSngResult = lSngResult * 180 / 3.1415926
End If
ArcCos = lSngResult
End Function
Private Sub Command2_Click()
a = Val(Text2) / 100 '小刻度值
b = Val(Text3) / 100 '大刻度值
c = Val(Text6) / 100 '直径大小
If a < c / 2 Then
k = a
a = c - b
b = c - k
End If
If a <> "" And b <> "" And a <= b And a <= c And b <= c And a >= 0 And b >= 0 Then
count_you (a) '计算小刻度时的油量值
little = sss '记录小刻度时的剩余油量值
count_you (b) '计算大刻度时的油量值
big = sss '记录大刻度时的剩余油量值
Text4 = vbCrLf & Text2.Text & "--" & Text3.Text & "刻度间的油量为:" & vbCrLf & Format(big - little, "##.####")
Else
Text4 = ""
Text4 = "请检查是否输入了合法的半径和大与小的刻度值!"
End If
End Sub
Private Sub Form_Load()
Text7 = "使用说明:" & vbCrLf & "输入'现刻度值'后按:计算现刻度下....,按键可以计算当前油箱内的剩余油量和已经使用了的油量;要计算任意两个刻度值之间的油量,请输入刻度值,注意分大小输入,精度可达到毫米级.油箱的长度和直径可任意确定;要验证是否计算正确,可输入最大直径及1/2直径来测试." & vbCrLf & "本程序用到的计算公式有:扇形面积计算;反三角函数;三角形面积等"
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -