Exercice langage C: Rectangle

Ecrire un programme utilisant une classe rectangle dont le constructeur prend deux paramètres, largeur et hauteur et qui offre les fonctions suivantes :

  • calcul du périmètre
  • calcul de la surface
  • affichage

Ainsi que les accesseurs et mutateurs triviaux (lecture et modification de la largeur et de la hauteur).


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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Découverte et travail des classes. Utilisation d'un constructeur et d'un destructeur.
 
#include
 
using namespace std;
 
class Rectangle
{
public:
  Rectangle(unsigned int initLargeur, unsigned int initHauteur);
  ~Rectangle();
  unsigned int getLargeur() const { return largeur; };
  unsigned int getHauteur() const { return hauteur; };
  unsigned int perimetre() const { return 2*(largeur+hauteur); };
  unsigned int surface() const { return largeur * hauteur; };
  void setLargeur(unsigned int newLargeur) { largeur = newLargeur; };
  void setHauteur(unsigned int newHauteur) { hauteur = newHauteur; };
  void afficher();
 
private:
  unsigned int largeur;
  unsigned int hauteur;
};
 
Rectangle::Rectangle(unsigned int initLargeur, unsigned int initHauteur)
{
  largeur = initLargeur;
  hauteur = initHauteur;
}
 
Rectangle::~Rectangle()
{
}
 
void Rectangle::afficher()
{
  for(unsigned int i=0; i < hauteur; i++)
  {
    for(unsigned int j=0; j < largeur; j++)
      cout << "*";
    cout << endl;
  }
}
 
int main()
{
  Rectangle monRectangle(0,0);
  char choix = '0';
  unsigned int value;
 
  while(true)
  {
    do
    {
      cout << " Rectangle - Menu" << endl;
      cout << "1 - Modifier largeur du rectangle" << endl;
      cout << "2 - Modifier hauteur du rectangle" << endl;
      cout << "3 - Calculer les propriétés du rectangle" << endl;
      cout << "4 - Afficher le rectangle" << endl;
      cout << "5 - Quitter" << endl;
 
      cin >> choix;
    }while(choix < '1' || choix > '5');
 
    switch(choix)
    {
      case '1':
        cout << "Nouvelle largeur : ";
        cin >> value;
        monRectangle.setLargeur(value);
        break;
      case '2':
        cout << "Nouvelle hauteur : ";
        cin >> value;
        monRectangle.setHauteur(value);
        break;
      case '3':
        cout << "Périmètre : " << monRectangle.perimetre() << endl;
        cout << "Surface : " << monRectangle.surface() << endl;
        break;
      case '4':
        monRectangle.afficher();
        break;
      case '5':
        exit(0);
        break;
      default:
        cout << "Erreur ! Choix invalide." << endl;
        exit(1);
    }
  }
 
  return 2;
}