A teacher has five students who have taken four tests. The teacher uses the following grading scale to assign a letter grade to a student, based on the average of his or her four test scores. Write a program, Pseudo code and draw a TOE chart and -Flowchart that uses an array of string objects to hold the five student names, an array of one character to hold the five students’ letter grades, and five arrays of doubles to hold each student’s set of test scores and average score. The program should allow the user to enter each student’s name and his or her four test scores. The program should store each student’s information in the arrays [20 points]. It should then calculate and display each student’s average test score [20 points] and a letter grade based on the average [20 points]. Input Validation: Do not accept test scores less than 0 or greater than
Pseudo code
 
Start
       Read the five student names from the user.
       Read the student four test scores. 
       Add student’s information to the arrays 
       Calculate each student’s average test score
       Calculate each student’s letter grade based on the average
       Display each student’s name, average test score and letter grade
StopTOE chart
Flowchart
VB.NET code:
Module Module1
    Function readStudentScores(ByRef studentNumber As Integer, ByRef testScores() As Double)
        Console.Write("Enter the student name " + studentNumber.ToString() + ": ")
        Dim name = Console.ReadLine()
        For i As Integer = 0 To 3
            testScores(i) = -1
            While testScores(i) < 0 Or testScores(i) > 100
                Console.Write("Enter the test score " + (i + 1).ToString() + ": ")
                testScores(i) = Double.Parse(Console.ReadLine())
            End While
        Next
        Console.WriteLine()
        Return name
    End Function
    Function calculateAverageScore(ByVal scores() As Double)
        Dim sumAllScores As Double = 0
        For i As Integer = 0 To 3
            sumAllScores += scores(i)
        Next
        Return sumAllScores / 4
    End Function
    Private Function calculateGrade(ByVal avrg As Double) As Char
        If avrg >= 90 Then
            Return "A"
        End If
        If avrg >= 80 Then
            Return "B"
        End If
        If avrg >= 70 Then
            Return "C"
        End If
        If avrg >= 60 Then
            Return "D"
        End If
        Return "F"
    End Function
    Sub Main()
        Dim studentNames(4) As String
        Dim studentGrades(4) As Char
        Dim studentScores1(3) As Double
        Dim studentScores2(3) As Double
        Dim studentScores3(3) As Double
        Dim studentScores4(3) As Double
        Dim studentScores5(3) As Double
        Dim studentScoresAverages(4) As Double
        studentNames(0) = readStudentScores(1, studentScores1)
        studentNames(1) = readStudentScores(2, studentScores2)
        studentNames(2) = readStudentScores(3, studentScores3)
        studentNames(3) = readStudentScores(4, studentScores4)
        studentNames(4) = readStudentScores(5, studentScores5)
        studentScoresAverages(0) = calculateAverageScore(studentScores1)
        studentScoresAverages(1) = calculateAverageScore(studentScores2)
        studentScoresAverages(2) = calculateAverageScore(studentScores3)
        studentScoresAverages(3) = calculateAverageScore(studentScores4)
        studentScoresAverages(4) = calculateAverageScore(studentScores5)
        For i As Integer = 0 To 4
            studentGrades(i) = calculateGrade(studentScoresAverages(i))
        Next
        Console.WriteLine(vbNewLine + "{0,-15}{1,-25}{2,-25}", "Name", "Average test score", "Letter grade")
        For i As Integer = 0 To 4
            Console.WriteLine("{0,-15}{1,-25}{2,-25}", studentNames(i), studentScoresAverages(i), studentGrades(i))
        Next
        Console.ReadLine()
    End Sub
   
End Module
Comments