求助,求人帮忙做高中VB算法程序:小计算器

2025-03-06 18:29:38
推荐回答(4个)
回答1:

注意根据代码把所有按键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

回答2:

哦,还要有模块啊。我给你做一个吧,不过你得认真看一下,想一下,学了这门课至少应该了解一些东西吧

回答3:

有计算器代码,但是没用到模块,要的话留信箱。

回答4:

周二会学校给你,计算器是我们大作业