【发布时间】:2015-10-03 06:39:09
【问题描述】:
对于包 A,我的输出始终为 14.95。其他一切似乎都运行良好。
对于我需要的程序:
互联网服务提供商向其客户提供 3 个订阅套餐,并为非营利组织提供折扣
- packaga A:10 小时访问,每月 9.95 美元。额外费用为每小时 2.00 美元。
- 套餐 B:20 小时访问,每月 14.95 美元。额外费用为每人 1.00 美元
- 套餐 C:每月 19.95 美元无限制访问
- 非营利组织:如果用户选择非营利组织复选框 a 20 应从最终费用中扣除 % 折扣。 输入验证”:一个月内使用的小时数不能超过 744 时的数字。该值必须是数字
btnCalc_Click
Public Class Form1
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
'Declare variables and constant
Dim decTotal As Decimal
Dim intHours As Integer
Const decNonProfit As Decimal = 0.8D
Try
intHours = CInt(txtHoursUsed.Text)
If CInt(txtHoursUsed.Text) > 744 Then
MessageBox.Show("Monthly Hours Can't Exceed 744")
txtHoursUsed.Text = String.Empty
lblTotalDue.Text = String.Empty
End If
'Calculate A Package Total without discount
If radPackageA.Checked = True And intHours > 10 Then
decTotal = (9.95 + ((intHours - 10) * 2))
ElseIf intHours <= 10 Then
decTotal = 9.95
End If
'Calculate B Package Total without discount
If radPackageB.Checked = True And intHours > 20 Then
decTotal = (14.95 + ((intHours - 20) * 1))
ElseIf intHours <= 20 Then
decTotal = 14.95
End If
'Calculate C Package Total without discount
If radPackageC.Checked = True Then
decTotal = 19.95
End If
'Calculate Total for packages if Nonprofit is checked
If chkNonProfit.Checked = True Then
decTotal = decTotal * decNonProfit
End If
'Show total due
lblTotalDue.Text = decTotal.ToString("c")
Catch ex As Exception
MessageBox.Show("Input Error")
End Try
End Sub
btnClear_Click
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
radPackageA.Checked = False
radPackageB.Checked = False
radPackageC.Checked = False
chkNonProfit.Checked = False
lblTotalDue.Text = String.Empty
txtHoursUsed.Text = String.Empty
End Sub
btnExit_Click
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
Me.Close()
End Sub
End Class
【问题讨论】:
-
问题是……?
-
我没有发现您的代码有任何问题。会不会是你将包 A 命名为
radPackageB和包 BradPackageA? -
Package A 输出不能正常工作..ex。如果检查包 A 并且我输入 5 小时输出是 14.95 而不是 9.95..如果我在文本框中输入 20,它会给出 14.95.. 它给所有的 14.95。所有其他包输入/输出都在工作。
-
向我们展示您的前端代码
-
发生的情况是,当未检查 radPackageB 时,它将 decTotal 设置为 14.95。看我的回答。
标签: vb.net