Build a Gradebook App - Build a Gradebook App

Tell us what’s happening:

The second parameter of the studentMsg function is a bit confusing. If we already pass the average number as a parameter, there’s no need to calculate it again inside the function.

Your code so far


function getAverage(scores){
  let numberofSubject=scores.length;
  let averageScore;
  let sum=0;
  for(let s of scores){
    sum+=s;
  }
   averageScore= sum/numberofSubject;
  return averageScore;

}
let sAvrageNum=getAverage([92, 88, 12, 77, 57, 100, 67, 38, 97, 89]);
let grade;

function getGrade(score){
  let scoreNum=score;  
  if (scoreNum== 100) {
    grade = "A+";

  } 
  else if (scoreNum>= 90 && scoreNum<= 99) {
    grade = "A";
    
  } else if (scoreNum >= 80 && scoreNum<=89) {
    grade = "B";
    
  } else if (scoreNum>= 70 && scoreNum<= 79) {
    grade = "C";
    
  }
    else if (scoreNum>= 60 && scoreNum<= 69) {
    grade = "D";
    
  } else if (scoreNum>= 0 && scoreNum<= 59) {
    grade = "F";
  
    
  }
  return grade;
}
let studentGrade=getGrade(sAvrageNum);

function hasPassingGrade(scores){ 
  return getGrade(scores) !== "F";
} 
function studentMsg(scoreArr){
let avScore=getAverage(scoreArr);
let grade=getGrade(avScore);
  return grade!=='F'
  ?`Class average: ${avScore}. Your grade: ${grade}.You passed the course.`
  :`Class average: ${avScore}.Your grade: ${grade} You failed the course.`;
}

console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89]));
console.log(studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19]));

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36

Challenge Information:

Build a Gradebook App - Build a Gradebook App

the second parameter of studentMsg is not the average, is the score for a single student, the one that needs to be told if they failed or passed

function studentMsg(scoreArr,score){
let studentPassed=(hasPassingGrade(score))
let avScore=getAverage(scoreArr);
let grade=getGrade(avScore);
  return studentPassed == false
  ?`Class average: ${avScore}.Your grade: ${grade} You failed the course.`
  :`Class average: ${avScore}. Your grade: ${grade} You passed the course.`;
}

console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89],37));
console.log(studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19],100));

after editting my code still the studentMsg funtion has problem. what should i do ?

Hi @msirat2017

Compare the expected output with the output of your function.
Check for punctuation or spacing issues.

Happy coding

1 Like

thank you it passed.

1 Like