1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| #include <iostream>
#include <math.h>
using namespace std;
class Point {
public: //declarer la fonction set_values
void set_values (int x, int y){ //Les coordonnees des points sont des int
this->x=x; this->y=y;
}
int getX(){return this->x;} //pointers vers les valeurs
int getY(){return this->y;}
private:
int x,y; //les coordonnes sont des int
};
class Carre {
public:
void set_points(Point p1, Point p2) //La fonction qui set les 2 points du carres, car un carre peut se faire a partir de 2 pts
{
this->p1 = p1;
this->p2 = p2;
}
float length(){return sqrt(((p2.getY() - p1.getY()) * (p2.getY() - p1.getY())) + ((p2.getX() - p1.getX()) * (p2.getX() - p1.getX())));} //Derive du theoreme de Pythagore pour trouver la distance entre 2 pts
float aire() //Utilisation de float pour la precision avec les racines carres
{return length() * length();} //Le cote multiplier par lui-meme donne l'aire
private:
Point p1,p2;
};
class Cube{
public:
void set_carre(Carre carre){this->carre = carre;}
float volume()
{return carre.aire() * carre.length();} //Le volume est length au cube ou aire*length
private:
Carre carre;
};
int main()
{
cout << "***** Point, carre et cube en heritage *****" << endl;
cout << endl;
int a,b,c,d; //L'utilisateur entre les coordonnes
cout <<"Coordonner en X du premier point: "; cin>>a;
cout <<"Coordonner en Y du premier point: "; cin>>b;
cout <<"Coordonner en X du deuxieme point: "; cin>>c;
cout <<"Coordonner en Y du deuxieme point: "; cin>>d;
Point p1,p2;
Carre carre1;
Cube cube1;
p1.set_values(a,b); //Les valeurs sont mis pour les points, le carre et le cube
p2.set_values(c,d);
carre1.set_points(p1,p2);
cube1.set_carre(carre1);
cout << endl;
cout <<"********************************************" << endl;
//cout le resultat
cout << "L'aire du carre est de " <<carre1.aire() << endl;
cout << "Le volume du cube est de "<<cube1.volume() << endl;
return 0;
} |
Partager