📄 例7.15.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "四则运算"
ClientHeight = 2085
ClientLeft = 60
ClientTop = 345
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 2085
ScaleWidth = 4680
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Text2
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 720
TabIndex = 3
Text = " "
Top = 1440
Width = 975
End
Begin VB.CommandButton Command1
Caption = "计算"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2880
TabIndex = 2
Top = 1440
Width = 975
End
Begin VB.TextBox Text1
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 120
TabIndex = 0
Text = " "
Top = 480
Width = 4455
End
Begin VB.Label Label2
Caption = "计算结果"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 840
TabIndex = 4
Top = 1200
Width = 855
End
Begin VB.Label Label1
Caption = "四则运算式"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1800
TabIndex = 1
Top = 240
Width = 1215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim s(20) As String '数组s存放按+,-号分解出来的式子
Private Sub command1_click()
n = handle1(Text1.Text) '分解出n个式子
total = 0 '累加数初值
For i = 1 To n
m = handle2(s(i)) '计算各乘除式的值
total = total + m '各式累加
Next i
Text2.Text = total '显示结果
End Sub
Function handle1(ByVal t) As Single
If Left(t, 1) <> "+" And Left(t, 1) <> "-" Then
t = "+" + t '使以"+"开头,方便处理
End If
k = 0
Do While t <> ""
n1 = InStr(2, t, "+") '找+号
n2 = InStr(2, t, "-") '找-号
k = k + 1
Select Case True
Case n1 = 0 And n2 = 0 '无+、-号
s(k) = t '取剩余部分
t = ""
Case n2 = 0 '无-号
s(k) = Mid(t, 1, n1 - 1) '取到+号
t = Mid(t, n1) '从该+号开始截取
Case n2 < n1 Or n1 = 0 '先遇到-号或无+号
s(k) = Mid(t, 1, n2 - 1) '取到-号
t = Mid(t, n2) '从该-号开始截取
Case n1 < n2 '先遇到+号
s(k) = Mid(t, 1, n1 - 1) '取到+号
t = Mid(t, n1) '从该+号开始截取
End Select
Loop
handle1 = k '分解出来的式子个数
End Function
Function handle2(x) As Single
f = Left(x, 1) '取出符号+或-
x = "*" + Mid(x, 2) '前头加*,方便处理
Sum = 1 '累乘/除的初值
Do While x <> ""
m1 = InStr(2, x, "*") '找*号
m2 = InStr(2, x, "/") '找/号
Select Case True
Case m1 = 0 And m2 = 0 '已无乘除号
y = Mid(x, 1)
x = ""
Case m1 = 0 Or (m1 > m2 And m2 > 0)
y = Mid(x, 1, m2 - 1) '取至除号
x = Mid(x, m2)
Case m2 = 0 Or (m2 > m1 And m1 > 0)
y = Mid(x, 1, m1 - 1) '取至乘号
x = Mid(x, m1)
End Select
If Left(y, 1) = "*" Then '执行乘除运算
Sum = Sum * Val(Mid(y, 2))
Else
Sum = Sum / Val(Mid(y, 2))
End If
Loop
If f = "+" Then '带回+,-号
handle2 = Sum
Else
handle2 = -Sum
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -