#include #include #include using namespace std; class Cercle { public: //constructeurs Cercle(double xCen, double yCen, double rayon); //fonctions d'acces double area() const; double circumference() const; double getXCentre() const; double getYCentre() const; double getRadius() const; //methodes publiques: fonctions pour modifier le cercle void setXCentre(double nX); void setYCentre(double nY); void setRadius(double nR); //fonction pour imprimer l'information du cercle void imprimerInfo() const; private: //donnees privees double radius, xCen, yCen; double surf, perim; //methodes privess void setArea(); void setCircumf(); }; //constructeur Cercle::Cercle(double x, double y, double r): radius(r), xCen(x), yCen(y) { setArea(); setCircumf(); } //fonctions d'acces double Cercle::area() const { return surf; } double Cercle::circumference() const { return perim; } double Cercle::getXCentre() const { return xCen; } double Cercle::getYCentre() const { return yCen; } double Cercle::getRadius() const { return radius; } //methode publique pour changer le centre du cercle en X void Cercle::setXCentre(double nX) { cout << "INFO : modification coordonnee X du centre du cercle" << endl; xCen = nX; } //methode publique pour changer le centre du cercle en Y void Cercle::setYCentre(double nY) { cout << "INFO : modification coordonnee Y du centre du cercle" << endl; yCen = nY; } //methode publique pour changer le rayon du cercle void Cercle::setRadius(double nR) { cout << "INFO : modification du rayon du cercle" << endl; radius = nR; setArea(); setCircumf(); } //methode privee pour calculer la surface du cercle, //on l'appelle aussi quand le rayon du cercle change void Cercle::setArea() { cout << "INFO : (re)calcule de l'aire du cercle" << endl; surf = M_PI*radius*radius; } //methode privee pour calculer la circonference du cercle, //on l'appelle aussi quand le rayon du cercle change void Cercle::setCircumf() { cout << "INFO : (re)calcule de la circonference du cercle" << endl; perim = 2.*M_PI*radius; } void Cercle::imprimerInfo() const { cout << "Le centre du cercle est dans " << "(x = " << xCen << ", y = " << yCen << ")," << endl; cout << "et le rayon du cercle est r = " << radius << endl; } int main() { double x, y, r; cout << "Coordonee x du centre du cercle : "; cin >> x; cout << "Coordonee y du centre du cercle : "; cin >> y; cout << "Rayon du cercle : "; cin >> r; Cercle lune(x,y,r); lune.imprimerInfo(); cout << "L'aire du cercle est A = " << lune.area() << endl << "et sa circonference est P = " << lune.circumference() << endl; cout << "Entrez une nouvelle coordonee x pour le cercle : "; cin >> x; lune.setXCentre(x); cout << "et une nouvelle coordonee y pour le cercle : "; cin >> y; lune.setYCentre(y); cout << "et un nouveau rayon pour le cercle : "; cin >> r; lune.setRadius(r); cout << "La nouvelle aire du cercle est A' = " << lune.area() << endl << "et sa circonference est P' = " << lune.circumference() << endl; lune.imprimerInfo(); cout << endl; double a; cout << "Dernier example" << endl; cout << "Multiplication des coordonees du centre et du rayon par : "; cin >> a; x = lune.getXCentre()*a; y = lune.getYCentre()*a; r = lune.getRadius()*a; lune.setXCentre(y); lune.setYCentre(x); lune.setRadius(r); lune.imprimerInfo(); cout << "\nLa nouvelle surface A = " << lune.area() << endl; cout << "et la circonference P = " << lune.circumference() << endl; return 0; }