VB--简单计算器

Option Explicit

Dim potflag As Integer      '标识是否用小数点

Dim numcol As Integer       ' 点击运算符的个数

Dim LastInput               ' 指示上一次操作的内容

Dim colflag                 'numcol1时,保存运算符

Dim temp1, temp2            '分别保存运算符两端的运算数

 

Private Sub CmdCel_Click()     '重新开始计算按钮,个计量数和标识初始化

    Res = Format(0, "0.")

    temp1 = 0

    temp2 = 0

    numcol = 0

    potflag = False

    LastInput = "cel"   '标识此操作为"cel"

End Sub

Private Sub CmdPot_Click()  '使用小数点

    If LastInput <> "num" Then

        Res = Format(0, "0.")

    ElseIf String(1, Res) = "-" Then

        Res = Format(0, "-0.")

End If 

potflag = True

    LastInput = "num"   '标识此操作为"num"

End Sub

 

Private Sub Cmdsign_Click()     '使用正负号

    If String(1, Res) <> "-" Then   '如果当前是正数添加负号

        Res = "-" & Res

    Else: Res = Right(Res, Len(Res) - 1)  '如果当前是证号,取消负号

End If 

LastInput = "num"   '标识此操作为"num"

End Sub

Private Sub ComCol_Click(Index As Integer)  '点击操作符,可进行连续运算

    numcol = numcol + 1     '通过numcol标识点击运算符的次数

    If numcol = 1 Then  '当前数为操作符左侧运算数时,记录当前操作数

        temp1 = Res

        Res = Format(0, "0.")

    ElseIf numcol = 2 Then '当前操作数为操作符右侧数,进行相应运算

        temp2 = Res

        Select Case colflag

        Case "+"

            temp1 = CDbl(temp1) + CDbl(temp2)

        Case "-"

            temp1 = CDbl(temp1) - CDbl(temp2)

        Case "*"

            temp1 = CDbl(temp1) * CDbl(temp2)

        Case "/"

            If temp2 = 0 Then

                MsgBox "输入错误,除数不能为0", vbOKOnly, "提示"

            Else: temp1 = CDbl(temp1) / CDbl(temp2)

            End If

        Case "="

            Res = temp2

        End Select

        Res = temp1

        numcol = 0

End If 

colflag = ComCol(Index).Caption '记录该次选择的操作符

    LastInput = "col"   '标识此操作为"col"

End Sub

Private Sub ComNum_Click(Index As Integer)  '点击数字按钮

    If LastInput <> "num" Then  '显示需要先判断是否启用小数点,再选择显示的方法

        Res = Format(0, ".")

        potflag = False

End If  If potflag Then

        Res = Res + ComNum(Index).Caption

    Else:  Res = Left(Res, InStr(Res, Format(0, ".")) - 1) + ComNum(Index).Caption + Format(0, ".")

End If

LastInput = "num"   '标识此操作为"num"

End Sub

Private Sub Res_Change()    'Res为操作数和计算结果显示的文本框

End Sub

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值