-
Créez un fichier avec votre nom de type
- Définir une classe
Point
caractérisée par ses coordonnées réelles x,y. Écrire le constructeur vide, un constructeur avec paramètres. - Écrire une fonction amie
Distance
qui calcule la distance entre deux points. - Surcharger l'opérateur
<<
pour afficher un point sous la forme . - Surcharger l'opérateur
+
pour faire l'addition de deux points, et l'opérateur/
pour diviser un point par un réel. - Définir une classe
Cercle
caractérisé par un centre et un rayon. Écrire le constructeur vide, un constructeur avec paramètres, on devra pouvoir écrire:
Cercle c(Point(-2,2),7);
// Cercle . - Surcharger l'opérateur
<<
pour afficher les données du cercle sous la forme . - Définir une classe
Ensemble
contenant un ensemble de points. On utilisera la classestd::vector<Point>
pour stocker les points. Ecrire le constructeur vide. - Ecrire une procédure membre
Ajoute
ajoutant un point à l'ensemble. - Ecrire une procédure membre
Supprime
supprimant le i-ème point, si l'indice est supérieur à la taille de l'ensemble ou négatif, la procédure ne fait rien. - Ecrire une fonction membre
Barycentre
calculant le barycentre (somme des points divisée par le nombre de points). - Ecrire une fonction membre
Enveloppe
calculant le cercle englobant l'ensemble de points, avec pour centre le barycentre et comme rayon la plus grande distance du barycentre à tous les points. - Ecrire une procédure membre
Gauche
construisant le sous-ensemble constitué des points à gauche du barycentre. - Ecrire un programme principal qui ajoute quatre points
dans un ensemble, on devra pouvoir écrire :
Ensemble e; e.Ajoute(Point(2,3)); e.Ajoute(Point(-2,2)); e.Ajoute(Point(6,1)); e.Ajoute(Point(1,-5));
// Ensemble e avec quatre points -
Afficher cet ensemble, calculer le cercle englobant
et afficher ce cercle.
Retirer le 3-ème point et le 5-ème point de l'ensemble, recalculer le cercle englobant, afficher ce cercle. -
Construire un nouvel ensemble à l'aide
d'un appel à la fonction membre
Gauche
et l'afficher.
nom.cpp
qui contiendra l'intégralité
du code demandé. Le fichier devra contenir les déclarations des classes et des fonctions
membres en début de fichier (ce qui aurait été placé dans un fichier .h
), puis
le code des fonctions membres, enfin le main()
avec les appels. Les classes et les fonctions membres devront être commentées selon le standard de
doxygen
à l'aide des balises appropriées, entre autres \class
, \brief
et \param
.