我需要制作一个程序来计算 15 个考试成绩的平均值

I need to make a program that will find the average of 15 test grades

首先这个程序,必须求出15个数的平均值。然后必须相应地给出一个等级例如,如果 88 的等级程序将打印等级 B。此外,该程序必须使用某种用户定义的示例。

现在是我的问题。在下面的程序中,我得到它来计算 15 个数字的平均值,但是,我找不到异常的方法来检测用户是否输入了数字以外的内容。我试着让它 Try for the gradetotal as decimal 但这似乎是不可接受的。那么有没有其他方法或者我忽略了什么?

Module Module1

    Sub Main()
        Dim num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, num11, num12, num13, num14, num15, gradetotal As Decimal
        Console.WriteLine("The Average Of 10 numbers")
        Console.Write("Input Test Grade 1: ")
        num1 = Console.ReadLine()
        Console.Write("Input Test Grade 2: ")
        num2 = Console.ReadLine()
        Console.Write("Input Test Grade 3: ")
        num3 = Console.ReadLine()
        Console.Write("Input Test Grade 4: ")
        num4 = Console.ReadLine()
        Console.Write("Input Test Grade 5: ")
        num5 = Console.ReadLine()
        Console.Write("Input Test Grade 6: ")
        num6 = Console.ReadLine()
        Console.Write("Input Test Grade 7: ")
        num7 = Console.ReadLine()
        Console.Write("Input Test Grade 8: ")
        num8 = Console.ReadLine()
        Console.Write("Input Test Grade 9: ")
        num9 = Console.ReadLine()
        Console.Write("Input Test Grade 10: ")
        num10 = Console.ReadLine()
        Console.Write("Input Test Grade 11: ")
        num11 = Console.ReadLine()
        Console.Write("Input Test Grade 12: ")
        num12 = Console.ReadLine()
        Console.Write("Input Test Grade 13: ")
        num13 = Console.ReadLine()
        Console.Write("Input Test Grade 14: ")
        num14 = Console.ReadLine()
        Console.Write("Input Test Grade 15: ")
        num15 = Console.ReadLine()

        gradetotal = num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9 + num10 + num11 + num12 + num13 + num14 + num15

        Try
            If gradetotal = Decimal Then

            Else
                Throw New Exception()
            End If
        Catch ex As Exception
            Console.WriteLine("Your Grade Average Is:" & (gradetotal) / 15)

        End Try
        Console.ReadLine()

    End Sub
End Module

最后谁能给我解释一下如何让这个程序有一个包含所有关键信息的注释块以及单行和多行注释?

要检查您的用户是否输入了数字而不引发异常,您应该使用 Decimal.TryParse 方法,如果键入的值不是十进制数字,则 returns false。当然,十进制数字很棘手,因为您还应该考虑在您的文化中用来表示小数点分隔符的字符。

也就是说,您还需要使用循环更改大输入序列并将接收到的输入存储在某种集合中。在下面的示例中,我使用 List(Of Decimal) 并应用 IEnumerable 扩展来获取输入的总和和平均值。

Sub Main
    Dim count As Integer = 0
    Dim grades = New List(Of Decimal)()
    While count < 15
        Console.WriteLine("Enter " & count + 1 & " grade")
        Dim input = Console.ReadLine()
        Dim temp As Decimal
        ' InvariantCulture uses the point as decimal separator,
        ' if your culture uses something different use CurrentCulture instead
        If Decimal.TryParse(input, System.Globalization.NumberStyles.AllowDecimalPoint,
                                   System.Globalization.CultureInfo.InvariantCulture, temp) Then
            grades.Add(temp)
            count += 1
        End If 
    End While

    Console.WriteLine("Total:" & grades.Sum())
    Console.WriteLine("Average:" & grades.Average())
End Sub