Vous êtes sur la page 1sur 3

ENSAF- Génie de télécommunications et réseaux (GTR)

TP5 C++: Héritage et polymorphisme


Problème : Classes Personne, Enseignant et Etudiant

Première partie: Classe Personne

Dans cette partie, on va créer deux classes, l’une représentant une personne, nommée Personne et
l’autre pour le programme de test (main), nommée GestionPersonne
1. Créer une classe, nommée Personne contenant:
 Un champ « nom » de type String
 Un champ « age » de type int .
 Un constructeur a deux paramètres « Personne (String ag, int no) » permettant
d’initialiser les deux champs de la classe.
 Une méthode « void afficher() » permettant d’afficher le nom et l’âge au format décrit
ci-après. Pour un objet de type Personne dont la variable d’instance nom vaut "Idrissi"
et la variable d’instance age vaut 30, la méthode afficher() affichera à l’écran :
Nom : Idrissi
Age : 30 ans
2. Ajouter des accesseurs (les getters) et les modificateurs (les setters) pour les variables nom
et age.
3. Ajouter un champ à la classe Personne, de type tableau de réels « double[] comptes »
susceptibles de représenter les divers soldes des comptes en banque de la personne.
4. Ajouter un constructeur a 3 paramètres à la classe Personne « Personne (String no, int ag,
double [] T) » en invoquant le constructeur a deux paramètres.
5. Adapter la méthode afficher() (qui doit afficher, outre le nom et l’âge de la personne les
différents éléments du tableau comptes.
6. Ajouter à la classe Personne, la méthode « void diviserParDeux() », permettant de
modifier le tableau comptes en divisant chaque élément par deux.
7. Ecrire un programme de test, nommée GestionPersonne, permettant de :
a. Créer deux objets de type Personne avec des comptes.
b. Appeler la méthode diviserParDeux() pour les objets crées.
c. Afficher les informations des objets crées.
8. Supprimer le champ de type tableau de réels « double [] comptes » et le constructeur a 3
paramètres de la de classe Personne.
9. Adapter la méthode afficher() pour afficher que le nom et l’âge de la personne.

Page 1
ENSAF- Génie de télécommunications et réseaux (GTR)

Deuxième partie : Classes Etudiants et Enseignants (Héritage)

Dans cette partie, on va créer deux classes, l’une représentant un étudiant, nommée Etudiant et
l’autre représentant l’enseignant, nommée Enseignant.
1- Classe Etudiant
a. Créer une classe Etudiant héritant de Personne et ayant 4 champs :
 Un champ « nombreCours » représente le nombre de cours suivis par l’étudiant.
 Un tableau de String « String [] cours » représentant les modules.
 Un tableau de double « double [] notes » représentant les notes obtenus à ces
modules. Avec la note du ième module étant à la position i dans le tableau des notes.
 Un champ « MAX_COURS » fixé à 10, est une constante qui correspond au nombre
maximum de modules suivis.
b. Ajouter un constructeur à la classe Etudiant, qui prend en paramètre le nom et l’âge de
l’étudiant. Il initialise les deux tableaux (cours et notes) et la variable nombreCours à 0.
c. Définir la méthode « void ajouteCoursNote (String, double) », qui permet d’ajouter le
nom d’un module et la note obtenue dans ce module.
d. Définir la méthode « void afficheNotes() », qui affiche tous les modules suivis par
l’étudiant et les notes correspondantes.
e. Ajouter la méthode « double noteMoyenne() », qui retourne la note moyenne de
l’étudiant.
f. Redéfinir la méthode « afficher() » pour afficher la description d’un objet de type
Etudiant sous la forme : "Etudiant" suivi de son nom et de son âge.

2- Classe Enseignant
a. Créer, de même, une classe Enseignant héritant de Personne et ayant 3 champs :
 Un champ « nombreCours » représente le nombre de cours assurés par l’enseignant.
 Un tableau de String « String [] cours » représentant les différents modules assurés
par cet enseignant.
 Un champ « MAX_COURS » fixé à 8, est une constante qui correspond au nombre
maximum de modules que peuvent assurés par l’enseignant.
b. Créer un constructeur appelant le constructeur de la classe mère, puis initialisant ses
champs propres (le tableau des cours et la variable nombreCours).
c. Ajouter la méthode « boolean ajouteCours(String) » permettant d’ajouter un cours à
l’attribut cours si ce cours n’est pas déjà présent dans la liste des modules enseignés. Si le
cours est déjà présent, on retournera la valeur booléen false, true sinon.

Page 2
ENSAF- Génie de télécommunications et réseaux (GTR)

d. De même Ajouter la méthode « boolean enleveCours(String) » permettant d’enlever un


cours si l’enseignant ne l’enseigne plus. Comme pour la méthode ajouteCours, on enlèvera
le cours que s’il est présent dans la liste des modules (false ou true) ;
e. Redéfinir la méthode afficher() pour afficher une description d’un objet de type
Enseignant sous la forme : "Enseignant" suivi de son nom et son âge entre parenthèses
ainsi que la liste de tous les modules enseignés.
f. Dans votre programme de test :
 Créer une instance d’objet de type Etudiant, de nom égal à "Houssaini" et d’âge égal à
21.
 Ajouter 4 cours et leurs notes en appelant la méthode « ajouteCoursNote (String,
double) » de la classe Etudiant.
 Afficher tous les modules suivis par l’étudiant et les notes correspondantes en appelant
la méthode afficheNotes();
 Appeler la méthode « noteMoyenne() » et afficher la note moyenne de l’étudiant.
 Afficher la description de l’étudiant en appelant la méthode afficher().
 Créer un Enseignant, de nom égal à "Sabour" et d’age égal à 38.
 Ajouter 6 cours en appelant la méthode « ajouteCours (String) » de la classe
Enseignant.
 Appeler la méthode afficher() pour afficher la description de l’objet crée.
 Enlever 2 cours en appelant la méthode « enleveCours(String) » et afficher à nouveau
la description de l’objet crée.

Page 3

Vous aimerez peut-être aussi