Examen TP

    Créez un fichier avec votre nom de type 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.

    Classe Point

  • 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 (13,9).
  • Surcharger l'opérateur + pour faire l'addition de deux points, et l'opérateur / pour diviser un point par un réel.
  • Classe Cercle

  • 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 Cercle(c=(-8,9),r=6).
  • Classe Ensemble

  • Définir une classe Ensemble contenant un ensemble de points. On pourra utiliser la classe std::vector<Point> pour stocker les points (conseillé), coder un tableau dynamique (difficile), ou utiliser un tableau de taille constante N et une variable n définissant le nombre d'éléments du tableau (intermédiaire). 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 inférieur à la taille de l'ensemble, 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.
  • Programme

  • 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.