I have an array, populated with student grades. there is a list of student names, but their grades are stored in a class level array. there is a calculate average button,that is supposed to calculate the grades in the array. But my button only returns the last grade that was entered, not the average, here is my code:
Code:
public Class btnAdd Dim grades() As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim name As String = InputBox("please enter a student's name.") 'validate name Do While Not isvalidname(name) name = InputBox("please enter a student's name.") Loop 'display info lstStudents.Items.Add(name) 'validate grade Dim grade As String = InputBox("please enter a positive number for grades.") Do While Not IsPositiveNumber(grade) grade = InputBox("please enter a positive number for grades.") Loop 'populate array Dim i As Integer Dim size As Integer = lstStudents.Items.Count ReDim grades(size - 1) For i = 0 To grades.GetUpperBound(0) grades(i) = CDbl(grade) Next End Sub Function getaverage(ByVal grades() As Double) As Double 'validate input Dim sum As Double = 0 Dim i As Double 'loop to find the average For i = 0 To grades.GetUpperBound(0) sum = sum + grades(i) / lstStudents.Items.Count Next 'return average Return MsgBox("The average is " & FormatNumber(sum)) End Function Private Sub btnAverage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAverage.Click 'call getaverage function getaverage(grades) End Sub
Comment