符合四则运算的法则的计算器

  • 格式:doc
  • 大小:35.50 KB
  • 文档页数:7

Dim data(4) As Double '数据数组
Dim b(4) As String '运算符数组
Public i As Integer
Public c As Boolean '重复按键输入的检查
Public d As Boolean '重复按运算符键输入的检查
Public e As Boolean '总体初始化检查
Private Sub Command1_Click(Index As Integer) '数字控键数组
If (c) Then '清空前面的数据
Else
Text2.Text = Text2.Text & b(i)
Text1.Text = ""
End If
If (Command1(Index).Caption <> ".") Then
Text1.Text = Text1.Text & Command1(Index).Caption
Else
If (InStr(1, Text1.Text, ".") = 0) Then '限制小数点的重复输入
Text1.Text = Text1.Text & Command1(Index).Caption
End If
End If
data(i) = Text1.Text

c = True
d = True
e = True
End Sub

Private Sub Command2_Click() '正负转换控键
If (c) Then
data(i) = -Val(Text1.Text)
Text1.Text = data(i)
End If
End Sub

Private Sub Command3_Click()
Text1.Text = ""
Text2.Text = ""
i = 0
End Sub

Private Sub Command4_Click()
If (Len(Text1.Text) > 0) Then
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End If
data(i) = Val(Text1.Text)
End Sub

Private Sub Command5_Click(Index As Integer) '+\-的控键数组
If (e) Then '避免没有初始化前使用
If (d) Then '避免重复的运算
If (data(i) < 0) Then
Text2.Text = Text2.Text & "(" & Text1.Text & ")"
Else
Text2.Text = Text2.Text & Text1.Text '将text1中的数据添加到text2中
End If
Text1.Text = "" '清空前面的数据
Select Case b(i)
Case "+"
data(i - 1) = data(i) + data(i - 1)
i = i - 1
Case "-"
data(i - 1) = data(i - 1) - data(i)
i = i - 1
Case "*"
data(i - 1) = data(i - 1) * data(i)
i = i - 1
Case "/"
data(i - 1) = data(i - 1) / data(i)
i = i - 1
End Select
If (i = 1) Then '同级运算的计算
Select Case b(i)
Case "+"
data(i - 1) = data(i) + data(i - 1)
i = i - 1
Case "-"
data(i - 1) = data(i - 1) - data(i)
i = i - 1
Case "*"
data(i - 1) = data(i - 1) * data(i)
i = i - 1
Case "/"
data(i - 1) = data(i - 1) / data(i)
i = i - 1
End Select
End If
Text1.Text = data(i) '显示前面数据的总值
d = False
If (c) Then
i = i + 1
End If
c = False
End If
b(i) = Command5(Index).Caption '运算符的存储
End If
End Sub

Private Sub Command6_Click(Index As Integer) '*\/的控键数组
If (e) Then '避免没有初始化前使用
If (d) Then '避免重复的运算
If (data(i) < 0) Then
Text2.Text = Text2.Text & "(" & Text1.Text & ")"
Else
Text2.Text = Text2.Text & Text1.Text '将text1中的数据添加到text2中
End If
Text1.Text = ""
Select Case b(i)
Case "*"
data(i - 1) = data(i - 1) * data(i)
i = i - 1
Case "/"
data(i - 1) = data(i - 1) / data(i)
i = i - 1
End Select
Text1.Text = data(i)
d = False
If (c) Then
i = i + 1
End If
c = False
End If
b(i) = Command6(Index).Caption
End If
End Sub

Private Sub Command7_Click() ' 等号控键
If (e) Then '避免没有初始化前使用
If (d) Then '避免重复的运算
If (data(i) < 0) Then
Text2.Text = Text2.Text & "(" & Text1.Text & ")"
Else
Text2.Text = Text2.Text & Text1.Text '将text1中的数据添加到text2中
End If
Text1.Text = ""
Select Case b(i)
Case "+"
data(i - 1) = data(i) + data(i - 1)
i = i - 1
Case "-"
data(i - 1) = data(i - 1) - data(i)
i = i - 1
Case "*"
data(i - 1) = data(i - 1) * data(i)
i = i - 1
Case "/"
data(i - 1) = data(i - 1) / data(i)
i = i - 1
End Select
If (i = 1) Then '同级运算的计算
Select Case b(i)
Case "+"
data(i - 1) = data(i) + data(i - 1)
i = i - 1
Case "-"
data(i - 1) = data(i - 1) - data(i)
i = i - 1
Case "*"
data(i - 1) = data(i - 1) * data(i)
i = i - 1
Case "/"
data(i - 1) = data(i - 1) / data(i)
i = i - 1
End Select
End If
Text1.Text = data(i)
d = False
End If

If (d) Then
Else
Text2.Text = Text2.Text & "=" & Text1.Text
End If

i = 0 '初始化程序
c = False
End If
End Sub

Private Sub Command8_Click()
Text1.Text = "" '清空前面的数据

End Sub
Private Sub Command9_Click()
Text2.Text = ""
End Sub

Private Sub Form_Load()
i = 0 '初始化程序
e = False
End Sub