0% ont trouvé ce document utile (0 vote)
18 vues3 pages

TP - 8

Le document présente une série d'exercices de programmation orientée objet en C++, destinés aux étudiants de l'Université Sultan Moulay Slimane. Chaque exercice implique la création de classes de base et dérivées, l'utilisation de conteneurs STL pour stocker des objets, et la démonstration du polymorphisme à travers des méthodes virtuelles. Les thèmes abordés incluent la gestion de livres, d'animaux, de notifications, de formes, de transports, de robots et de véhicules.

Transféré par

khalidmrjn99
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues3 pages

TP - 8

Le document présente une série d'exercices de programmation orientée objet en C++, destinés aux étudiants de l'Université Sultan Moulay Slimane. Chaque exercice implique la création de classes de base et dérivées, l'utilisation de conteneurs STL pour stocker des objets, et la démonstration du polymorphisme à travers des méthodes virtuelles. Les thèmes abordés incluent la gestion de livres, d'animaux, de notifications, de formes, de transports, de robots et de véhicules.

Transféré par

khalidmrjn99
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

​ ​ ​ ​ ​ ​ Université Sultan Moulay Slimane

​ ​ ​ FP – Khouribga​
​ ​ ​ ​ ​ Département : Mathématiques et Informatique
​ ​ Filière : Mathématiques, Informatique, Physique (S4)
Module : POO (C++)
TP : POO (C++)
Année Universitaire : 2024/2025
Pr. Ibtissam Bakkouri

TP - 8

Exercice 1 :

1.​ Créez une classe de base Livre avec un attribut titre et une méthode virtuelle afficher().

2.​ Créez deux classes dérivées : Roman et Magazine, qui redéfinissent la méthode afficher().

3.​ Utilisez un vector<Livre*> pour stocker plusieurs types de livres.

4.​ Affichez les détails de chaque livre à l’aide du polymorphisme.

Exercice 2 :

1.​ Créez une classe Animal avec une méthode virtuelle parler().

2.​ Implémentez les classes Chien et Chat qui redéfinissent parler().

3.​ Simulez une file d’attente d’animaux à l’aide de queue<Animal*>.

4.​ Faites parler chaque animal.

Exercice 3 :

1.​ Créez une classe Notification avec une méthode virtuelle envoyer().

2.​ Implémentez Email et SMS comme classes dérivées.

3.​ Utilisez une list<Notification*> pour stocker différents types de notifications.

4.​ Parcourez la liste pour envoyer chaque notification.


Exercice 4 :

1.​ Définissez une classe Forme avec une méthode virtuelle afficher().

2.​ Créez les classes Cercle et Rectangle avec leur propre implémentation.

3.​ Stockez les formes dans un vector<Forme*>.

4.​ Parcourez et affichez chaque forme.

Exercice 5 :

1.​ Définissez une classe Transport avec une méthode virtuelle deplacer().

2.​ Créez Voiture et Train.

3.​ Utilisez un deque<Transport*> pour simuler un terminal de transport.

4.​ Appelez la méthode deplacer() sur chaque objet.

Exercice 6 :

1.​ Définir une classe de base Robot contenant une méthode virtuelle executerTache().

2.​ Créer deux classes dérivées :

●​ RobotMenager : redéfinit executerTache() pour afficher un message tel que "Le

robot ménager nettoie la maison.".

●​ RobotIndustriel : redéfinit executerTache() pour afficher un message tel que "Le

robot industriel assemble des pièces.".

3.​ Utiliser un conteneur std::map<int, Robot*> pour stocker des robots avec un identifiant

unique.

4.​ Ajouter plusieurs objets de type RobotMenager et RobotIndustriel dans la map.

5.​ Parcourir la map et appeler la méthode executerTache() pour chaque robot afin de démontrer

le polymorphisme.
Exercice 7 :

1.​ Créer une classe de base Vehicule avec :

●​ Une méthode virtuelle afficherType().

●​ Un attribut statique totalVehicules.

●​ Une méthode statique afficherTotal().

2.​ Créer deux classes dérivées :

●​ Voiture avec un attribut statique totalVoitures, redéfinissant afficherType() pour

afficher "Je suis une voiture".

●​ Camion avec un attribut statique totalCamions, redéfinissant afficherType()

pour afficher "Je suis un camion".

3.​ Chaque fois qu’un objet est créé, incrémenter les compteurs correspondants.

4.​ Utiliser un std::map<std::string, Vehicule*> pour associer un nom de véhicule à son objet.

5.​ Afficher :

●​ Le total global des véhicules.

●​ Le nombre de voitures et de camions créés.

●​ Parcourir la map et afficher le type de chaque véhicule.

Vous aimerez peut-être aussi