📄 calc.frm
字号:
Number2 = Log(Number2)
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)))
Result = s_Number1
End If
End Sub
Private Sub Command21_Click()
'PI功能
If Oper = 1 Then
Number1 = PI
s_Number1 = Str(Number1)
Result = s_Number1
ElseIf Oper = 2 Then
Number2 = PI
s_Number2 = Str(Number2)
Result = s_Number1 + Letter + s_Number2
ElseIf Oper = 0 Then
s_Number1 = Str(PI)
Result = Str(PI)
End If
End Sub
Private Sub Command22_Click()
'阶乘功能
Dim i As Integer
If Oper = 1 Then
If Number1 < 0 Then '容错处理,判断Number1是否小于零
Result = "阶乘数不能小于零"
Exit Sub
End If
Number1 = Val(s_Number1)
For i = 1 To (Number1 - 1)
Number1 = Number1 * i
Next i
s_Number1 = Str(Number1)
Result = s_Number1
ElseIf Oper = 2 Then
If Number2 < 0 Then '容错处理,判断Number2是否小于零
Result = "阶乘数不能小于零"
Exit Sub
End If
Number2 = Val(s_Number2)
For i = 1 To (Number1 - 1)
Number1 = Number1 * i
Next i
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
Number1 = Val(Result)
For i = 1 To (Number1 - 1)
Number1 = Number1 * i
Next i
Result = Str(Number1)
End If
End Sub
Private Sub Command23_Click()
'余切功能
If Oper = 1 Then
s_Number1 = Str(Atn(Number1 * PI / 180))
Number1 = Val(s_Number1)
Result = s_Number1
ElseIf Oper = 2 Then
s_Number2 = Str(Atn(Number2 * PI / 180))
Number2 = Val(s_Number2)
Result = s_Number1 + Letter + s_Number2
ElseIf Oper = 0 Then
s_Number1 = Str(Atn(Val(Result) * PI / 180))
Result = s_Number1
End If
End Sub
Private Sub Command3_Click()
'复位功能
Oper = 1
s_Number1 = ""
s_Number2 = ""
Number1 = 0
Number2 = 0
Result = "0"
End Sub
Private Sub Command4_Click()
'相反数功能
If Oper = 1 Then
s_Number1 = Str(-1 * Number1)
Number1 = Val(s_Number1)
Result = s_Number1
ElseIf Oper = 2 Then
s_Number2 = Str(-1 * Number2)
Number2 = Val(s_Number2)
Result = s_Number1 + Letter + s_Number2
ElseIf Oper = 0 Then
s_Number1 = Str(-1 * Result)
Result = s_Number1
End If
End Sub
Private Sub Command5_Click()
'开方功能
If Oper = 1 Then
If Number1 < 0 Then '容错处理,判断Number1是否小于零
Result = "被开平方数不能小于零"
Exit Sub
End If
s_Number1 = Str(Sqr(Number1))
Number1 = Val(s_Number1)
Result = s_Number1
ElseIf Oper = 2 Then
If Number2 < 0 Then '容错处理,判断Number1是否小于零
Result = "被开平方数不能小于零"
Exit Sub
End If
s_Number2 = Str(Sqr(Number2))
Number2 = Val(s_Number2)
Result = s_Number1 + Letter + s_Number2
ElseIf Oper = 0 Then
If Val(Result) < 0 Then '容错处理,判断Number1是否小于零
Result = "被开平方数不能小于零"
Exit Sub
End If
s_Number1 = Str(Sqr(Val(Result)))
Result = s_Number1
End If
End Sub
Private Sub Command6_Click()
'以百分比的形式显示乘积功能
If Oper < 2 Then
Number1 = 0
Result = "0"
Else
'进行计算
Number2 = Number1 * 0.01 * Number2
s_Number2 = Str(Number2)
Result = s_Number2
End If
'显示运算符
End Sub
Private Sub Command7_Click()
'倒数功能
If Oper = 1 Then
If Number1 = 0 Then '容错处理,判断Number1是否为零
Result = "分母不能为零"
Exit Sub
End If
s_Number1 = Str(1 / Number1)
Number1 = Val(s_Number1)
Result = s_Number1
ElseIf Oper = 2 Then
If Number2 = 0 Then '容错处理,判断Number1是否为零
Result = "分母不能为零"
Exit Sub
End If
s_Number2 = Str(1 / Number2)
Number2 = Val(s_Number2)
Result = s_Number1 + Letter + s_Number2
ElseIf Oper = 0 Then
If Val(Result) = 0 Then '容错处理,判断Number1是否为零
Result = "分母不能为零"
Exit Sub
End If
s_Number1 = Str(1 / Val(Result))
Result = s_Number1
End If
End Sub
Private Sub Command8_Click()
'清除保存的数字功能
NumberSave = 0
Label1.Caption = ""
End Sub
Private Sub Command9_Click()
'读取保存的数字功能
Oper = 1
s_Number1 = Str(NumberSave)
s_Number2 = ""
Number1 = NumberSave
Number2 = 0
Result = s_Number1 + Letter + s_Number2
End Sub
Private Sub Dot_Click()
'输入小数点程序
'正在输入数字
If Oper = 0 And OperCode = 9 Then
'输入数字1
If s_Number1 = "0" Or s_Number1 = "" Then
s_Number1 = "0." '加入一个字符
Else
s_Number1 = s_Number1 + "." '加入一个字符
End If
Oper = 1
Number1 = Val(s_Number1)
Result = s_Number1 '显示数字1(字符串形式)
ElseIf Oper = 0 And OperCode <> 9 Then
'输入数字2
If s_Number2 = "0" Or s_Number2 = "" Then
s_Number2 = "0." '加入一个字符
Else
s_Number2 = s_Number2 + "." '加入一个字符
End If
Oper = 2
Number2 = Val(s_Number2)
Result = s_Number1 + Letter + s_Number2
ElseIf Oper = 1 Then
'数字1
If Not InStr(s_Number1, ".") > 0 Then
'数字中无小数点
s_Number1 = s_Number1 + "."
Result = s_Number1
ElseIf s_Number1 = "0" Or s_Number1 = "" Then
s_Number1 = "0."
Result = s_Number1
End If
ElseIf Oper = 2 Then
'数字2
If s_Number2 = "0" Or s_Number2 = "" Then
s_Number2 = "0."
Result = s_Number1 + Letter + s_Number2
ElseIf Not InStr(s_Number2, ".") > 0 Then
s_Number2 = s_Number2 + "."
Result = s_Number1 + Letter + s_Number2
End If
End If
End Sub
Private Sub Form_Load()
'初始化数据
Oper = 0
OperCode = 9
s_Number1 = ""
s_Number2 = ""
Number1 = 0
Number2 = 0
NumberSave = 0
Result = "0"
End Sub
Private Sub Number_Click(Index As Integer)
'输入数字程序
'正在输入数字
If Oper = 0 And OperCode = 9 Then
'输入数字1
s_Number1 = ""
Oper = 1
s_Number1 = s_Number1 + Right(Str(Index), 1) '加入一个字符
Number1 = Val(s_Number1)
Result = s_Number1 '显示数字1(字符串形式)
ElseIf Oper = 0 And OperCode <> 9 Then
'输入数字2
If s_Number2 = "0" Then
s_Number2 = ""
End If
Oper = 2
s_Number2 = s_Number2 + Right(Str(Index), 1)
Number2 = Val(s_Number2)
Result = s_Number1 + Letter + s_Number2
ElseIf Oper = 1 Then
'输入数字1
If s_Number1 = "0" Then
s_Number1 = ""
End If
s_Number1 = s_Number1 + Right(Str(Index), 1) '加入一个字符
Number1 = Val(s_Number1) '保存当前数字1的数值
Result = s_Number1 '显示数字1(字符串形式)
ElseIf Oper = 2 Then
'输入数字2
If s_Number2 = "0" Then
s_Number2 = ""
End If
s_Number2 = s_Number2 + Right(Str(Index), 1)
Number2 = Val(s_Number2)
Result = s_Number1 + Letter + s_Number2
End If
End Sub
Private Sub Operate_Click(Index As Integer)
'点击运算符
If Oper < 2 Then
Oper = 2
Else
'进行计算
Call Calc_Click
End If
'显示运算符
Letter = " " + Operate(Index).Caption + " "
Result = s_Number1 + Letter + s_Number2
OperCode = Index '保存运算符标志
End Sub
Private Sub Option1_Click()
'十进制功能
number(8).Enabled = True
number(9).Enabled = True
Command12.Enabled = True
Command13.Enabled = True
Command14.Enabled = True
Command21.Enabled = True
Command23.Enabled = True
Number1 = Val("&O" + s_Number1)
Number2 = Val("&O" + s_Number2)
s_Number1 = Str(Number1)
s_Number2 = Str(Number2)
If Oper = 1 Then
Result = s_Number1
End If
If Oper = 2 Then
Result = s_Number1 + Letter + s_Number2
End If
If Oper = 0 Then
Result = Val("&O" + Result)
End If
End Sub
Private Sub Option2_Click()
'八进制功能
Command12.Enabled = False
Command13.Enabled = False
Command14.Enabled = False
Command21.Enabled = False
Command23.Enabled = False
number(8).Enabled = False
number(9).Enabled = False
Number1 = Oct(Number1)
Number2 = Oct(Number2)
s_Number1 = Str(Number1)
s_Number2 = Str(Number2)
If Oper = 1 Then
Result = s_Number1
End If
If Oper = 2 Then
Result = s_Number1 + Letter + s_Number2
End If
If Oper = 0 Then
Result = Oct(Result)
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -