148 lines
3.8 KiB
JavaScript
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);
|