# 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()