Solution Files
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bonus Exercise 7 - Grade Calculator</title>
</head>
<body>
<h1>Bonus Exercise 7: Grade Calculator</h1>
<script src="script.js"></script>
</body>
</html>
script.js
// Create arrays for students and grades
const students = ['Alice', 'Bob', 'Charlie', 'Diana', 'Eve'];
const grades = [95, 78, 82, 65, 88];
// Function to get letter grade
function getLetterGrade(numericGrade) {
if (numericGrade >= 90) {
return 'A';
} else if (numericGrade >= 80) {
return 'B';
} else if (numericGrade >= 70) {
return 'C';
} else if (numericGrade >= 60) {
return 'D';
} else {
return 'F';
}
}
// Function to calculate class average
function calculateClassAverage(gradesArray) {
let total = 0;
for (let i = 0; i < gradesArray.length; i++) {
total += gradesArray[i];
}
return total / gradesArray.length;
}
// Display each student's information
document.write("<h2>Student Grades:</h2><ul>");
for (let i = 0; i < students.length; i++) {
const letterGrade = getLetterGrade(grades[i]);
document.write(`<li>${students[i]}: ${grades[i]}% (${letterGrade})</li>`);
}
document.write("</ul>");
// Display class average
const classAverage = calculateClassAverage(grades);
document.write(`<p><strong>Class Average: ${classAverage.toFixed(2)}%</strong></p>`);
// Filter students who passed (grade >= 60)
const passingStudents = [];
const passingGrades = [];
for (let i = 0; i < grades.length; i++) {
if (grades[i] >= 60) {
passingStudents.push(students[i]);
passingGrades.push(grades[i]);
}
}
document.write("<h2>Passing Students (Grade >= 60):</h2><ul>");
passingStudents.forEach((student, index) => {
document.write(`<li>${student}: ${passingGrades[index]}%</li>`);
});
document.write("</ul>");