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;
}