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

📄 calc.frm

📁 模拟windows计算器功能
💻 FRM
📖 第 1 页 / 共 3 页
字号:
      TabIndex        =   2
      Top             =   2520
      Width           =   495
   End
   Begin VB.CommandButton number 
      Caption         =   "1"
      Height          =   375
      Index           =   1
      Left            =   3240
      TabIndex        =   1
      Top             =   2520
      Width           =   495
   End
   Begin VB.CommandButton number 
      Caption         =   "0"
      Height          =   375
      Index           =   0
      Left            =   3240
      TabIndex        =   0
      Top             =   3000
      Width           =   495
   End
   Begin VB.Line Line4 
      X1              =   3120
      X2              =   3120
      Y1              =   960
      Y2              =   1320
   End
   Begin VB.Line Line3 
      X1              =   3120
      X2              =   2640
      Y1              =   1320
      Y2              =   1320
   End
   Begin VB.Line Line2 
      X1              =   2640
      X2              =   2640
      Y1              =   1320
      Y2              =   960
   End
   Begin VB.Line Line1 
      X1              =   2640
      X2              =   3120
      Y1              =   960
      Y2              =   960
   End
   Begin VB.Label Label1 
      Alignment       =   2  'Center
      Height          =   255
      Left            =   2640
      TabIndex        =   41
      Top             =   1080
      Width           =   495
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit '强制变量声明
Private Const PI As Double = 3.14159265358979
Public NumberSave As Single '操作数3,用于保存数字
Dim s_Number1 As String '字符串1
Dim s_Number2 As String '字符串2,文本显示由s_Number1和s_Number2共同组成
Dim Letter As String '字符串3,显示运算符
Dim Number1 As Single '操作数1
Dim Number2 As Single '操作数2,用于保存参加计算的数字
Dim Oper As Integer '操作数指示,含义如下:
                        '0:正完成一次计算
                        '1:正在输入第一操作数
                        '2:正在输入第二操作数
Dim OperCode As Integer '运算符代码,含义如下:
                            '0:除法
                            '1:乘法
                            '2:减法
                            '3:加法
                            '4:乘方
                            '9:运算符清空

Private Sub Calc_Click()
'按等号后进行计算
    If Oper < 2 Then
    '操作数少于两个
        Exit Sub
    End If
    '根据OperCode来判断运算方式
    Select Case OperCode
    Case 0
        If Option1.Value = True Then
            If Number2 = 0 Then '容错处理,判断Number2是否为零
            Result = "除数不能为零"
            Exit Sub
            End If
            Number1 = Number1 / Number2
        ElseIf Option2.Value = True Then
            Number1 = Val("&O" + s_Number1)
            Number2 = Val("&O" + s_Number2)
            If Number2 = 0 Then '容错处理,判断Number2是否为零
            Result = "除数不能为零"
            Exit Sub
            End If
            Number1 = Number1 / Number2
            Number1 = Oct(Number1)
        End If
    Case 1
        If Option1.Value = True Then
            Number1 = Number1 * Number2
        ElseIf Option2.Value = True Then
            Number1 = Val("&O" + s_Number1)
            Number2 = Val("&O" + s_Number2)
            Number1 = Number1 * Number2
            Number1 = Oct(Number1)
        End If
    Case 2
        If Option1.Value = True Then
            Number1 = Number1 - Number2
        ElseIf Option2.Value = True Then
            Number1 = Val("&O" + s_Number1)
            Number2 = Val("&O" + s_Number2)
            Number1 = Number1 - Number2
            Number1 = Oct(Number1)
        End If
    Case 3
        If Option1.Value = True Then
            Number1 = Number1 + Number2
        ElseIf Option2.Value = True Then
            Number1 = Val("&O" + s_Number1)
            Number2 = Val("&O" + s_Number2)
            Number1 = Number1 + Number2
            Number1 = Oct(Number1)
        End If
    Case 4
        If Option1.Value = True Then
            Number1 = Number1 ^ Number2
        ElseIf Option2.Value = True Then
            Number1 = Val("&O" + s_Number1)
            Number2 = Val("&O" + s_Number2)
            Number1 = Number1 ^ Number2
            Number1 = Oct(Number1)
        End If
    End Select
    Oper = 0
    OperCode = 9
    s_Number2 = ""
    s_Number1 = Str(Number1)
    Result = s_Number1
End Sub

Private Sub Command1_Click()
'退格键,删除数字最后一位
    If Oper = 1 And Len(s_Number1) > 0 Then
    '正在输入数字1,且数字1长度大于0
        s_Number1 = Left(s_Number1, Len(s_Number1) - 1) '截去数字1的字符串最后一位
        Number1 = Val(s_Number1) '重新保存数字1
        Result = s_Number1 '显示结果
    ElseIf Oper = 2 And Len(s_Number2) > 0 Then
    '正在输入数字2,且数字1长度大于0
        s_Number2 = Left(s_Number2, Len(s_Number2) - 1) '截去数字2的字符串最后一位
        Number2 = Val(s_Number2)
        Result = s_Number1 + Letter + s_Number2
    End If
End Sub

Private Sub Command10_Click()
'保存数字
    If Oper < 2 Then
    '保存数字1
        NumberSave = Number1
        If NumberSave <> 0 Then
            Label1.Caption = "M"
        End If
    Else
        NumberSave = Number2
        If NumberSave <> 0 Then
            Label1.Caption = "M"
        End If
    End If
End Sub

Private Sub Command11_Click()
'贮存数字,把数字和原有的保存数字相加得到的结果保存起来
    If Oper < 2 Then
    '保存数字1
        NumberSave = Number1 + NumberSave
        If NumberSave <> 0 Then
            Label1.Caption = "M"
        End If
    Else
    '保存数字2
        NumberSave = Number2 + NumberSave
        If NumberSave <> 0 Then
            Label1.Caption = "M"
        End If
    End If
End Sub

Private Sub Command12_Click()
'正弦运算功能
    If Oper = 1 Then
        s_Number1 = Str(Sin(Number1 * PI / 180))
        Number1 = Val(s_Number1)
        Result = s_Number1
    ElseIf Oper = 2 Then
        s_Number2 = Str(Sin(Number2 * PI / 180))
        Number2 = Val(s_Number2)
        Result = s_Number1 + Letter + s_Number2
    ElseIf Oper = 0 Then
        s_Number1 = Str(Sin(Val(Result) * PI / 180))
        Result = s_Number1
    End If
End Sub

Private Sub Command13_Click()
'余弦运算功能
    If Oper = 1 Then
        s_Number1 = Str(Cos(Number1 * PI / 180))
        Number1 = Val(s_Number1)
        Result = s_Number1
    ElseIf Oper = 2 Then
        s_Number2 = Str(Cos(Number2 * PI / 180))
        Number2 = Val(s_Number2)
        Result = s_Number1 + Letter + s_Number2
    ElseIf Oper = 0 Then
        s_Number1 = Str(Cos(Val(Result) * PI / 180))
        Result = s_Number1
    End If
End Sub

Private Sub Command14_Click()
'正切运算功能
    If Oper = 1 Then
        s_Number1 = Str(Tan(Number1 * PI / 180))
        Number1 = Val(s_Number1)
        Result = s_Number1
    ElseIf Oper = 2 Then
        s_Number2 = Str(Tan(Number2 * PI / 180))
        Number2 = Val(s_Number2)
        Result = s_Number1 + Letter + s_Number2
    ElseIf Oper = 0 Then
        s_Number1 = Str(Tan(Val(Result) * PI / 180))
        Result = s_Number1
    End If
End Sub

Private Sub Command16_Click()
'立方功能
    If Oper = 1 Then
        s_Number1 = Str(Number1 ^ 3)
        Number1 = Val(s_Number1)
        Result = s_Number1
    ElseIf Oper = 2 Then
        s_Number2 = Str(Number2 ^ 3)
        Number2 = Val(s_Number2)
        Result = s_Number1 + Letter + s_Number2
    ElseIf Oper = 0 Then
        s_Number1 = Str(Val(Result) ^ 3)
        Result = s_Number1
    End If
End Sub

Private Sub Command17_Click()
'平方功能
    If Oper = 1 Then
        s_Number1 = Str(Number1 ^ 2)
        Number1 = Val(s_Number1)
        Result = s_Number1
    ElseIf Oper = 2 Then
        s_Number2 = Str(Number2 ^ 2)
        Number2 = Val(s_Number2)
        Result = s_Number1 + Letter + s_Number2
    ElseIf Oper = 0 Then
        s_Number1 = Str(Val(Result) ^ 2)
        Result = s_Number1
    End If
End Sub

Private Sub Command18_Click()
'e的n次方功能
    If Oper = 1 Then
        Number1 = Exp(Number1)
        s_Number1 = Str(Number1)
        Result = s_Number1
    ElseIf Oper = 2 Then
        Number2 = Exp(Number2)
        s_Number2 = Str(Number2)
        Result = s_Number1 + Letter + s_Number2
    ElseIf Oper = 0 Then
        s_Number1 = Str(Exp(Val(Result)))
        Result = s_Number1
    End If
End Sub

Private Sub Command19_Click()
'ln功能
    If Oper = 1 Then
        If Number1 < 0 Then '容错处理,判断Number1是否小于零
            Result = "真数不能小于零"
            Exit Sub
        End If
        Number1 = Log(Number1) / Log(Exp(1))
        s_Number1 = Str(Number1)
        Result = s_Number1
    ElseIf Oper = 2 Then
        If Number2 < 0 Then '容错处理,判断Number2是否小于零
            Result = "真数不能小于零"
            Exit Sub
        End If
        Number2 = Log(Number2) / Log(Exp(1))
        s_Number2 = Str(Number2)
        Result = s_Number1 + Letter + s_Number2
    ElseIf Oper = 0 Then
        If Val(Result) < 0 Then '容错处理,判断result是否小于零
            Result = "真数不能小于零"
            Exit Sub
        End If
        s_Number1 = Str(Log(Val(Result)) / Log(Exp(1)))
        Result = s_Number1
    End If
End Sub

Private Sub Command2_Click()
'清除功能
    If Oper = 1 Then
    '输入数字1
        s_Number1 = "0"
        Number1 = 0
        Result = s_Number1
    ElseIf Oper = 2 Then
    '输入数字2
        s_Number2 = ""
        Number2 = 0
        Result = s_Number1 + Letter + s_Number2
    ElseIf Oper = 0 Then
        s_Number1 = "0"
        Result = s_Number1
    End If
End Sub

Private Sub Command20_Click()
'log功能
    If Oper = 1 Then
        If Number1 < 0 Then '容错处理,判断Number1是否小于零
            Result = "真数不能小于零"
            Exit Sub
        End If
        Number1 = Log(Number1)
        s_Number1 = Str(Number1)
        Result = s_Number1
    ElseIf Oper = 2 Then
        If Number2 < 0 Then '容错处理,判断Number2是否小于零
            Result = "真数不能小于零"
            Exit Sub
        End If

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -