mrcryptsie
New
aadd23b
# main.py
from data import coefficients_C, coefficients_D, filieres, students
from utils import get_student_by_id, calculer_moyennes, calculer_scores_selection, selectionner_meilleures_matieres, afficher_meilleures_matieres, compter_occurrences_meilleures_matieres, selectionner_top_matieres, proposer_filieres
# Définir les coefficients et les biais
coefficients = coefficients_C if students[0].serie == "C" else coefficients_D
biais = {
"Mathématiques": 5,
"Physique-Chimie": 4,
"Informatique": 3,
"Français": 2,
"Philosophie": 1,
"Anglais": 2
}
# Exemple d'utilisation
student_id = "E001"
student = get_student_by_id(students, student_id)
# Calculer les moyennes des notes pour chaque matière (hors Baccalauréat)
moyennes = calculer_moyennes(student.resultats)
# Calculer les scores de sélection pour chaque matière
scores = calculer_scores_selection(moyennes, coefficients, biais)
# Sélectionner les trois meilleures matières pour chaque classe
meilleures_matieres = selectionner_meilleures_matieres(scores)
# Afficher les trois meilleures matières pour chaque classe et le Baccalauréat
afficher_meilleures_matieres(meilleures_matieres, student.resultats["Baccalauréat"])
# Sélectionner les quatre meilleures matières
occurrences = compter_occurrences_meilleures_matieres(meilleures_matieres)
top_matieres = selectionner_top_matieres(occurrences, biais)
# Afficher les quatre meilleures matières
print("Les quatre meilleures matières durant tout le parcours :")
for matiere in top_matieres:
print(f"- {matiere}")
# Proposer des filières en fonction des meilleures matières
propositions = proposer_filieres(top_matieres, filieres, student.serie)
# Afficher les propositions de filières
print("Propositions de filières :")
for filiere in propositions:
filiere.afficher_info()