Vb.net GPA计算器文本框问题

Vb.net GPA计算器文本框问题,vb.net,Vb.net,我已经编写了一个GPA计算器,其中有8个文本框用于输入课程名称,8个文本框用于输入每门课程的学时,最后8个文本框用于输入你在这些课程中取得的字母成绩。我在8个占用信用时间的文本框上遇到了问题。如果我不觉得每一个都有一个数字,它会给我一个错误“输入字符串的格式不正确”。我想编程,如果用户只参加5门课程,他们可以将其他3个文本框留空,在他们没有填写学分的文本框中输入一个“0”,然后根据输入的5门课程计算GPA。如果用户在所有8个文本框中输入学分,那么它可以正常工作,但是,如果用户没有填写所有8个,那

我已经编写了一个GPA计算器,其中有8个文本框用于输入课程名称,8个文本框用于输入每门课程的学时,最后8个文本框用于输入你在这些课程中取得的字母成绩。我在8个占用信用时间的文本框上遇到了问题。如果我不觉得每一个都有一个数字,它会给我一个错误“输入字符串的格式不正确”。我想编程,如果用户只参加5门课程,他们可以将其他3个文本框留空,在他们没有填写学分的文本框中输入一个“0”,然后根据输入的5门课程计算GPA。如果用户在所有8个文本框中输入学分,那么它可以正常工作,但是,如果用户没有填写所有8个,那么就会出现上面提到的错误代码

这是我到目前为止的代码

Public Class Form1

Dim QualityPoints As Double
Dim CourseName, hours As String

Private Sub btnTotalHours_Click(sender As Object, e As EventArgs) Handles btnTotalHours.Click
    Dim totalHours As String
    Dim Credit1, Credit2, Credit3, Credit4, Credit5, Credit6, Credit7, Credit8 As Integer
    Credit1 = Integer.Parse(txtBoxCredit1.Text)
    Credit2 = Integer.Parse(txtBoxCredit2.Text)
    Credit3 = Integer.Parse(txtBoxCredit3.Text)
    Credit4 = Integer.Parse(txtBoxCredit4.Text)
    Credit5 = Integer.Parse(txtBoxCredit5.Text)
    Credit6 = Integer.Parse(txtBoxCredit6.Text)
    Credit7 = Integer.Parse(txtBoxCredit7.Text)
    Credit8 = Integer.Parse(txtBoxCredit8.Text)

    totalHours = CStr(txtBoxTotalHours.Text)
    txtBoxTotalHours.Text = (Credit1 + Credit2 + Credit3 + Credit4 + Credit5 + Credit6 + Credit7 + Credit8)

End Sub

Private Sub btnTotalQualityPoints_Click(sender As Object, e As EventArgs) Handles btnTotalQualityPoints.Click

    Select Case txtBoxGrade1.Text
        Case "A"
            QualityPoints += (4 * txtBoxCredit1.Text)
        Case "B"
            QualityPoints += (3 * txtBoxCredit1.Text)
        Case "C"
            QualityPoints += (2 * txtBoxCredit1.Text)
        Case "D"
            QualityPoints += (1 * txtBoxCredit1.Text)
        Case "F"
            QualityPoints += (0 * txtBoxCredit1.Text)
        Case " "
            QualityPoints += (0 * txtBoxCredit1.Text)

    End Select

    Select Case txtBoxGrade2.Text
        Case "A"
            QualityPoints += (4 * txtBoxCredit2.Text)
        Case "B"
            QualityPoints += (3 * txtBoxCredit2.Text)
        Case "C"
            QualityPoints += (2 * txtBoxCredit2.Text)
        Case "D"
            QualityPoints += (1 * txtBoxCredit2.Text)
        Case "F"
            QualityPoints += (0 * txtBoxCredit2.Text)
        Case " "
            QualityPoints += (0 * txtBoxCredit2.Text)

    End Select

    Select Case txtBoxGrade3.Text
        Case "A"
            QualityPoints += (4 * txtBoxCredit3.Text)
        Case "B"
            QualityPoints += (3 * txtBoxCredit3.Text)
        Case "C"
            QualityPoints += (2 * txtBoxCredit3.Text)
        Case "D"
            QualityPoints += (1 * txtBoxCredit3.Text)
        Case "F"
            QualityPoints += (0 * txtBoxCredit3.Text)
        Case " "
            QualityPoints += (0 * txtBoxCredit3.Text)

    End Select

    Select Case txtBoxGrade4.Text
        Case "A"
            QualityPoints += (4 * txtBoxCredit4.Text)
        Case "B"
            QualityPoints += (3 * txtBoxCredit4.Text)
        Case "C"
            QualityPoints += (2 * txtBoxCredit4.Text)
        Case "D"
            QualityPoints += (1 * txtBoxCredit4.Text)
        Case "F"
            QualityPoints += (0 * txtBoxCredit4.Text)
        Case " "
            QualityPoints += (0 * txtBoxCredit4.Text)

    End Select

    Select Case txtBoxGrade5.Text
        Case "A"
            QualityPoints += (4 * txtBoxCredit5.Text)
        Case "B"
            QualityPoints += (3 * txtBoxCredit5.Text)
        Case "C"
            QualityPoints += (2 * txtBoxCredit5.Text)
        Case "D"
            QualityPoints += (1 * txtBoxCredit5.Text)
        Case "F"
            QualityPoints += (0 * txtBoxCredit5.Text)
        Case " "
            QualityPoints += (0 * txtBoxCredit5.Text)

    End Select

    Select Case txtBoxGrade6.Text
        Case "A"
            QualityPoints += (4 * txtBoxCredit6.Text)
        Case "B"
            QualityPoints += (3 * txtBoxCredit6.Text)
        Case "C"
            QualityPoints += (2 * txtBoxCredit6.Text)
        Case "D"
            QualityPoints += (1 * txtBoxCredit6.Text)
        Case "F"
            QualityPoints += (0 * txtBoxCredit6.Text)
        Case " "
            QualityPoints += (0 * txtBoxCredit6.Text)

    End Select

    Select Case txtBoxGrade7.Text
        Case "A"
            QualityPoints += (4 * txtBoxCredit7.Text)
        Case "B"
            QualityPoints += (3 * txtBoxCredit7.Text)
        Case "C"
            QualityPoints += (2 * txtBoxCredit7.Text)
        Case "D"
            QualityPoints += (1 * txtBoxCredit7.Text)
        Case "F"
            QualityPoints += (0 * txtBoxCredit7.Text)
        Case " "
            QualityPoints += (0 * txtBoxCredit7.Text)

    End Select

    Select Case txtBoxGrade8.Text
        Case "A"
            QualityPoints += (4 * txtBoxCredit8.Text)
        Case "B"
            QualityPoints += (3 * txtBoxCredit8.Text)
        Case "C"
            QualityPoints += (2 * txtBoxCredit8.Text)
        Case "D"
            QualityPoints += (1 * txtBoxCredit8.Text)
        Case "F"
            QualityPoints += (0 * txtBoxCredit8.Text)
        Case " "
            QualityPoints += (0 * txtBoxCredit8.Text)

    End Select

    txtBoxTotalQualityPoints.Text = QualityPoints

End Sub

Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
    txtBoxCourse1.Clear()
    txtBoxCourse2.Clear()
    txtBoxCourse3.Clear()
    txtBoxCourse4.Clear()
    txtBoxCourse5.Clear()
    txtBoxCourse6.Clear()
    txtBoxCourse7.Clear()
    txtBoxCourse8.Clear()

    txtBoxCredit1.Clear()
    txtBoxCredit2.Clear()
    txtBoxCredit3.Clear()
    txtBoxCredit4.Clear()
    txtBoxCredit5.Clear()
    txtBoxCredit6.Clear()
    txtBoxCredit7.Clear()
    txtBoxCredit8.Clear()

    txtBoxGrade1.Clear()
    txtBoxGrade2.Clear()
    txtBoxGrade3.Clear()
    txtBoxGrade4.Clear()
    txtBoxGrade5.Clear()
    txtBoxGrade6.Clear()
    txtBoxGrade7.Clear()
    txtBoxGrade8.Clear()

    txtBoxTotalGPA.Clear()
    txtBoxTotalHours.Clear()
    txtBoxTotalQualityPoints.Clear()

End Sub

感谢您提供的任何帮助

看看
Int32.TryParse
方法。它将尝试解析数据,如果成功,则返回一个值


所以我应该将“Integer.Parse”改为“int32.TryParse”,然后编写正确的if语句?你能提供一个小例子来说明你在说什么吗?我修复了它,最后使用了“numericUpDown”