POO en Java
2ème année de Génie Informatique
LP Développement des Systèmes
d’Information et de Communication
TP 5 : L’héritage
Exercice 1:
On souhaite gérer les salaires des employés d’une société de fabrication de produits
pharmaceutiques.
Partie 1 :
Pour gérer les employés de cette société, nous commençons par la création de la classe
[Link] qui contient :
- les attributs privés nom, prénom, âge et date d'entrée en service dans la société,
- un constructeur avec paramètres,
- une méthode getTitre() qui retourne la chaine : "L’employé"
- une méthode toString() qui retourne la chaine " L'employé "+ prénom + nom . Utiliser la
méthode getTitre().
- une méthode abstraite calculerSalaireEmployé qui retourne le salaire de l’employé (double).
La formule de calcul du salaire dépend du type de l’employé.
NB: La classe Employe doit être déclarée abstraite parce qu’elle contient une méthode
abstraite (calculerSalaireEmployé()).
Créer les classes Représentant, Vendeur, Technicien, Manutentionnaire qui dérivent de la
classe Employé.
La formule de calcul du salaire mensuel dépend du type de l’employé :
- Représentant : 30% du chiffre d'affaires qu'ils réalisent mensuellement, plus 1000 DH.
Utiliser les constantes de classe suivantes : POURCENT_REPRESENTANT=0.3 et
BONUS_REPRESENTANT=1000. Ajouter un attribut membre chiffreAffaire (double) pour le
chiffre d’affaire.
Salaire= chiffreAffaire * POURCENT_REPRESENTANT+ BONUS_REPRESENTANT
- Vendeur : 20% du chiffre d'affaires qu'ils réalisent mensuellement, plus 670 DH. Utiliser les
constantes de classe suivantes : POURCENT_VENDEUR = 0.2 et BONUS_VENDEUR = 670.
- Technicien : nombre d’unités produites mensuellement multiplié par 5. Utiliser la constante
de classe FACTEUR_UNITE = 5.0.
- Manutentionnaire : nombre d’heures de travail mensuel multiplié par 100 DH. Utiliser la
constante de classe SALAIRE_HORAIRE = 100.00.
Etablir le diagramme de classes correspondant.
1
POO en Java
2ème année de Génie Informatique
LP Développement des Systèmes
d’Information et de Communication
Ajouter à chaque classe dérivée les attributs appropriés, un constructeur avec paramètres
(utiliser super), le code de la méthode abstraite calculerSalaireEmployé() et la redéfinition de
la méthode getTitre(). Par exemple pour un représentant, getTitre() retourne : "Le
représentant"
Partie 2 :
Ajouter le type d’employé Commercial duquel dérivent les types d’employés représentants et
vendeurs précédents. Ceci permet d’éviter les redondances d’attributs (l’attribut chiffre
d’affaires est redondant).
La classe Commercial contient un attribut privé chiffreAffaire (double), un constructeur avec
paramètres et l’accesseur getChiffreAffaire() qui retourne le chiffreAffaire.
La classe mère des classes Représentant et Vendeur devient alors la classe Commercial.
Partie 3 :
Certains techniciens et manutentionnaires manipulent des produits dangereux. Ainsi, nous
allons ajouter à ces employés à risque une prime mensuelle fixe de 335 DH.
Ajouter une interface Risque pour les employés à risque permettant de leur associer une prime
mensuelle. Cette interface contient une constante de classe PRIME = 335.
Pour gérer ces deux nouveaux types d’employés, ajouter deux classes TechnicienARisque et
ManutentionnaireARisque.
Ajouter à chacune des 2 classes un constructeur avec paramètres et une redéfinition de la
méthode calculerSalaireEmployé(). Cette méthode utilise la constante de classe PRIME
définit dans l’interface Risque.
Partie 4 :
Ajouter une classe Personnel contenant les attributs suivants :
- liste: un tableau d'employés,
- nbEmployes : un entier contenant le nombre d’employés dans liste et
- MAX_EMPLOYES : une constante de classe qui contient le nombre maximal d’employés
qu’on peut ajouter dans liste.
De plus, la classe Personnel contient les méthodes aux prototypes suivants :
- Personnel(int n) : Le constructeur de la classe qui demande en entrée le nombre d’employés
n à ajouter dans liste. Si n est supérieur à MAX_EMPLOYES, un message d’erreur est affiché
sinon, on alloue la mémoire pour les n employés.
- void ajouterEmploye(Employe e) : Ajoute un seul employé e à la liste.
- void afficherSalaires() : Affiche les informations des employés de la liste c à d titre, nom,
prénom et [Link] les méthodes toString() et calculerSalaireEmployé().
- double salaireMoyen() : Calcule le salaire moyen des employés de la liste.
2
POO en Java
2ème année de Génie Informatique
LP Développement des Systèmes
d’Information et de Communication
- main : qui 1) lit le nombre d’employés n à ajouter, 2) crée un objet p de la classe Personnel
pour appeler les méthodes : ajouterEmploye(), afficherSalaires() et salaireMoyen() pour 3)
ajouter des employés des 6 types, 4) afficher leurs salaires correspondants ainsi que 5) le
salaire moyen.
NB: ajouter un menu.
Exercice supplémentaire:
Dans l’exercice 1, traiter les exceptions qui peuvent être générées suite à de mauvaises
manipulations de la part de l’utilisateur.