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

I viewed one of the solutions to this problem on your site, however in viewing t

ID: 3816969 • Letter: I

Question

I viewed one of the solutions to this problem on your site, however in viewing the class I noted that the setScores method wouldn't work because you have a studentNumber that is an int and a double scores array passed as parameter arguements. This won't work in java. Can you help with this problem? I will paste the code to this so you can see what I'm talking about.

Thank you for your help with this.

K Pace

// Create the class GradeBook
public class GradeBook
{
// Create finals/constants
private final int STUDENTS = 5;
private final int TESTS = 4;

// Create arrays
private String[] names = new String[STUDENTS];
private char[] grades = new char[STUDENTS];
private double[] score1 = new double[TESTS];
private double[] score2 = new double[TESTS];
private double[] score3 = new double[TESTS];
private double[] score4 = new double[TESTS];
private double[] score5 = new double[TESTS];

private double[] testScores = new double[5];
private double[] average = new double[5];

public GradeBook()
{
}

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

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

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

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

/**
copyArray is a private method for copying one array contents to another.
@param to The array to copy to.
@param from The array to copy from.
*/

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

/**
The setScores method copies student testscore arrays to studentarrays.
@param studentNumber The student number
@param scores An array of test scores
*/

public void setScores(int studentNumber, double[]scores)
{
switch(studentNumber)
{
case 1:
copyArray(score1, scores);
break;

case 2:
copyArray(score2, scores);
break;

case 3:
copyArray(score3, scores);
break;

case 4:
copyArray(score4, scores);
break;

case 5:
copyArray(score5, scores);
break;

default:
break;
}
}

/**
The calcAverage is a private method to calculate
the average from the array of test scores.
@param scores The array with the test scores.
*/

private double calcAverage(double[] scores)
{
double sum = 0;
int i;

for(i = 0; i < scores.length; i++)

sum = sum + scores[i];

return sum / scores.length;
}


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

public double getAverage(int studentNumber)
{
// To hold the average.
double average = 0.0;

switch (studentNumber)
{
case 1:
average = calcAverage(score1);
break;

case 2:
average = calcAverage(score2);
break;

case 3:
average = calcAverage(score3);
break;

case 4:
average = calcAverage(score4);
break;

case 5:
average = calcAverage(score5);
break;

default:
break;
}
return average;
}

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

public char getLetterGrade(int studentNumber)
{
char lettergrade;

if (getAverage(studentNumber) >= 90.0 && getAverage(studentNumber) <= 100.0)
{
lettergrade = 'A';
}

else if (getAverage(studentNumber) >= 80.0 && getAverage(studentNumber) <= 89.0)
{
lettergrade = 'B';
}

else if (getAverage(studentNumber) >= 70.0 && getAverage(studentNumber) <= 79.0)
{
lettergrade = 'C';
}

else if (getAverage(studentNumber) >= 60.0 && getAverage(studentNumber) <= 69.0)
{
lettergrade = 'D';
}

else
lettergrade = 'F';

return lettergrade;
}

/**
assignGrades method is a private method that assigns a letter grade to each student.
@param studentNumber The specified student's number.
*/

private char assignGrade(int studentNumber)
{
grades[studentNumber -1] = getLetterGrade(studentNumber);
return grade;
}

/**
determineGrade is a publie method that deterines a letter grade for the student average.
@param average The test average
@return The letter grade
*/

public char determineGrade(double average)
{
char lettergrade;

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 = 'F';

return lettergrade;

}

}


}

Explanation / Answer

i have rectified your code there was issue with the braces of the function

please find the code

public class GradeBook
{
   // Create finals/constants
   private final int STUDENTS = 5;
   private final int TESTS = 4;

   // Create arrays
   private String[] names = new String[STUDENTS];
   private char[] grades = new char[STUDENTS];
   private double[] score1 = new double[TESTS];
   private double[] score2 = new double[TESTS];
   private double[] score3 = new double[TESTS];
   private double[] score4 = new double[TESTS];
   private double[] score5 = new double[TESTS];

   private double[] testScores = new double[5];
   private double[] average = new double[5];

   public GradeBook()
   {
   }

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

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

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

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

   /**
   copyArray is a private method for copying one array contents to another.
   @param to The array to copy to.
   @param from The array to copy from.
   */

   private void copyArray(double[] to, double[]from)
   {
       System.arraycopy(from, 0, to, 0, from.length);
   }
   /**
   The setScores method copies student testscore arrays to studentarrays.
   @param studentNumber The student number
   @param scores An array of test scores
   */

   public void setScores(int studentNumber, double[]scores)
       {
       switch(studentNumber)
       {
           case 1:
           copyArray(score1, scores);
           break;

           case 2:
           copyArray(score2, scores);
           break;

           case 3:
           copyArray(score3, scores);
           break;

           case 4:
           copyArray(score4, scores);
           break;

           case 5:
           copyArray(score5, scores);
           break;

           default:
           break;
       }
   }

   /**
   The calcAverage is a private method to calculate
   the average from the array of test scores.
   @param scores The array with the test scores.
   */

   private double calcAverage(double[] scores)
   {
       double sum = 0;
       int i;

       for(i = 0; i < scores.length; i++)

       sum = sum + scores[i];

       return sum / scores.length;
   }


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

   public double getAverage(int studentNumber)
   {
       // To hold the average.
       double average = 0.0;

       switch (studentNumber)
       {
           case 1:
           average = calcAverage(score1);
           break;

           case 2:
           average = calcAverage(score2);
           break;

           case 3:
           average = calcAverage(score3);
           break;

           case 4:
           average = calcAverage(score4);
           break;

           case 5:
           average = calcAverage(score5);
           break;

           default:
           break;
       }
       return average;
   }

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

   public char getLetterGrade(int studentNumber)
   {
       char lettergrade;

       if (getAverage(studentNumber) >= 90.0 && getAverage(studentNumber) <= 100.0)
       {
           lettergrade = 'A';
       }

       else if (getAverage(studentNumber) >= 80.0 && getAverage(studentNumber) <= 89.0)
       {
           lettergrade = 'B';
       }

       else if (getAverage(studentNumber) >= 70.0 && getAverage(studentNumber) <= 79.0)
       {
           lettergrade = 'C';
       }

       else if (getAverage(studentNumber) >= 60.0 && getAverage(studentNumber) <= 69.0)
       {
           lettergrade = 'D';
       }

       else
           lettergrade = 'F';

       return lettergrade;
   }

   /**
   assignGrades method is a private method that assigns a letter grade to each student.
   @param studentNumber The specified student's number.
   */

   private char assignGrade(int studentNumber)
   {
       grades[studentNumber -1] = getLetterGrade(studentNumber);
       return grades[studentNumber -1];
   }

   /**
   determineGrade is a publie method that deterines a letter grade for the student average.
   @param average The test average
   @return The letter grade
   */

   public char determineGrade(double average)
   {
       char lettergrade;

       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 = 'F';

       return lettergrade;

   }
}

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