Vous êtes sur la page 1sur 2

Programmation orientée objet en C++ abdelwahab.naji@gmail.

com

Atelier N°3 en C++

Mots clés : class, attribut, méthode, visibilité, constructeur, constructeur surchargé, objet courant, this

Type générique, list

Exercice 1 : gestion des points

Soit le diagramme de classes suivant :

1.Créer une application (gestionSegments) en C++


2.Proposer une implémentation du diagramme de
classes sachant que :
a. x et y représentent les attributs de la classe Point
b. Point(int,int) représente le constructeur de la classe
Point
c. setX(int) et setY(int) deux méthodes pour modifier
respectivement les valeurs de x et y depuis un code de
l’extérieur de la classe Point
d. getX() et getY() deux méthodes pour récupérer
respectivement x et y
e. update(int,int) une méthode qui permet de modifier
à la fois x et y
f. display() une méthode pour afficher le détail d’un
point sous forme (x,y)
g. getDistance(Point) : une méthode qui calcule la
distance entre l’objet courant et un autre point passé
en paramètres
3.Écrit le programme principal qui permet de :
h. Créer trois points p1, p2 et p3. x et y de chaque
point sont fournis dans le programme principal par
l’utilisateur
i. Afficher le détail des trois points
j.Changer les coordonnées de p1
k. Calculer la distance de p1 par rapport à p2 et p3
l. Afficher le point le plus proche à p1
4. Créer un tableau de 5 points
m. Demander à l’utilisateur de saisir les 5 points
n. Afficher le détail de tous les points du tableau
o. Calculer les distances de p1 par rapport aux points
du tableau
p. Reprenez la question 3 en utilisant list. Quelles sont
les principales différences entre list et tableau
5. Les k-plus proches voisins à p1
q. Comment peut-on trouver les k-plus proches voisins
de p1. Proposer un modèle (quelles sont les données
à utiliser ?).
r. Afficher les 3 plus proches voisins à p1
Programmation orientée objet en C++ abdelwahab.naji@gmail.com

Exercice 2 : gestion des segments

Soit le diagramme de classes suivant :

1.Créer une application (gestionSegments) en C++


2.Proposer une implémentation du diagramme de classes
sachant que :
a. Un segment est défini par deux points qui représentent
ses extrémités (extrimite1 et extrimite2).
La définition du point est similaire de l’exercice
précédent
En plus, il est défini par une couleur et une longueur
b. Segment(Point,Point) représente le constructeur de la
classe Segment. Une fois les deux extrémités d’un
segment sont définis, calculer la longueur du segment
sachant que la longueur du segment est exactement la
distance entre ces deux extrémités.
c. setExtremite1(Point) et setExtremite2(int) deux
méthodes pour modifier respectivement extrimite1 et
extrimite2
d. getExtremite1() et getExtremite2() deux méthodes
pour récupérer respectivement extrimite1 et extrimite2
e. display() une méthode pour afficher le détail d’un point
sous forme [(x1,y1), l,couleur]
f. setLongueur() : une méthode qui modifie la longueur
du segment en fonction de ces extrémités ; cette
méthode ne doit pas recevoir d’arguments, mais tous
simplement réutilise la fonction getDistance(Point). Cette
fonction doit être appelée à chaque fois une modification
de l’une des extrémités du segment ait lieu. (revoir le
constructeur).
g. getLongeur() : une méthode pour récupérer la longueur
d’un segment
3.Écrit le programme principal qui permet de :
a. Créer trois points p1, p2 et p3. x et y de chaque point
sont fournis dans le programme principal par l’utilisateur
b. Créer deux segment s1 et s2 . s1 est défini par p1 et p2
et une couleur fournis par l’utilisateur. s2 est défini par
p1 et p3 et une couleur fourni par l’utilisateur. Comment
on procède pour attribuer la couleur à chaque segment.
Proposer deux méthodes différentes. Apporter les
modifications nécessaires au modèle.
c. Afficher le détail des deux segments