Files
tp-javascript-introduction/partie2-etudiants.js
2025-07-12 11:10:38 +02:00

148 lines
3.8 KiB
JavaScript

const etudiantsTab = [
{nom: "Alice", note: 17.5},
{nom: "Bob", note: 9},
{nom: "Claire", note: 13.75}
]
function calculerMoyenneGroupe(etudiants) {
const notes = [];
etudiants.forEach(etudiant => {
notes.push(etudiant.note);
})
const somme = notes.reduce((acc, note) => acc + note, 0);
const moyenne = somme / notes.length;
return moyenne.toFixed(2);
}
function calculerMoyenneAdmis(etudiants) {
const admis = [];
etudiants.forEach(etudiant => {
if(etudiant.note >= 10) admis.push(etudiant);
})
return calculerMoyenneGroupe(admis);
}
function calculerMention(etudiant) {
if (etudiant.note >= 16 && etudiant.note <= 20) {
return "Très bien";
} else if (etudiant.note >= 14 && etudiant.note < 16) {
return "Bien";
} else if (etudiant.note >= 12 && etudiant.note < 14) {
return "Assez bien";
} else if (etudiant.note >= 10 && etudiant.note < 12) {
return "Passable";
} else {
return "Échec";
}
}
function calculerAdmis(etudiants) {
const admis = [];
etudiants.forEach(etudiant => {
if (etudiant.note >= 10) {
admis.push(etudiant);
}
});
return admis;
}
function analyserEtudiants(etudiants) {
const analyse = {};
const admis = [];
const mentions = [];
calculerAdmis(etudiants).forEach(etudiant => {
admis.push(etudiant.nom);
})
etudiants.forEach(etudiant => {
mentions.push({nom: etudiant.nom, mention: calculerMention(etudiant)});
})
analyse.moyenne = calculerMoyenneGroupe(etudiants);
analyse.admis = admis;
analyse.mentions = mentions;
return analyse;
}
function ajouterElementEtudiant(etudiant) {
const studentDiv = document.querySelector('.students');
const p = document.createElement("p");
studentDiv.appendChild(p);
p.innerText = ` - ${etudiant.nom} : ${etudiant.note}/20 (${calculerMention(etudiant)})`;
}
function ajouterEtudiant() {
const addStudentBtn = document.getElementById("add-student");
addStudentBtn.addEventListener("click", (e) => {
e.preventDefault();
const nom = document.getElementById("ajouterPrenom").value;
const note = parseFloat(document.getElementById("ajouterNote").value);
const etudiant = {
"nom": nom,
"note": note
}
if((etudiant.nom != null || etudiant.nom !== "") && etudiant.note != null) {
ajouterElementEtudiant(etudiant);
etudiantsTab.push(etudiant);
}
});
}
function afficherEtudiants() {
etudiantsTab.forEach(etudiant => {
ajouterElementEtudiant(etudiant);
});
}
function afficherMoyenneGroupe(etudiants) {
const moyenneGroupeBtn = document.getElementById("moyenne-groupe-btn");
const moyenneGroupe = document.getElementById("moyenne-groupe");
moyenneGroupeBtn.addEventListener("click", (e) => {
e.preventDefault();
moyenneGroupe.style.fontWeight = "normal";
moyenneGroupe.innerText = `${calculerMoyenneGroupe(etudiants)}/20`;
})
}
function afficherMoyenneAdmis(etudiants) {
const moyenneAdmisBtn = document.getElementById("moyenne-admis-btn");
const moyenneAdmis = document.getElementById("moyenne-admis");
moyenneAdmisBtn.addEventListener("click", (e) => {
e.preventDefault();
moyenneAdmis.style.fontWeight = "normal";
moyenneAdmis.innerText = `${calculerMoyenneAdmis(etudiants)}/20`;
})
}
console.log(JSON.stringify(analyserEtudiants(etudiantsTab)));
afficherMoyenneGroupe(etudiantsTab);
afficherMoyenneAdmis(etudiantsTab);
ajouterEtudiant();
afficherEtudiants(etudiantsTab);