/***************************************************************** Type : Rectangle Analyse Un rectangle est connu par son grand cote et son petit cote Les formules necessaires sont: perimetre = 2(grand_cote+petit_cote) surface = grand_cote*petit_cote *****************************************************************/ #include using namespace std; class Rectangle { float gd_cote ; float pt_cote ; public: Rectangle() ; Rectangle(float,float) ; void lecture(); void lecture(istream&); void imprime() ; void ecrire(ostream&) ; float perimetre() ; float surface() ; } ; /***************************************************************** Methodes pour le type Rectangle *****************************************************************/ /*--------------------------------------------------------------- Contructeurs ---------------------------------------------------------------*/ Rectangle::Rectangle() { gd_cote = 0 ; pt_cote = 0 ; } Rectangle::Rectangle(float cote1, float cote2) { gd_cote = cote1 ; pt_cote = cote2 ; } /*--------------------------------------------------------------- Lecture ---------------------------------------------------------------*/ // De l'entree standard (clavier) void Rectangle::lecture() { cin >> gd_cote >> pt_cote ; } // D'un stream quelconque (clavier, fichier, ...) void Rectangle::lecture(istream& in) { in >> gd_cote >> pt_cote ; } /*--------------------------------------------------------------- Methode pour le calcul... ---------------------------------------------------------------*/ float Rectangle::perimetre() { return 2 * (gd_cote + pt_cote) ; } float Rectangle::surface() { return gd_cote * pt_cote; } /*--------------------------------------------------------------- Ecriture ---------------------------------------------------------------*/ // Sur la sortie standard (ecran) void Rectangle::imprime() { cout << gd_cote << " x " << pt_cote ; } // Sur un stream quelconque (ecran, fichier, ...) void Rectangle::ecrire(ostream& out) { out << gd_cote << " x " << pt_cote ; } /*--------------------------------------------------------------- Redefinition de >> (pour la lecture) ---------------------------------------------------------------*/ istream& operator>>(istream& is, Rectangle& boite) { boite.lecture(is); return is; } /*--------------------------------------------------------------- Redefinition de << (pour l'ecriture) ---------------------------------------------------------------*/ ostream& operator<<(ostream& os, Rectangle boite) { boite.ecrire(os); return os; }