如题所述
用vb6.0
设置1个Label,16个CommandButton,加减乘除设置为一个控件数组Command1,=设置为一个控件数组Command2,0~9到小数点设置成一个控件数组Command3,各自的Index属性值与对应的数值相同,小数点为10,标签的Caption设为空,16个CommandButton按照界面属性设置Caption
代码是:
Dim s(1) As String '存放二个操作数
Dim op, k As Integer 'op存放操作符对应索引值,k对应操作数下标
Dim b As Boolean '控制显示标签的标题的初值是否为空
'上述变量均为窗体级变量,可以被以下各个过程使用
Private Sub Command1_Click(Index As Integer) '点击运算符
k = 1 '准备存放每二个操作数
op = Index '确定按了哪个运算符
Command2.Enabled = True '=按钮有效
b = True '标签中准备显示另一操作数
End Sub
Private Sub Command2_Click() '按了=按钮后执行的代码
Select Case op '将数字串转换成单精度数据后进行计算
Case 0: Label1.Caption = Str(CSng(s(0)) + CSng(s(1)))
Case 1: Label1.Caption = Str(CSng(s(0)) - CSng(s(1)))
Case 2: Label1.Caption = Str(CSng(s(0)) * CSng(s(1)))
Case 3: Label1.Caption = Str(CSng(s(0)) / CSng(s(1)))
End Select
s(0) = "": s(1) = ""
b = True '标签中准备显示运算结果
k = 0 '操作数又从头开始
For i = 0 To 3
Command1(i).Enabled = False '各运算符按钮变灰
Next i
Command2.Enabled = False '=按钮变灰
End Sub
Private Sub Command3_Click(Index As Integer) '按了数字按钮和小数点按钮执行的代码
For i = 0 To 3 '运算符按钮有效
Command1(i).Enabled = True
Next i
If b Then Label1.Caption = "" '表示是另一操作数
If Index = 10 Then '若是小数点
Label1.Caption = Label1.Caption + "."
Else
Label1.Caption = Label1.Caption + Chr(48 + Index)
End If
s(k) = Label1.Caption '存放操作数
b = False '同一个操作数
End Sub
Private Sub Form_Load()
For i = 0 To 3 '初始时运算符按钮灰色
Command1(i).Enabled = False
Next i
Command2.Enabled = False '初始时=按钮灰色
s(0) = ""
s(1) = ""
k = 0
End Sub
设置1个Label,16个CommandButton,加减乘除设置为一个控件数组Command1,=设置为一个控件数组Command2,0~9到小数点设置成一个控件数组Command3,各自的Index属性值与对应的数值相同,小数点为10,标签的Caption设为空,16个CommandButton按照界面属性设置Caption
代码是:
Dim s(1) As String '存放二个操作数
Dim op, k As Integer 'op存放操作符对应索引值,k对应操作数下标
Dim b As Boolean '控制显示标签的标题的初值是否为空
'上述变量均为窗体级变量,可以被以下各个过程使用
Private Sub Command1_Click(Index As Integer) '点击运算符
k = 1 '准备存放每二个操作数
op = Index '确定按了哪个运算符
Command2.Enabled = True '=按钮有效
b = True '标签中准备显示另一操作数
End Sub
Private Sub Command2_Click() '按了=按钮后执行的代码
Select Case op '将数字串转换成单精度数据后进行计算
Case 0: Label1.Caption = Str(CSng(s(0)) + CSng(s(1)))
Case 1: Label1.Caption = Str(CSng(s(0)) - CSng(s(1)))
Case 2: Label1.Caption = Str(CSng(s(0)) * CSng(s(1)))
Case 3: Label1.Caption = Str(CSng(s(0)) / CSng(s(1)))
End Select
s(0) = "": s(1) = ""
b = True '标签中准备显示运算结果
k = 0 '操作数又从头开始
For i = 0 To 3
Command1(i).Enabled = False '各运算符按钮变灰
Next i
Command2.Enabled = False '=按钮变灰
End Sub
Private Sub Command3_Click(Index As Integer) '按了数字按钮和小数点按钮执行的代码
For i = 0 To 3 '运算符按钮有效
Command1(i).Enabled = True
Next i
If b Then Label1.Caption = "" '表示是另一操作数
If Index = 10 Then '若是小数点
Label1.Caption = Label1.Caption + "."
Else
Label1.Caption = Label1.Caption + Chr(48 + Index)
End If
s(k) = Label1.Caption '存放操作数
b = False '同一个操作数
End Sub
Private Sub Form_Load()
For i = 0 To 3 '初始时运算符按钮灰色
Command1(i).Enabled = False
Next i
Command2.Enabled = False '初始时=按钮灰色
s(0) = ""
s(1) = ""
k = 0
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答 2007-01-13
在网络上就有现成的啊。
还有源文件的呢!
在百度网页上查!
还有源文件的呢!
在百度网页上查!