⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 计算一个横放的圆柱体每下降一段距离,箱体内的液体的情况.
💻 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 + -