Exercice : Système de gestion scolaire (10 points)
On souhaite modéliser un système de gestion scolaire en utilisant la
programmation orientée objet en Python.
🔹 Partie 1 : Classe de base (2 points)
1. Créer une classe Personne avec :
o les attributs : nom, prenom
o un constructeur permettant de les initialiser
o une méthode afficher_infos() qui affiche :
Nom : X, Prénom : Y
🔹 Partie 2 : Héritage (2 points)
2. Créer une classe Etudiant qui hérite de Personne avec :
o un attribut supplémentaire matricule
o une redéfinition de la méthode afficher_infos() pour afficher
aussi le matricule
3. Créer une classe Professeur qui hérite de Personne avec :
o un attribut matiere
o une méthode afficher_infos() adaptée
🔹 Partie 3 : Encapsulation (1,5 point)
4. Dans la classe Etudiant, rendre l’attribut notes privé :
o initialisé comme une liste vide
o créer :
une méthode ajouter_note(note)
une méthode calculer_moyenne()
🔹 Partie 4 : Polymorphisme (1,5 point)
5. Créer une fonction afficher_personne(personne) qui :
o prend un objet en paramètre
o appelle sa méthode afficher_infos()
👉 Montrer que cette fonction fonctionne avec :
un étudiant
un professeur
🔹 Partie 5 : Classe de gestion (2 points)
6. Créer une classe Classe (au sens scolaire) avec :
o un attribut nom_classe
o une liste d’étudiants
o les méthodes :
ajouter_etudiant(etudiant)
afficher_etudiants()
🔹 Partie 6 : Question de synthèse (1 point)
7. Expliquer en quelques lignes :
o ce qu’est le polymorphisme dans cet exercice
o où il est utilisé
🔹 Partie 7 : Programme principal (main) (1 point)
8. Écrire un programme principal qui :
o crée au moins :
2 étudiants
1 professeur
o ajoute des notes aux étudiants
o affiche leurs informations
o crée une classe (ex: "Terminale C")
o ajoute les étudiants à cette classe
o affiche la liste des étudiants
o utilise la fonction afficher_personne() sur différents objets