如何编码计算器项目上的“等于"按钮 [英] How do I code the Equals button on the calculator project

查看:63
本文介绍了如何编码计算器项目上的“等于"按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

卡在equals按钮上的计算器项目上,所有代码都很好,但是随着我添加更多操作,我没有得到答案,而是得到Zero,scroll和:〜检查 cmdEquals Pliz帮助仍然是一个业余爱好者.

Stuck with the calculator project on the equals button, all codes are fine, but as I add more operations I do not get the answer instead I get Zero,scroll and:~ check cmdEquals Pliz help still an amatuer.

Public Class frmCalculator
    Inherits System.Windows.Forms.Form
    Dim total1 As Single
    Dim total2 As Single
    Dim sub1, sub2 As Decimal
    Dim div1 As Integer
    Dim div2 As String
    Dim multiple1, multiple2 As Single
    Dim sign As String


    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSeven.Click
        'txtDisplay.Text = btnSeven.Text
        txtDisplay.Text = txtDisplay.Text & btnSeven.Text
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEight.Click
        'txtDisplay.Text = btnEight.Text
        txtDisplay.Text = txtDisplay.Text & btnEight.Text
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNine.Click
        'txtDisplay.Text = btnNine.Text
        txtDisplay.Text = txtDisplay.Text & btnNine.Text
    End Sub

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFour.Click
        'txtDisplay.Text = btnFour.Text
        txtDisplay.Text = txtDisplay.Text & btnFour.Text
    End Sub

    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFive.Click
        'txtDisplay.Text = btnFive.Text
        txtDisplay.Text = txtDisplay.Text & btnFive.Text
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSix.Click
        'txtDisplay.Text = btnSix.Text
        txtDisplay.Text = txtDisplay.Text & btnSix.Text
    End Sub

    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOne.Click
        'txtDisplay.Text = btnOne.Text
        txtDisplay.Text = txtDisplay.Text & btnOne.Text
    End Sub

    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTwo.Click
        'Dim MyOtherVariable As String
        'txtDisplay.Text = btnTwo.Text
        txtDisplay.Text = txtDisplay.Text & btnTwo.Text
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThree.Click
        'txtDisplay.Text = btnThree.Text
        txtDisplay.Text = txtDisplay.Text & btnThree.Text
    End Sub

    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZero.Click
        'Dim MyVariable As String
        'txtDisplay.Text = btnZero.Text
        txtDisplay.Text = txtDisplay.Text & btnZero.Text
    End Sub

   
    Private Sub cmdSubtract_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMinus.Click
        sub1 = sub1 + Val(txtDisplay.Text)
        txtDisplay.Clear()
    End Sub

    Private Sub cmdEquals_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEquals.Click
        'total2 = total1 + Val(txtDisplay.Text)
        'txtDisplay.Text = total2
        'total1 = 0
        'sub2 = sub1 - Val(txtDisplay.Text)
        'txtDisplay.Text = sub2
        'sub1 = 0
        'div2 = div1 / Val(txtDisplay.Text)
        'txtDisplay.Text = div2
        'div1 = 0
        multiple2 = multiple1 * Val(txtDisplay.Text)
        txtDisplay.Text = multiple2
        multiple1 = 0
    End Sub

    Private Sub cmdClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClear.Click
        txtDisplay.Text = ""
    End Sub

    Private Sub txtDisplay_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDisplay.TextChanged

    End Sub

    Private Sub cmdPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPlus.Click
        total1 = total1 + Val(txtDisplay.Text)
        txtDisplay.Clear()

    End Sub


    Private Sub cmdDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDivide.Click
        div1 = div1 - Val(txtDisplay.Text)
        txtDisplay.Clear()

    End Sub

    Private Sub cmdMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMultiply.Click
        multiple1 = multiple1 + Val(txtDisplay.Text)
        txtDisplay.Clear()
    End Sub
End Class

推荐答案

您真的需要整理一下代码! Button5_click处理Button7_Click,您将使自己感到困惑!

当您执行操作时加,减,除,乘,我将在等号运算中使用的某个位置设置一个标志,以确定如何进行计算.

考虑一下可以在真正的计算器上执行的步骤;
输入值
输入操作
输入值
向下分支;
输入操作或等于

如果后面跟有数字,则进行新的计算;如果后面跟有运算,则将合计"移回小计并在上方重复.

然后,您需要考虑如何使用总计/小计以及如何基于运算/等式来回移动值.
You really need to tidy up the code a bit! Button5_click handles Button7_Click, you are just going to confuse yourself!

When you perform an operation e.g. plus, minus, divide, multiply, i would set a flag somewhere to be used by the equal''s operation to determine what to do with the calculation.

Think of the steps that could be performed on a real calculator;
Enter Value
Enter operation
Enter Value
Branch down either;
Enter Operation or Perform Equals

If it is then followed by a Number, then new calculation, if it is followed by an operation then move the Total back into sub-total and repeat above.

You then need to think of how you would use Total/Subtotal and move values back and forth, based on the operation/equals etc.


这篇关于如何编码计算器项目上的“等于"按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆