Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

A teacher has five students who have taken four tests. The teacher uses the foll

ID: 3556864 • Letter: A

Question

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:

A=90-100
B=80-89
C=70-79
D= 60-69
F = 0-59

Write a class that uses a String array or an ArrayList object to hold the five students' names, an array of five characters to hold the five students letter grades, and five arrays of four doubles each to hold each student's set of test scores. The class should have methods that return a specific student's name, average test score, and a letter grade based on the average.

Demonstrate the calss in a program that allows the user to enter each students name and his or her four test scores. It should display each students average test score and letter grade.

Do not accept test scores less than zero or greater than 100.

heres my code so far:

// save as GradeBook.java

public class GradeBook
{
// Constant for the number of students
private final int NUM_STUDENTS = 5;

// Constant for the number of tests
private final int NUM_TESTS = 4;

// Array to hold student names
private String[] names = new String[NUM_STUDENTS];

// Array to hold student grades
private char[] grades = new char[NUM_STUDENTS];

// Create arrays of scores, one for each student.
private double[] scores1 = new double[NUM_TESTS];
private double[] scores2 = new double[NUM_TESTS];
private double[] scores3 = new double[NUM_TESTS];
private double[] scores4 = new double[NUM_TESTS];
private double[] scores5 = new double[NUM_TESTS];

/**
The setName method assigns a student's name.
@param studentNumber The student's number.
@param name The student's name.
*/

public void setName(int studentNumber, String name)
{
names[studentNumber-1] = name;
}

/**
The setScores method copies an array of test scores
to a student's array of scores.
@param studentNumber The student's number.
@param scores An array of test scores.
*/

public void setScores(int studentNumber, double[] scores)
{
switch(studentNumber)
{
case 1:copyArray(scores1,scores); break;
case 2:copyArray(scores2,scores); break;
case 3:copyArray(scores3,scores); break;
case 4:copyArray(scores4,scores); break;
case 5:copyArray(scores5,scores); break;
default:break;
}
}

/**
The getName method returns a student's name.
@param studentNumber The specified student's number.
@return The student's name.
*/

public String getName(int studentNumber)
{
//your code
return names[studentNumber-1];
}

/**
The getAverage method returns a student's average
test score.
@param studentNumber The specified student's number.
@return The student's average test score.
*/

public double getAverage(int studentNumber)
{
//your code
double avg=0.0;
switch(studentNumber)
{
case 1:avg = calcAverage(scores1); break;
case 2:avg = calcAverage(scores2); break;
case 3:avg = calcAverage(scores3); break;
case 4:avg = calcAverage(scores4); break;
case 5:avg = calcAverage(scores5); break;
default:break;
}
return avg;
}

/**
The getLetterGrade method returns a student's
letter grade.
@param studentNumber The specified student's number.
@return The student's letter grade.
*/

public char getLetterGrade(int studentNumber)
{
char lettergrade; //your code
if(getAverage(studentNumber)>=90 && getAverage(studentNumber)<=100)
lettergrade = 'A';
else if(getAverage(studentNumber)>=80 && getAverage(studentNumber)<=89)
lettergrade = 'B';
else if(getAverage(studentNumber)>=70 && getAverage(studentNumber)<=79)
lettergrade = 'C';
else if(getAverage(studentNumber)>=60 && getAverage(studentNumber)<=69)
lettergrade = 'D';
else
lettergrade = 'E';
return lettergrade;


}

/**
copyArray is a private method that copies the contents
of one array to another.
@param to The array to copy to.
@param from The array to copy from.
*/

private void copyArray(double[] to, double[] from)
{
//your code
System.arraycopy(from, 0, to, 0, from.length);
}

/**
calcAverage is a private method that calculates
the average of the values in an array of test scores.
@param scores The array with the test scores.
*/

private double calcAverage(double[] scores)
{
//your code

double sum=0;
for(int i=0; i<scores.length; i++)
sum+=scores[i];
return sum/scores.length;

}

/**
assignGrade is a private method that determines and
assigns a letter grade to a specific student.
@param studentNumber The specified student's number.
*/

private void assignGrade(int studentNumber)
{
//your code
grades[studentNumber-1] = getLetterGrade(studentNumber);

}

/**
determineGrade is a private method that determines
a letter grade for a test average.
@param average The test average.
@return The letter grade.
*/

public char determineGrade(double average)
{
//your code
char lettergrade; //your code
if(average>=90 && average<=100)
lettergrade = 'A';
else if(average>=80 && average<=89)
lettergrade = 'B';
else if(average>=70 && average<=79)
lettergrade = 'C';
else if(average>=60 && average<=69)
lettergrade = 'D';
else
lettergrade = 'E';
return lettergrade;
}

}


import java.util.Scanner;


public class GradeBookTest {

public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String temp;
double[][] scores1 = new double[5][4];
GradeBook GB = new GradeBook();
for(int i=1; i<6; i++)
{
System.out.println("Please Enter Student Name " + i + " :");
temp = in.next();
GB.setName(i, temp);
for(int j=1; j<5; j++)
{
System.out.println("Please Enter Student " + i + " subject " + j +" marks :");
scores1[i-1][j-1] = in.nextDouble();
}
GB.setScores(1, scores1[i-1]);
}


for(int i=1; i<6; i++)
{
System.out.println(GB.getName(i) + " Has got Average "+ GB.getAverage(i) + " and Grade is " + GB.determineGrade(GB.getAverage(i)) );
}
}

}

Explanation / Answer

// THE PROGRAM WORKS FINE ON MY SYSTEM PLZ TELL IF U HAVE ANY BUGS WHILE RUNNING IT

// IT IS WRITTEN USING SIMPLE TECHNIQUES EASY TO UNDERSTAND


import java.util.Scanner;
class Gradecalculator
{
static String [] names=new String[5];
static char [] grades=new char[5];
static double [][] testscore=new double[5][4];
protected char[] calculate(double [][] testscore)
{
double total[]=new double[5];
for(int i=0;i<5;i++)   
{
for(int j=0;j<4;j++)
{
total[i]=0;

  
}
}
for(int i=0;i<5;i++)   
{
for(int j=0;j<4;j++)
{

total[i]=total[i]+testscore[i][j];
  
}
}
for(int i=0;i<5;i++)
{
total[i]=total[i]/4;
}
for(int i=0;i<5;i++)
{
if(total[i]>=90&&total[i]<=100)
grades[i]='A';
else if(total[i]>=80&&total[i]<90)
grades[i]='B';
else if(total[i]>=70&&total[i]<80)
grades[i]='C';
else if(total[i]>=60&&total[i]<70)
grades[i]='D';
else
grades[i]='F';
}
return(grades);
}
  
}

public class Grade extends Gradecalculator {
  
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Grade ob=new Grade();
System.out.println("enter the name of students");
for(int i=0;i<5;i++)
{
System.out.println((i+1)+"student");
names[i]= sc.nextLine();
}
System.out.println("enter the test scores of students");
for(int i=0;i<5;i++)
{
System.out.println("STUDENT "+(i+1));
for(int j=0;j<4;j++)
{
System.out.println("TEST "+(j+1));
testscore[i][j]=sc.nextDouble();
if(testscore[i][j]>100)
{
System.out.println("in appropriate value TRY AGAIN");
j--;
continue;
}
}
}
System.out.println("OK INPUT COMPLETE WANT TO KNOW THE FULL RESULTS Y/N");
String resp=sc.next();
  
ob.calculate(testscore);
if(resp.equals("Y"))
{
System.out.println("------------DISPLAYING RESULTS-----------") ;
System.out.println("STUDENT NAME GRADES");
for(int i=0;i<5;i++)
{
System.out.println(names[i]+" "+grades[i]);
}
  
System.out.println("want to check individual scores enter the student number");
int n=sc.nextInt();
try
{
System.out.println("STUDENT NAME "+names[n-1]+" GRADES "+grades[n-1]);
System.out.println("INDIVIDUAL TEST SCORES");
for(int i=0;i<4;i++)
{
System.out.println(testscore[n-1][i]);
}
}
catch(Exception e)
{
System.out.println("this student does not exist");
}
  
}
else
{
System.out.println("CLOSING");
}
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote