我需要制作一个程序来计算 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
首先这个程序,必须求出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