Dim Num1, Num2 As Double
Dim StrNum1, StrNum2 As String
Dim FirstNum As Boolean '判断是否是数字开头
Dim PointFlag As Boolean
Dim Runsign As Integer '存储运算符号
Dim SignFlag As Boolean '判断是否已有运算符号
Sub ClearData()
Num1 = 0
Num2 = 0
StrNum1 = ""
StrNum2 = ""
FirstNum = True
PointFlag = False
Runsign = 0
SignFlag = False
Label1.Caption = Trim("0.")
End Sub
Sub Run()
Num1 = Val(StrNum2)
Num2 = Val(StrNum1)
Select Case Runsign
Case 1
equal = Num1 + Num2
Case 2
equal = Num1 - Num2
Case 3
equal = Num1 * Num2
Case 4
If (Num2 = 0) Then
Err = MsgBox("除数不能为0", vbOKOnly, "错误")
equal = Num1
Else
equal = Num1 / Num2
End If
End Select
If equal > 0 And equal <= 1 Then
StrNum2 = Trim("0") + Trim(Str(equal))
ElseIf equal < 0 And equal >= -1 Then
equal = -equal
StrNum2 = Trim("-0") + Trim(Str(equal))
Else
StrNum2 = Str(equal)
End If
StrNum1 = StrNum2
Label1.Caption = StrNum2
End SubPrivate Sub blue_Click()
Form1.BackColor = &HC00000
End SubPrivate Sub clear_Click()
Call ClearData
End SubPrivate Sub Command1_Click(Index As Integer)
Select Case Index
Case 0 To 9
If FirstNum Then
StrNum1 = Trim(Str(Index))
FirstNum = False Else
StrNum1 = Trim(StrNum1) + Trim(Str(Index))
If PointFlag Then
End If
End If
Label1.Caption = StrNum1
Case 10
If Not PointFlag Then
If FirstNum Then
StrNum1 = Trim("0.")
FirstNum = False
Else
StrNum1 = StrNum1 + "."
End If
Else
Exit Sub
End If
PointFlag = True
Label1.Caption = Trim(StrNum1)
Case 12 To 15
FirstNum = True '使下次可以输入新数据
PointFlag = False '还原标记值
If SignFlag Then
Call Run
Else
SignFlag = True
StrNum2 = StrNum1
'StrNum1 = ""
End If
Runsign = Index - 11
Case 11
If Not SignFlag Then
Label1.Caption = Trim(StrNum1)
equal = Val(StrNum1)
FirstNum = True
PointFlag = False
Else
Call Run
SignFlag = False
FirstNum = True
End If
Case 16
Call ClearData
Case 17
If Val(StrNum1) >= 1 Then
StrNum1 = "-" + Trim(StrNum1)
ElseIf Val(StrNum1) < 1 And Val(StrNum1) > 0 Then
StrNum1 = "-0" + Trim(Str(Val(StrNum1)))
ElseIf Val(StrNum1) < 0 And Val(StrNum1) > -1 Then
StrNum1 = "0" + Trim(Str(-Val(StrNum1)))
ElseIf Val(StrNum1) <= -1 Then
StrNum1 = Str(-Val(StrNum1))
Else
Exit Sub
End If
Label1.Caption = StrNum1
End Select
End SubPrivate Sub dedfault_Click()
Form1.BackColor = &H400000
End SubPrivate Sub exit_Click()
ext = MsgBox("确实想退出吗?", vbExclamation + vbYesNo, "退出")
If ext = vbYes Then
End
End If
End SubPrivate Sub Form_Load()
Num1 = 0
Num2 = 0
StrNum1 = ""
StrNum2 = ""
FirstNum = True
PointFlag = False
Runsign = 0
SignFlag = False
End SubPrivate Sub green_Click()
Form1.BackColor = &HC000&
End SubPrivate Sub red_Click()
Form1.BackColor = &HC0&
End SubPrivate Sub this_Click()
myexit = MsgBox("简易计算器", vbOKOnly, "关于")
End Sub
Dim StrNum1, StrNum2 As String
Dim FirstNum As Boolean '判断是否是数字开头
Dim PointFlag As Boolean
Dim Runsign As Integer '存储运算符号
Dim SignFlag As Boolean '判断是否已有运算符号
Sub ClearData()
Num1 = 0
Num2 = 0
StrNum1 = ""
StrNum2 = ""
FirstNum = True
PointFlag = False
Runsign = 0
SignFlag = False
Label1.Caption = Trim("0.")
End Sub
Sub Run()
Num1 = Val(StrNum2)
Num2 = Val(StrNum1)
Select Case Runsign
Case 1
equal = Num1 + Num2
Case 2
equal = Num1 - Num2
Case 3
equal = Num1 * Num2
Case 4
If (Num2 = 0) Then
Err = MsgBox("除数不能为0", vbOKOnly, "错误")
equal = Num1
Else
equal = Num1 / Num2
End If
End Select
If equal > 0 And equal <= 1 Then
StrNum2 = Trim("0") + Trim(Str(equal))
ElseIf equal < 0 And equal >= -1 Then
equal = -equal
StrNum2 = Trim("-0") + Trim(Str(equal))
Else
StrNum2 = Str(equal)
End If
StrNum1 = StrNum2
Label1.Caption = StrNum2
End SubPrivate Sub blue_Click()
Form1.BackColor = &HC00000
End SubPrivate Sub clear_Click()
Call ClearData
End SubPrivate Sub Command1_Click(Index As Integer)
Select Case Index
Case 0 To 9
If FirstNum Then
StrNum1 = Trim(Str(Index))
FirstNum = False Else
StrNum1 = Trim(StrNum1) + Trim(Str(Index))
If PointFlag Then
End If
End If
Label1.Caption = StrNum1
Case 10
If Not PointFlag Then
If FirstNum Then
StrNum1 = Trim("0.")
FirstNum = False
Else
StrNum1 = StrNum1 + "."
End If
Else
Exit Sub
End If
PointFlag = True
Label1.Caption = Trim(StrNum1)
Case 12 To 15
FirstNum = True '使下次可以输入新数据
PointFlag = False '还原标记值
If SignFlag Then
Call Run
Else
SignFlag = True
StrNum2 = StrNum1
'StrNum1 = ""
End If
Runsign = Index - 11
Case 11
If Not SignFlag Then
Label1.Caption = Trim(StrNum1)
equal = Val(StrNum1)
FirstNum = True
PointFlag = False
Else
Call Run
SignFlag = False
FirstNum = True
End If
Case 16
Call ClearData
Case 17
If Val(StrNum1) >= 1 Then
StrNum1 = "-" + Trim(StrNum1)
ElseIf Val(StrNum1) < 1 And Val(StrNum1) > 0 Then
StrNum1 = "-0" + Trim(Str(Val(StrNum1)))
ElseIf Val(StrNum1) < 0 And Val(StrNum1) > -1 Then
StrNum1 = "0" + Trim(Str(-Val(StrNum1)))
ElseIf Val(StrNum1) <= -1 Then
StrNum1 = Str(-Val(StrNum1))
Else
Exit Sub
End If
Label1.Caption = StrNum1
End Select
End SubPrivate Sub dedfault_Click()
Form1.BackColor = &H400000
End SubPrivate Sub exit_Click()
ext = MsgBox("确实想退出吗?", vbExclamation + vbYesNo, "退出")
If ext = vbYes Then
End
End If
End SubPrivate Sub Form_Load()
Num1 = 0
Num2 = 0
StrNum1 = ""
StrNum2 = ""
FirstNum = True
PointFlag = False
Runsign = 0
SignFlag = False
End SubPrivate Sub green_Click()
Form1.BackColor = &HC000&
End SubPrivate Sub red_Click()
Form1.BackColor = &HC0&
End SubPrivate Sub this_Click()
myexit = MsgBox("简易计算器", vbOKOnly, "关于")
End Sub
我的E_mail: [email protected]