File size: 1,840 Bytes
aadd23b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 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()