Bonjour, j'essaye actuellement de bien comprendre le polymorphisme et l'héritage, pour cela je veux résoudre un exercice type : les employés d'une entreprise.
On souhaite gérer les différents employés d'une entreprise. Pour chacun on conserve son numéro de sécurité sociale et son nom. On souhaite également connaitre son emploi. L'entreprise a un patron, des vendeurs et des caissières. chaque employé, sauf le patron à un supérieur hiérarchique. Le patron touche son salaire ainsi qu'une prime de risque. Les vendeurs touchent une commission en plus de leur salaire. Les caissière touchent simplement leur salaire. Pour chaque employé on désir avoir les fonctions suivantes:
- un constructeur
- sePresenter qui permet d'écrire sur le terminal le numéro SS de l'employé, son nom et son emploi
- revenu qui calcul le revenu de l'emplyé: salaire + prime ou commission s'il y a lieu
-getsuperieur qui donne le supérieur hierarchique.
Inclure une classe nommée CSS pour gérer le numéro de sécurité sociale.
Concevez et programmez les différentes classes permettant de traiter le problème. Pensez au destructeurs et constructeurs de copie si besoin est. Aucune gestion d'erreur n'est demandée.
Voila j'ai à peu près modéliser le problème comme suite :
class employé :
- CSS secu
- string nom
- string emploi
+employe() constructeur
+sePresenter() Virtuel pure donc classe abstraite
+revenu() virtuel pure
+ getsuperieur() virtuel pure
~employe() destructeur virtuel
class patron:
- double salaire
- double prime
+patron()
+sePresenter()
+revenu()
+getsuperieur
~patron()
class vendeur:
- double salaire
- double commission
+vendeur()
+sePresenter()
+revenu()
+getsuperieur
~vendeur()
class caissiere:
- double salaire
+caissiere()
+sePresenter()
+revenu()
+getsuperieur
~caissiere()
Voila j'ai ainsi pu programmer les différentes classes. Mais il reste quelque chose qui me taquine. En effet, le salaire étant présent dans les trois sous-classes, je me demande s'il n'était pas plus judicieux de l'envoyer dans la classe employé .
Si quelqu'un peut m’éclaircir sur ce point ce serait cool.
Merci
Partager