将后续号码添加到已添加的现有号码
Add a subsequent number to the existing number that was already added
我是 vb.net 的新手,我在解决老师要求我们做的这个程序时遇到了问题。
我已经花了几个小时在这个程序上,但我无法完成它。我还有很多其他作业要做,并在截止日期前通过。如果您能提供帮助,请提前致谢。问题来了。
计算按钮的 Click 事件过程应该将项目价格添加到已输入的总价格中;此金额代表客户所欠的小计。该过程应在表格上显示小计。它还应显示 5% 的销售税、运费和客户所欠的总计。总计的计算方法是将小计、5% 的销售税和 6.50 美元的运费相加。例如,如果用户输入 15.75 作为价格,然后单击“计算”按钮,则该按钮的 Click 事件过程应显示 15.75 作为小计,0.79 作为销售税,6.50 作为运费,23.04 作为总应付金额。如果用户随后输入 10 作为价格,然后单击“计算”按钮,则该按钮的 Click 事件过程应显示 25.75 作为小计,1.29 作为销售税,6.50 作为运费,33.54 作为总应付金额。但是,当小计至少为 100 美元时,运费为 0.00。适当地测试应用程序。
这是我的代码:
Public Class Form1
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
Const charge_SalesTax As Decimal = 0.05D
Const charge_Shipping As Decimal = 6.5D
Dim decItemPrice As Decimal
Dim decSubtotal As Decimal
Dim decSalesTax As Decimal
Dim decShipping As Decimal
Dim decTotalDue As Decimal
Dim rndSalesTax As Decimal
Dim rndShipping As Decimal
Dim rndTotalDue As Decimal
Dim intItemPrice As Integer
Dim intSubTotal As Integer
Dim intSalesTax As Integer
Dim intShipping As Integer
Dim intTotalDue As Integer
Integer.TryParse(txtItemPrice.Text, intItemPrice)
Integer.TryParse(lblSubTotal.Text, intSubTotal)
Integer.TryParse(lblSalesTax.Text, intSalesTax)
Integer.TryParse(lblShipping.Text, intShipping)
Integer.TryParse(lblTotalDue.Text, intTotalDue)
decItemPrice = Val(txtItemPrice.Text)
lblSubTotal.Text = Convert.ToString(decItemPrice)
decSalesTax = Val(txtItemPrice.Text) * charge_SalesTax
rndSalesTax = Math.Round(decSalesTax, 2)
lblSalesTax.Text = Convert.ToString(rndSalesTax)
decShipping = charge_Shipping
lblShipping.Text = Convert.ToString(decShipping)
decTotalDue = decItemPrice + decSalesTax + decShipping
rndTotalDue = Math.Round(decTotalDue, 2)
lblTotalDue.Text = Convert.ToString(rndTotalDue)
如果我在商品价格上添加额外的数字,我遇到了如何计算销售税的问题,我将输入的额外数字应该添加我已经在商品价格上添加的现有数字,并且应该计算销售税、运费和应付总额。我试图通过使用 if else 来实现它,但我不知道将它放在哪里。
您需要保存小计,以便从一个按钮点击到下一个按钮。在 btnCalc_Click
函数内声明的每个变量的范围对于单个函数调用都是局部的。它不会从一个按钮点击到下一个按钮保存。
小计变量需要存在于 btnCalc_Click
函数之外的某个地方。最明智的地方应该是Form1
class的成员变量。您的代码看起来像这样:
Public Class Form1
Private _subtotal As Decimal = 0.0
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
' Insert your code that reads the entered item price
' Add to the subtotal so far
Me._subtotal += thisItemPrice
' Insert your code that calculates the tax and total, and
' updates the display
End Sub
我建议阅读变量作用域。
您可以参考以下步骤解决
- 定义
decSubtotal
为全局变量,初始值为0
- 保存每个附加值。
decSubtotal += decItemPrice
- 请使用
decSalesTax = Val(lblSubTotal.Text) * charge_SalesTax
代替decSalesTax = Val(txtItemPrice.Text) * charge_SalesTax
。
- 另外,我建议你可以创建一个清除按钮来优化代码。这将有助于重新计算。
详细代码:
Public Class Form1
Dim decSubtotal As Decimal = 0
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
Const charge_SalesTax As Decimal = 0.05D
Const charge_Shipping As Decimal = 6.5D
Dim decItemPrice As Decimal
Dim decSalesTax As Decimal
Dim decShipping As Decimal
Dim decTotalDue As Decimal
Dim rndSalesTax As Decimal
Dim rndTotalDue As Decimal
decItemPrice = Val(txtItemPrice.Text)
decSubtotal += decItemPrice
lblSubTotal.Text = Convert.ToString(decSubtotal)
decSalesTax = Val(lblSubTotal.Text) * charge_SalesTax
rndSalesTax = Math.Round(decSalesTax, 2)
lblSalesTax.Text = Convert.ToString(rndSalesTax)
decShipping = charge_Shipping
lblShipping.Text = Convert.ToString(decShipping)
decTotalDue = decSubtotal + decSalesTax + decShipping
rndTotalDue = Math.Round(decTotalDue, 2)
lblTotalDue.Text = Convert.ToString(rndTotalDue)
End Sub
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
decSubtotal = 0
txtItemPrice.Text = ""
lblSalesTax.Text = "lblSalesTax"
lblShipping.Text = "lblShipping"
lblSubTotal.Text = "lblSubTotal"
lblTotalDue.Text = "lblTotalDue"
End Sub
End Class
结果:
这段代码最重要的部分是表单级变量decSubtotal
。这会在按钮点击之间保持其值。
我对 Decimal
值使用了 .ToString
方法。我添加了一个参数来显示正确的小数位数或货币格式。请参阅 https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings 解释这一魔法的地方。
Private decSubtotal As Decimal
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim decSalesTax As Decimal
Dim decShipping As Decimal = 0
Dim decTotalDue As Decimal
Dim InputPrice As Decimal
Decimal.TryParse(TextBox1.Text, InputPrice)
decSubtotal += InputPrice
Label1.Text = decSubtotal.ToString("C")
decSalesTax = decSubtotal * 0.065D
Label2.Text = decSalesTax.ToString("N2")
If decSubtotal < 100 Then
decShipping = 6.5D
End If
Label3.Text = decShipping.ToString("N2")
decTotalDue = decSubtotal + decSalesTax + decShipping
Label4.Text = decTotalDue.ToString("C")
End Sub
我是 vb.net 的新手,我在解决老师要求我们做的这个程序时遇到了问题。
我已经花了几个小时在这个程序上,但我无法完成它。我还有很多其他作业要做,并在截止日期前通过。如果您能提供帮助,请提前致谢。问题来了。
计算按钮的 Click 事件过程应该将项目价格添加到已输入的总价格中;此金额代表客户所欠的小计。该过程应在表格上显示小计。它还应显示 5% 的销售税、运费和客户所欠的总计。总计的计算方法是将小计、5% 的销售税和 6.50 美元的运费相加。例如,如果用户输入 15.75 作为价格,然后单击“计算”按钮,则该按钮的 Click 事件过程应显示 15.75 作为小计,0.79 作为销售税,6.50 作为运费,23.04 作为总应付金额。如果用户随后输入 10 作为价格,然后单击“计算”按钮,则该按钮的 Click 事件过程应显示 25.75 作为小计,1.29 作为销售税,6.50 作为运费,33.54 作为总应付金额。但是,当小计至少为 100 美元时,运费为 0.00。适当地测试应用程序。
这是我的代码:
Public Class Form1
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
Const charge_SalesTax As Decimal = 0.05D
Const charge_Shipping As Decimal = 6.5D
Dim decItemPrice As Decimal
Dim decSubtotal As Decimal
Dim decSalesTax As Decimal
Dim decShipping As Decimal
Dim decTotalDue As Decimal
Dim rndSalesTax As Decimal
Dim rndShipping As Decimal
Dim rndTotalDue As Decimal
Dim intItemPrice As Integer
Dim intSubTotal As Integer
Dim intSalesTax As Integer
Dim intShipping As Integer
Dim intTotalDue As Integer
Integer.TryParse(txtItemPrice.Text, intItemPrice)
Integer.TryParse(lblSubTotal.Text, intSubTotal)
Integer.TryParse(lblSalesTax.Text, intSalesTax)
Integer.TryParse(lblShipping.Text, intShipping)
Integer.TryParse(lblTotalDue.Text, intTotalDue)
decItemPrice = Val(txtItemPrice.Text)
lblSubTotal.Text = Convert.ToString(decItemPrice)
decSalesTax = Val(txtItemPrice.Text) * charge_SalesTax
rndSalesTax = Math.Round(decSalesTax, 2)
lblSalesTax.Text = Convert.ToString(rndSalesTax)
decShipping = charge_Shipping
lblShipping.Text = Convert.ToString(decShipping)
decTotalDue = decItemPrice + decSalesTax + decShipping
rndTotalDue = Math.Round(decTotalDue, 2)
lblTotalDue.Text = Convert.ToString(rndTotalDue)
如果我在商品价格上添加额外的数字,我遇到了如何计算销售税的问题,我将输入的额外数字应该添加我已经在商品价格上添加的现有数字,并且应该计算销售税、运费和应付总额。我试图通过使用 if else 来实现它,但我不知道将它放在哪里。
您需要保存小计,以便从一个按钮点击到下一个按钮。在 btnCalc_Click
函数内声明的每个变量的范围对于单个函数调用都是局部的。它不会从一个按钮点击到下一个按钮保存。
小计变量需要存在于 btnCalc_Click
函数之外的某个地方。最明智的地方应该是Form1
class的成员变量。您的代码看起来像这样:
Public Class Form1
Private _subtotal As Decimal = 0.0
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
' Insert your code that reads the entered item price
' Add to the subtotal so far
Me._subtotal += thisItemPrice
' Insert your code that calculates the tax and total, and
' updates the display
End Sub
我建议阅读变量作用域。
您可以参考以下步骤解决
- 定义
decSubtotal
为全局变量,初始值为0 - 保存每个附加值。
decSubtotal += decItemPrice
- 请使用
decSalesTax = Val(lblSubTotal.Text) * charge_SalesTax
代替decSalesTax = Val(txtItemPrice.Text) * charge_SalesTax
。 - 另外,我建议你可以创建一个清除按钮来优化代码。这将有助于重新计算。
详细代码:
Public Class Form1
Dim decSubtotal As Decimal = 0
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
Const charge_SalesTax As Decimal = 0.05D
Const charge_Shipping As Decimal = 6.5D
Dim decItemPrice As Decimal
Dim decSalesTax As Decimal
Dim decShipping As Decimal
Dim decTotalDue As Decimal
Dim rndSalesTax As Decimal
Dim rndTotalDue As Decimal
decItemPrice = Val(txtItemPrice.Text)
decSubtotal += decItemPrice
lblSubTotal.Text = Convert.ToString(decSubtotal)
decSalesTax = Val(lblSubTotal.Text) * charge_SalesTax
rndSalesTax = Math.Round(decSalesTax, 2)
lblSalesTax.Text = Convert.ToString(rndSalesTax)
decShipping = charge_Shipping
lblShipping.Text = Convert.ToString(decShipping)
decTotalDue = decSubtotal + decSalesTax + decShipping
rndTotalDue = Math.Round(decTotalDue, 2)
lblTotalDue.Text = Convert.ToString(rndTotalDue)
End Sub
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
decSubtotal = 0
txtItemPrice.Text = ""
lblSalesTax.Text = "lblSalesTax"
lblShipping.Text = "lblShipping"
lblSubTotal.Text = "lblSubTotal"
lblTotalDue.Text = "lblTotalDue"
End Sub
End Class
结果:
这段代码最重要的部分是表单级变量decSubtotal
。这会在按钮点击之间保持其值。
我对 Decimal
值使用了 .ToString
方法。我添加了一个参数来显示正确的小数位数或货币格式。请参阅 https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings 解释这一魔法的地方。
Private decSubtotal As Decimal
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim decSalesTax As Decimal
Dim decShipping As Decimal = 0
Dim decTotalDue As Decimal
Dim InputPrice As Decimal
Decimal.TryParse(TextBox1.Text, InputPrice)
decSubtotal += InputPrice
Label1.Text = decSubtotal.ToString("C")
decSalesTax = decSubtotal * 0.065D
Label2.Text = decSalesTax.ToString("N2")
If decSubtotal < 100 Then
decShipping = 6.5D
End If
Label3.Text = decShipping.ToString("N2")
decTotalDue = decSubtotal + decSalesTax + decShipping
Label4.Text = decTotalDue.ToString("C")
End Sub