TP C++ N°4 : Classes
Exercice 1 : Chercher les erreurs dans les trois fichiers :
1. Rectangle.h : fichier d’en-tête contenant la déclaration de la classe
2. [Link] : fichier source contenant la définition des méthodes
3. [Link] : programme principal de test
Fichier Rectangle.h [Link] Fichier [Link]
#pragma once #include <iostream> #include "Rectangle.h"
class Rectangle #include "Rectangle.h"
float longueur{}; int main() {
float largeur{}; void Rectangle Afficher() Rectangle r;
void afficher(); { [Link] = 5
} std::cout << "Longueur = " << longueur << " Largeur [Link] = 3;
= " << largeur ; [Link]();
} return 0;
}
Exercice 2 :
On vous donne trois fichiers :
1. Ouvrez les trois fichiers dans votre environnement C++.
2. Compilez le programme à l’aide de la commande suivante :
3. Observez le résultat affiché à l’écran.
Fichier Rectangle.h [Link] Fichier [Link]
#pragma once #include "Rectangle.h" #include "Rectangle.h"
class Rectangle { #include <iostream>
float longueur; using namespace std; int main() {
float largeur void Rectangle r;
Rectangle::setDimensions(float [Link](4, 3);
public: l, float lar) {
[Link]();
void setDimensions(float longueur = l; return 0;
l, float L);
largeur =lar; }
void afficherSurface();
}
};
void
Rectangle::afficherSurface() {
float surface = longueur *
largeur;}
3IIR MERBAH AMAL
TP C++ N°4 : Classes
Exercice 3 :
Écrire une classe Cercle permettant de représenter un cercle défini par :
les coordonnées de son centre (x, y) de type double
son rayon de type double
un nom de type std::string
La classe doit comporter les fonctions membres suivantes :
1. initialiser : Permet d’attribuer les valeurs initiales du cercle (centre, rayon, nom) en
proposant deux versions différentes de la fonction.
void initialiser(double abs, double ord, double r, const string n);
void initialiser_v2(double x, double y, double rayon, const std::string& nom)
2. Afficher : Affiche toutes les informations du cercle. void afficher() const;
Écrire un programme principal main() qui :
1. Déclare un objet Cercle C1;
2. Initialise cet objet à l’aide de la fonction membre initialiser et initialiser_v2.
3. Affiche ses caractéristiques après chaque initialisation.
Ajouter les méthodes suivantes :
3. Modifier_nom : modifier le nom par le nom donné en paramètre.
void modifierNom(const std::string& n);
4. Modifier_centre : écrire deux versions différentes de cette fonction membre
permettant de modifier les coordonnées du centre du cercle par celles données en
paramètre.
void modifier_Centre(double nx, double ny)
void modifier_Centre_v2(double x, double y)
5. deplacer :Déplace le centre du cercle selon les déplacements donnés en argument (dx,
dy).
void deplacer(double dx, double dy);
6. comparer :Vérifie si deux cercles sont identiques (même centre et même rayon).
bool comparer(const Cercle&) const;
3IIR MERBAH AMAL
TP C++ N°4 : Classes
Dans le programme principal main() :
4. Modifie le nom de l’objet C1 et réafficher ses caractéristiques modifié.
5. Modifie le centre de l’objet C1 et réafficher ses caractéristiques modifié.
6. Effectue un déplacement du centre de (-2, 1) et affiche le résultat.
7. Crée un deuxième cercle C2, l’initialise, et compare les deux cercles.
Ajouter à la classe ces méthodes :
1. aire : Calcule et retourne l’aire du cercle : double aire() const;
2. perimetre : Calcule et retourne le périmètre du cercle : double perimetre()
const;
3. contientPoint : Vérifie si un point (px, py) est à l’intérieur ou sur le cercle
bool contientPoint(double px, double py) const;
3IIR MERBAH AMAL