Build a Gradebook App - Build a Gradebook App

Tell us what’s happening:

I’ve checked my code and the console displays the results of the test cases specified correctly. Despite that, I am failing tests 17 and from 20 to 22. Please help

Your code so far

let scoreTests1 = [92, 88, 12, 77, 57, 100, 67, 38, 97, 89];
let scoreTests2 = [45, 87, 98, 100, 86, 94, 67, 88, 94, 95];
let scoreTests3 = [38, 99, 87, 100, 100, 100, 100, 100, 100, 100];

function getAverage(testScores){
  let totalScore = 0;
  let len = testScores.length;
  for(let i of testScores){
    totalScore += i;
  }
  let averageScore = (totalScore/len);
  return averageScore;
}

function getGrade(score){
  if(score === 100){
    return "A+";
  }
  else if(score >= 90 & score <=99){
    return "A";
  }
  else if(score >=80 & score <=89){
    return "B";
  }
  else if(score >=70 & score <=79){
    return "C";
  }
  else if(score >=60 & score <=69){
    return "D";
  }
  else{
    return "F";
  }
}

function hasPassingGrade(gradeLetter) {
  if(gradeLetter !== "F"){
    return true;
  }
  else if(gradeLetter === "F"){
    return false;
  }
}

function studentMsg(scoreArray, studentScore){
  let classAverage = getAverage(scoreArray);
  let studentGrade = getGrade(studentScore);
  let studentpassOrFail = hasPassingGrade(studentGrade);

  if(studentScore >= classAverage){
    return `Class Average: ${classAverage}. Your grade: ${studentGrade}. You passed the course`;
  }
  else{
    return `Class Average: ${classAverage}. Your grade: ${studentGrade}. You failed the course`;
  }
}

const averageScore1 = getAverage(scoreTests1);
console.log(averageScore1);
const averageScore2 = getAverage(scoreTests2);
console.log(averageScore2);
const averageScore3 = getAverage(scoreTests3);
console.log(averageScore3);

const gradeLetter1 = getGrade(averageScore1);  
console.log(gradeLetter1);
const gradeLetter2 = getGrade(averageScore2);  
console.log(gradeLetter2);
const gradeLetter3 = getGrade(averageScore3);  
console.log(gradeLetter3);

console.log(hasPassingGrade(gradeLetter1));
console.log(hasPassingGrade(gradeLetter2));
console.log(hasPassingGrade(gradeLetter3));

let message = "";
message = studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37);
console.log(message);

message = studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19], 100);
console.log(message);

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0

Challenge Information:

Build a Gradebook App - Build a Gradebook App

You have a couple of issues:

  1. The message which you return from the studentMsg function does not match the requirements exactly. You need to ensure that all punctuation and capitalisation is correct as per the requirements.
  2. Your hasPassingGrade function should take a numerical score as an argument and then convert that to a grade inside the function, using the getGrade function. It should then return true or false depending on the result of the getGrade function.
1 Like

Hi. Thank you for the help. It worked. :slight_smile:

1 Like