首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >医院收费-- Visual Basic

医院收费-- Visual Basic
EN

Stack Overflow用户
提问于 2016-05-17 19:47:27
回答 1查看 1.1K关注 0票数 0

我正在为学校做一个视觉基础项目,计算你住院期间的总数。它在很大程度上是有效的,但是当输入负数时,我应该得到一个错误消息,而我没有收到这个消息。下面是我现在得到的编码:

代码语言:javascript
复制
Public Class Form1

Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
    'close form
    Me.Close()

End Sub

Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
    'clear form
    txtLab.Clear()
    txtMedication.Clear()
    txtPhysical.Clear()
    txtStay.Clear()
    txtSurgical.Clear()
    txtStay.Focus()
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    'class level declaration
    Const DayRate As Decimal = 350D 'cost per day


    'declare variables
    Dim Physical As Decimal
    Dim Surgical As Decimal
    Dim Lab As Decimal
    Dim Medication As Decimal
    Dim Stay As Decimal
    Try
        'Copy the scores into the variables
        Stay = CDec(txtStay.Text) * DayRate
        Medication = CDec(txtMedication.Text)
        Surgical = CDec(txtSurgical.Text)
        Lab = CDec(txtLab.Text)
        Physical = CDec(txtPhysical.Text)
    Catch
        MessageBox.Show("Please enter numeric values")
        Return

        'Find out if box enteries are negative or not
        If Convert.ToDecimal(Lab) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtLab.SelectAll()
        ElseIf Convert.ToDecimal(Medication) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtMedication.SelectAll()
        ElseIf Convert.ToDecimal(Surgical) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtSurgical.SelectAll()
        ElseIf Convert.ToDecimal(Physical) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtPhysical.SelectAll()
        ElseIf Convert.ToDecimal(Stay) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtStay.SelectAll()
        End If
    End Try
End Sub
Function CalcStayCharges() As Decimal
    CalcStayCharges = (CDec(txtStay.Text) * 350)
End Function
Function CalcMiscCharges() As Decimal
    CalcMiscCharges = CDec(txtMedication.Text) + CDec(txtLab.Text) + CDec(txtPhysical.Text) + CDec(txtSurgical.Text)
End Function
Function CalctotalCharges() As Decimal
    CalctotalCharges = (CalcStayCharges() + CalcMiscCharges())
End Function

Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
    'calculates total of stay
    Dim decTotal As Decimal

    decTotal = CalctotalCharges()

    lblTotal.Text = decTotal.ToString("c")
End Sub
End Class
EN

回答 1

Stack Overflow用户

发布于 2016-05-17 20:10:14

Catch子句中的代码不执行,因为没有出现异常。你应该移动你的如果..。否则..语句在捕获子句之前。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37285039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档