Exercice C++ : Modélisation géométrique

 


Sujet : Modélisation géométrique de points et de cercles en C++

Contexte du sujet

Dans cet exercice, vous allez modéliser des objets géométriques simples — à savoir des points et des cercles — à l’aide de classes C++. Le but est de comprendre les notions suivantes :

  • Encapsulation (attributs privés, accesseurs, mutateurs)
  • Constructeurs (par défaut, paramétré, par copie)
  • Méthodes de classe (statique)
  • Utilisation de fichiers .h, .cxx, et main.cxx pour structurer le code

Classe Point

Fichiers demandés :

  1. point.h : déclaration de la classe
  2. point.cxx : implémentation des méthodes
  3. main.cxx : test de la classe Point

Travail à faire :

  1. Déclarez la classe Point contenant :
    • Deux attributs privés x et y (coordonnées)
    • Un attribut de classe nombre_points pour compter les objets créés
    • Un constructeur paramétré, un constructeur par copie, et un destructeur
    • Des accesseurs getX() et getY() et des mutateurs setX(float) et setY(float)
    • Une méthode affichage() pour afficher les coordonnées du point
    • Une méthode statique getNombre_points()
  2. Implémentez les méthodes dans point.cxx.
  3. Dans main.cxx, écrivez un programme qui :
    • Crée plusieurs objets Point
    • Affiche leurs coordonnées
    • Affiche le nombre total de points créés

Classe Cercle

Fichiers demandés :

  1. cercle.h : déclaration de la classe
  2. cercle.cxx : implémentation des méthodes
  3. main.cxx : extension du précédent pour tester Cercle

Travail à faire :

  1. Déclarez la classe Cercle contenant :
    • Un attribut centre de type Point
    • Un attribut rayon
    • Un attribut de classe nombre_cercles
    • Une constante statique PI de valeur 3.14
    • Les constructeurs suivants :
      • par défaut
      • avec 3 paramètres (float x, float y, float rayon)
      • avec 2 paramètres (Point centre, float rayon)
    • Des accesseurs/mutateurs pour le rayon et le centre
    • Une méthode affichage()
    • Une méthode statique lire_Cercle() pour créer un cercle à partir de données entrées par l’utilisateur
    •  
  2. Implémentez les méthodes dans cercle.cxx.
  3. Dans main.cxx, ajoutez :
    • La création de plusieurs objets Cercle
    • Affichage de leurs caractéristiques
    • Affichage du nombre total de cercles créés

Questions théoriques pour guider les étudiants

  1. Quelle est la différence entre un attribut d’instance et un attribut de classe en C++ ?
  2. Expliquez le rôle de chaque type de constructeur utilisé dans la classe Point.
  3. Pourquoi utilise-t-on le mot-clé static dans certaines méthodes et attributs ?
  4. Que se passe-t-il lorsque l’on copie un objet de type Point ?
  5. Expliquez l’intérêt de structurer le code en fichiers .h, .cxx, et main.cxx.

SOLUTION :

 
1 vote. Moyenne 5 sur 5.

Ajouter un commentaire

Anti-spam