注意根据代码把所有按键Command名称改过来。窗体见插图。
代码如下:
Option Explicit
Dim operand1, operand2, result As Double
Dim operator As String
Dim flag As Boolean
Dim signflag As Boolean
Private Sub cmdAdd_Click()
'获得第一个操作数,即加数
operand1 = Val(lblScreen.Caption)
'指定运算符为加号
operator = "+"
signflag = True
'清显示屏
lblScreen.Caption = ""
End Sub
Private Sub cmdAdd_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Button = vbLeftButton
End Sub
Private Sub cmdCls_Click()
lblScreen.Caption = ""
operand1 = 0
operand2 = 0
operator = ""
result = 0
End Sub
Private Sub cmdDivide_Click()
'获得第一个操作数,即被除数
operand1 = Val(lblScreen.Caption)
'指定运算符为除号
operator = "/"
'清显示屏
lblScreen.Caption = ""
End Sub
Private Sub cmdEqual_Click()
'从显示屏上获取第二个操作数
operand2 = Val(lblScreen.Caption)
'判断当前运算符
Select Case operator
'如果是加号,则将第一、第二操作数相加
Case "+"
result = operand1 + operand2
Case "-"
result = operand1 - operand2
Case "*"
result = operand1 * operand2
'如果是除号,先判断除数是否为零
Case "/"
If operand2 <> 0 Then
result = operand1 / operand2
Else
MsgBox "除数不能是零!", vbCritical, "错误"
lblScreen.Caption = ""
operand1 = 0
operand2 = 0
Exit Sub
End If
End Select
lblScreen.Caption = result
operand1 = 0
operand2 = 0
operator = ""
End Sub
Private Sub cmdMinus_Click()
'获得第一个操作数,即被减数
operand1 = Val(lblScreen.Caption)
'指定运算符为减号
operator = "-"
'清显示屏
lblScreen.Caption = ""
End Sub
Private Sub cmdMul_Click()
'获得第一个操作数,即乘数
operand1 = Val(lblScreen.Caption)
'指定运算符为乘号
operator = "*"
'清显示屏
lblScreen.Caption = ""
End Sub
Private Sub cmdNum_Click(Index As Integer) '数字键
'声明变量temp,用以获取数字键的索引号
Dim temp As Integer
temp = Index
'将数字键的索引号转变成对应数字显示于显示屏上
lblScreen.Caption = lblScreen.Caption & CStr(temp)
End Sub
Private Sub cmdOpposite_Click()
operand1 = Val(lblScreen.Caption)
operand1 = -operand1
result = operand1
lblScreen.Caption = result
End Sub
Private Sub cmdPoint_Click() '处理小数点
Dim temp As String
If InStr(lblScreen.Caption, ".") Then
Exit Sub
Else
lblScreen.Caption = lblScreen.Caption + "."
End If
End Sub
'键盘事件
Private Sub Form_KeyPress(KeyAscii As Integer)
cmdEqual.SetFocus
If KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Then
lblScreen.Caption = lblScreen.Caption & Chr(KeyAscii)
End If
Select Case Chr(KeyAscii)
Case "+"
cmdAdd_Click
Case "-"
cmdMinus_Click
Case "*"
cmdMul_Click
Case "/"
cmdDivide_Click
Case "."
cmdPoint_Click
Case "="
cmdEqual_Click
End Select
If KeyAscii = vbKeyEscape Then
cmdCls_Click
End If
End Sub
Private Sub Form_Load()
signflag = False
operator = ""
Form1.KeyPreview = True
End Sub
哦,还要有模块啊。我给你做一个吧,不过你得认真看一下,想一下,学了这门课至少应该了解一些东西吧
有计算器代码,但是没用到模块,要的话留信箱。
周二会学校给你,计算器是我们大作业