📄 calc.frm
字号:
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 1 'Fixed Single
Caption = "计算器"
ClientHeight = 2415
ClientLeft = 45
ClientTop = 330
ClientWidth = 3270
LinkTopic = "Form1"
LockControls = -1 'True
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 2415
ScaleWidth = 3270
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Result
Alignment = 1 'Right Justify
Height = 270
Left = 120
TabIndex = 19
Top = 120
Width = 3015
End
Begin VB.CommandButton Calc
Caption = "="
Height = 375
Left = 2520
TabIndex = 18
Top = 1920
Width = 615
End
Begin VB.CommandButton Command3
Caption = "C"
Height = 375
Left = 2520
TabIndex = 17
Top = 1440
Width = 615
End
Begin VB.CommandButton Command2
Caption = "CE"
Height = 375
Left = 2520
TabIndex = 16
Top = 960
Width = 615
End
Begin VB.CommandButton Command1
Caption = "<"
Height = 375
Left = 2520
TabIndex = 15
Top = 480
Width = 615
End
Begin VB.CommandButton Operate
Caption = "+"
Height = 375
Index = 3
Left = 1920
TabIndex = 14
Top = 1920
Width = 495
End
Begin VB.CommandButton Operate
Caption = "-"
Height = 375
Index = 2
Left = 1920
TabIndex = 13
Top = 1440
Width = 495
End
Begin VB.CommandButton Operate
Caption = "*"
Height = 375
Index = 1
Left = 1920
TabIndex = 12
Top = 960
Width = 495
End
Begin VB.CommandButton Operate
Caption = "/"
Height = 375
Index = 0
Left = 1920
TabIndex = 11
Top = 480
Width = 495
End
Begin VB.CommandButton Dot
Caption = "."
Height = 375
Left = 1320
TabIndex = 10
Top = 1920
Width = 495
End
Begin VB.CommandButton Number
Caption = "9"
Height = 375
Index = 9
Left = 1320
TabIndex = 9
Top = 480
Width = 495
End
Begin VB.CommandButton Number
Caption = "8"
Height = 375
Index = 8
Left = 720
TabIndex = 8
Top = 480
Width = 495
End
Begin VB.CommandButton Number
Caption = "7"
Height = 375
Index = 7
Left = 120
TabIndex = 7
Top = 480
Width = 495
End
Begin VB.CommandButton Number
Caption = "6"
Height = 375
Index = 6
Left = 1320
TabIndex = 6
Top = 960
Width = 495
End
Begin VB.CommandButton Number
Caption = "5"
Height = 375
Index = 5
Left = 720
TabIndex = 5
Top = 960
Width = 495
End
Begin VB.CommandButton Number
Caption = "4"
Height = 375
Index = 4
Left = 120
TabIndex = 4
Top = 960
Width = 495
End
Begin VB.CommandButton Number
Caption = "3"
Height = 375
Index = 3
Left = 1320
TabIndex = 3
Top = 1440
Width = 495
End
Begin VB.CommandButton Number
Caption = "2"
Height = 375
Index = 2
Left = 720
TabIndex = 2
Top = 1440
Width = 495
End
Begin VB.CommandButton Number
Caption = "1"
Height = 375
Index = 1
Left = 120
TabIndex = 1
Top = 1440
Width = 495
End
Begin VB.CommandButton Number
Caption = "0"
Height = 375
Index = 0
Left = 120
TabIndex = 0
Top = 1920
Width = 1095
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit '强制变量声明
Dim s_Number1 As String '字符串1
Dim s_Number2 As String '字符串2,文本显示由s_Number1和s_Number2
'共同组成
Dim Number1 As Single '操作数1
Dim Number2 As Single '操作数2,用于保存参加计算的数字
Dim Oper As Integer '操作数指示,含义如下:
'1:正在输入第一操作数
'2:正在输入第二操作数
'0:正完成一次计算
Dim OperCode As Integer '运算符代码,含义如下:
'0:除法
'1:乘法
'2:减法
'3:加法
Dim IsNumber As Boolean '输入数字标志,含义如下:
'TRUE:正在输入数字
'FALSE:输入运算符
Private Sub Calc_Click()
'计算结果
If Oper < 2 Then
'操作数少于两个
Exit Sub
End If
Select Case OperCode
Case 0
Number1 = Number1 / Number2 '应加入容错处理,判断Number2不为零
Case 1
Number1 = Number1 * Number2
Case 2
Number1 = Number1 - Number2
Case 3
Number1 = Number1 + Number2
End Select
Oper = 0
IsNumber = False
s_Number2 = ""
s_Number1 = Str(Number1)
Result = s_Number1
End Sub
Private Sub Command1_Click()
If IsNumber And 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 IsNumber And 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 + s_Number2
End If
End Sub
Private Sub Command2_Click()
If IsNumber Then
'正在输入数字
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 + s_Number2
End If
End If
End Sub
Private Sub Command3_Click()
Form_Load
End Sub
Private Sub Dot_Click()
'输入小数点程序
If IsNumber Then
'正在输入数字
If Oper = 1 Then
'数字1
If Not InStr(s_Number1, ".") > 0 Then
'数字中无小数点
s_Number1 = s_Number1 + "."
Result = s_Number1
End If
ElseIf Oper = 2 Then
'数字2
If Not InStr(s_Number2, ".") > 0 Then
s_Number2 = s_Number2 + "."
Result = s_Number1 + s_Number2
End If
End If
End If
End Sub
Private Sub Form_Load()
'初始化数据
Oper = 1
IsNumber = True
s_Number1 = ""
s_Number2 = ""
Number1 = 0
Number2 = 0
Result = ""
End Sub
Private Sub Number_Click(Index As Integer)
'输入数字程序
If IsNumber Then
'正在输入数字
If Oper = 1 Then
'输入数字1
s_Number1 = s_Number1 + Right(Str(Index), 1) '加入一个字符
Number1 = Val(s_Number1) '保存当前数字1的数值
Result = s_Number1 '显示数字1(字符串形式)
ElseIf Oper = 2 Then
'输入数字2
s_Number2 = s_Number2 + Right(Str(Index), 1)
Number2 = Val(s_Number2)
Result = s_Number1 + s_Number2
End If
ElseIf Not IsNumber Then 'And Oper <> 0 Then
'当用户按运算符按钮(包括等号)后,IsNumber变为FALSE
'只有开始输入第二个数字时,才会执行如下程序
IsNumber = True
s_Number1 = s_Number1 + s_Number2 + " " '保存运算符显示
Oper = 2
Number2 = Index
s_Number2 = Right(Str(Number2), 1)
Result = s_Number1 + s_Number2 '显示公式
End If
End Sub
Private Sub Operate_Click(Index As Integer)
If IsNumber And Oper = 1 Then
'刚才在输入数字1并输入第一个运算符
IsNumber = False
Oper = 2
ElseIf IsNumber Then
'输入第二个运算符
'必须首先计算上一次的结果再开始下一次计算
Call Calc_Click
Oper = 2
IsNumber = False
End If
s_Number2 = " " + Operate(Index).Caption '取运算符字符
Result = s_Number1 + s_Number2
OperCode = Index '保存运算符标志
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -