Vb.net 如何在VB计算器程序中显示中间结果
我正在编写一个简单的VisualBasic四函数计算器加、减、乘、除应用程序,我想在按下运算符时显示一个中间结果 我创建的Windows窗体包含按钮,因此只需要在GUI上单击鼠标即可输入,无需键盘输入 根据要求中的定义,将根据以下顺序规则输入完整的问题: 一个数字,后跟 一个操作员键,后跟 另一个数字,后跟 也可以重复步骤2,在按下操作员或equals按钮时显示中间结果。 我知道需要在操作员点击事件中进行更改以满足此要求,但我不知道如何进行更改 下面是加法、减法、乘法、除法和等于按钮的代码Vb.net 如何在VB计算器程序中显示中间结果,vb.net,calculator,Vb.net,Calculator,我正在编写一个简单的VisualBasic四函数计算器加、减、乘、除应用程序,我想在按下运算符时显示一个中间结果 我创建的Windows窗体包含按钮,因此只需要在GUI上单击鼠标即可输入,无需键盘输入 根据要求中的定义,将根据以下顺序规则输入完整的问题: 一个数字,后跟 一个操作员键,后跟 另一个数字,后跟 也可以重复步骤2,在按下操作员或equals按钮时显示中间结果。 我知道需要在操作员点击事件中进行更改以满足此要求,但我不知道如何进行更改 下面是加法、减法、乘法、除法和等于按钮的代码 Di
Dim txtNumber As String
Dim variable1 As Decimal
Dim variable2 As Decimal
Dim answerResult As Decimal
Dim arithmeticProcess As String
Private Sub btnAdd_Click(sender As System.Object, e As System.EventArgs) Handles btnAdd.Click
If answerResult <> 0 Then
answerResult = variable1 + variable2
variable1 = CDec(lblDisplay.Text)
lblDisplay.Text = ""
arithmeticProcess = "+"
Else
variable1 = CDec(lblDisplay.Text)
lblDisplay.Text = ""
arithmeticProcess = "+"
End If
End Sub
Private Sub btnSubtract_Click(sender As System.Object, e As System.EventArgs) Handles btnSubtract.Click
variable1 = CDec(lblDisplay.Text)
lblDisplay.Text = ""
arithmeticProcess = "-"
End Sub
Private Sub btnMultiply_Click(sender As System.Object, e As System.EventArgs) Handles btnMultiply.Click
variable1 = CDec(lblDisplay.Text)
lblDisplay.Text = ""
arithmeticProcess = "*"
End Sub
Private Sub btnDivide_Click(sender As System.Object, e As System.EventArgs) Handles btnDivide.Click
variable1 = CDec(lblDisplay.Text)
lblDisplay.Text = ""
arithmeticProcess = "/"
End Sub
Private Sub btnEqual_Click(sender As System.Object, e As System.EventArgs) Handles btnEqual.Click
variable2 = lblDisplay.Text
If arithmeticProcess = "+" Then
answerResult = variable1 + variable2
ElseIf arithmeticProcess = "-" Then
answerResult = variable1 - variable2
ElseIf arithmeticProcess = "*" Then
answerResult = variable1 * variable2
Else
answerResult = variable1 / variable2
End If
answerResult = Math.Round(answerResult, 9)
Select Case answerResult
Case Is > 4000000000
MessageBox.Show("The answer is too large to be displayed.")
variable1 = 0
variable2 = 0
lblDisplay.Text = ""
Case Is < -4000000000
MessageBox.Show("The answer is too small to be displayed.")
variable1 = 0
variable2 = 0
lblDisplay.Text = ""
Case Else
lblDisplay.Text = CStr(answerResult)
End Select
End Sub
首先,我需要礼貌地指出,我认为在继续这个程序时,您的逻辑会遇到问题,但弄清楚这一点是编程乐趣的一部分。您可能需要后退一步,绘制计算器应用程序的流程图,然后重新开始 现在,数字按钮0-9的代码是什么样子的,具体来说,您如何知道用户键入的是variable1还是variable2?假设您以“逻辑”的方式执行该操作,我会这样做: 将variable1设置为Decimal=0,为您的数字提供排序的“默认值”,并对variable2执行相同操作。 将代码从btnEqual_Click中取出并放入它自己的方法中,让我们称之为Public Sub DoMaths,然后简单地将DoMaths放入btnEqual_Click。。。。 对于每个“算术处理”按钮加、减、。。。在做了你已经做过的事情之后,你也要给DoMaths打电话。 现在是棘手的部分。您必须仔细跟踪在给定时间屏幕上显示的variableX 在DoMaths中,在执行计算后,需要将answerResult的值移动到variable1,并将variable2重置为零。我会把这个放在你案子的末尾 这将使您回到一种状态,如果用户刚刚输入了第一个数字变量1,并准备按下下一个算术运算符键,您将处于这种状态 编辑,以响应您的数字按钮代码: 首先,一个建议:txtNumber+=1实际上应该是txtNumber&=1。尽管也有其他参数,加号用于添加数字,而与号用于连接两个字符串 其次,为了实现您所希望的中间计算,您必须跟踪是否已使用Equals键执行了最终计算。我建议使用变量1来实现这一点。当任何加/减/等于/等时。。当按下按钮时,只要variable1为零,您就可以[通常]假设无需执行任何操作 用户输入一个数字,然后按一个算术键。将算术运算符存储为现有状态,并将数字移动到variable1。 现在,用户输入第二个数字,存储在variable2中,因为variable1不是零。 然后,用户有两个选项:1。按Equals键正常执行逻辑,或按另一个算术键继续计算。在第二种情况下,对两个变量执行操作,显示结果并将其存储在variable1中,然后清除variable2和arithmetricprocess的值。
现在,如果用户刚刚启动应用程序,并在计算中输入第一个数字,那么您基本上回到了原来的位置。您应该可以从此处正常继续。如果lblDisplay.Text=0,则如果txtNumber=lblDisplay.Text=End,如果txtNumber.Contains,则lblDisplay.Text=End。然后,如果txtNumber.Length>10,则MessageBox.Showdisplay显示的数字不得超过10位。如果ElseIf txtNumber.Length>9,则退出子端,然后MessageBox.Showdisplay显示的数字不得超过10位。如果txtNumber+=1 lblDisplay.Text=txtnumberth这是我的按钮0-9的代码,则退出子端,但如何绘制应用程序的流程图?采取什么步骤来实现这一点。
Case Else
lblDisplay.Text = CStr(answerResult)
variable1 = answerResult
variable2 = 0