🧪 Labo 12.1A – Classes Forme et Calculateur
Exercice 1 – Création de diagramme de classes
🎯 Objectif
L’objectif de cet exercice est de créer le diagramme de classes à l'aide des descriptions de classes fournies.
Nous avons besoin de calculer l'aire totale d'une illustration composée de formes géométriques. Certaines formes sont ajoutées à l'illustration tandis que d'autres sont soustraites afin de créer des 'trous'. Par exemple, si l'on veut créer la forme de 'beigne' suivante, nous devons tout d'abord ajouter un grand cercle et ensuite retirer un plus petit cercle à l'intérieur. Pour déterminer l'aire de ce 'beigne', nous devons prendre l'aire du plus grand cercle et soustraire l'aire du plus petit cercle.
Afin de pouvoir calculer l'aire totale d'illustrations beaucoup plus complexes, la classe Calculateur sera implémentée afin de calculer l'aire automatiquement à l'aide des formes. Ces formes devront être fournies à la classe afin de calculer l'aire totale. Les formes peuvent être additionnées et soustraites entre elles.
Une forme de base Forme doit être utilisée. La Forme possède une propriété qui permet de déterminer si elle peut être additionnée ou soustraite à l'illustration. Les classes suivantes seront dérivées de celle-ci : Rectangle, Cercle, Triangle, Hexagone. Il est possible aussi d'utiliser la classe CercleFractionnée qui sera dérivée de la classe Cercle. Cette dernière pourra permettre de faire des illustrations comme ceci :

🛠️ Instructions
À l'aide de Visio, créez le diagramme de classes du programme. Assurez-vous de bien identifier toutes les classes et les relations entre elles.
Exercice 2 – Relation entre les classes du projet
🎯 Objectif
L’objectif de cet exercice est d'illustrer adéquatement une relation entre plusieurs classes.
🛠️ Instructions
Commençez par récuperer le projet de départ.
Disponible ici 👉 Laboratoire12_1
Par la suite, consultez les descriptions de classes afin de les créer dans le projet Modèles.
Finalement, faites usage du projet de tests unitaires afin de valider votre implémentation.
Calcul d'aire pour les formes
| Forme | Aire |
|---|---|
| Rectangle | Largeur ⋅ Hauteur |
| Triangle | ½ ⋅ Base ⋅ Hauteur |
| Cercle | π ⋅ Rayon2 |
| Hexagone | ½ ⋅ 3 ⋅ √3 ⋅ Côté2 |
Descriptions des classes
Classe Forme
La classe de base pour les formes.
Constructeur
Forme( ModeOpération pMode )
Permet de construire une Forme en lui fournissant son mode d'opération.
Propriété(s)
ModeOpération
Permet de déterminer si la forme doit ajouter ou retirer de l'illustration.
Aire
Propriété calculée retournant l'aire de la forme.
Classe Triangle
La classe dérivée de Forme permettant de représenter un triangle.
Constructeur
Triangle( ModeOpération pMode, double pBase, double pHauteur )
Permet de construire une Triangle en lui fournissant son mode d'opération, une base et une hauteur.
Propriété(s)
Base
Propriété représentant la longueur de la base.
Doit lancer une exception ArgumentOutOfRangeException si la valeur est 0 ou négative.
Hauteur
Propriété représentant la longueur de la hauteur.
Doit lancer une exception ArgumentOutOfRangeException si la valeur est 0 ou négative.
Aire
Propriété calculée retournant l'aire du triangle.
Classe Rectangle
La classe dérivée de Forme permettant de représenter un rectangle.
Constructeur
Rectangle( ModeOpération pMode, double pLargeur, double pHauteur )
Permet de construire une Rectangle en lui fournissant son mode d'opération, une largeur et une hauteur.
Propriété(s)
Largeur
Propriété représentant la longueur de la largeur.
Doit lancer une exception ArgumentOutOfRangeException si la valeur est 0 ou négative.
Hauteur
Propriété représentant la longueur de la hauteur.
Doit lancer une exception ArgumentOutOfRangeException si la valeur est 0 ou négative.
Aire
Propriété calculée retournant l'aire du rectangle.
Classe Hexagone
La classe dérivée de Forme permettant de représenter un hexagone.
Constructeur
Hexagone( ModeOpération pMode, double pCôté )
Permet de construire un Hexagone en lui fournissant son mode d'opération et une longueur de côté.
Propriété(s)
Côté
Propriété représentant la longueur d'un des 6 côtés de l'hexagone.
Doit lancer une exception ArgumentOutOfRangeException si la valeur est 0 ou négative.
Aire
Propriété calculée retournant l'aire de l'hexagone.
Classe Cercle
La classe dérivée de Forme permettant de représenter un cercle.
Constructeur
Cercle( ModeOpération pMode, double pRayon )
Permet de construire une Cercle en lui fournissant son mode d'opération et un rayon.
Propriété(s)
Rayon
Propriété représentant la longueur du rayon.
Doit lancer une exception ArgumentOutOfRangeException si la valeur est 0 ou négative.
Aire
Propriété calculée retournant l'aire du cercle.
Classe CercleFractionné
La classe dérivée de Cercle permettant de représenter une fraction de cercle.
Constructeur
CercleFractionné( ModeOpération pMode, double pRayon, double pFraction )
Permet de construire un CercleFractionné en lui fournissant son mode d'opération, un rayon et une fraction.
Propriété(s)
Fraction
Propriété représentant la fraction du cercle.
Doit lancer une exception ArgumentOutOfRangeException si la valeur est 0 ou négative ou dépasse 1.
Rayon
Propriété représentant la longueur du rayon.
Doit lancer une exception ArgumentOutOfRangeException si la valeur est 0 ou négative.
Aire
Propriété calculée retournant l'aire du cercle fractionné. Vous devez faire usage de la propriété Aire de la classe parent Cercle.
Classe Calculateur
Cette classe sert à calculer l'aire totale à l'aide de plusieurs formes.
Attribut(s)
ListesFormes (privé)
Contient l'ensemble des formes qui doivent être appliquées lors du calculs de l'aire totale.
Propriété(s)
AireTotale
Propriété calculée retournant l'aire totale à l'aide des formes et de leur mode d'opération.
Méthode(s)
Appliquer( Forme pForme )
Permet d'appliquer une forme à l'illustration. Garde en mémoire la Forme fournie et l'ajoute à la liste de formes.
Exercice 3 – Calcul d'aire totale
🎯 Objectif
L’objectif de cet exercice est de calculer les aires totales des illustrations suivantes à l'aide de la librairie de classe que vous venez de compléter.
🛠️ Instructions
Pour chacune des illustrations,
- Créez une fonction
- Créez un objet
Calculateur - Créez les formes nécessaires pour reproduire l'illustration. Attention de mettre le bon mode d'opération.
- Appliquez les formes à l'objet
Calculateur - Écrivez à la console la valeur de l'aire totale.
Illustration 1

Illustration 2

Illustration 3

Exemple de résultat attendu dans la console :
L'aire totale de l'illustration 1 est 16.96460032938488
L'aire totale de l'illustration 2 est 31.200276485650665
L'aire totale de l'illustration 3 est 110.68049437891702