Vous êtes sur la page 1sur 2

Travail Libre – Java Standard

Partie 1
Cet exercice a pour but la réflexion et la pratique autour des problématiques de programmation
orientées objets.

Une petite entreprise de produits cosmétiques souhaite informatiser la gestion du calcul des
salaires de ses employés. En effet afin permettre à cette entreprise d'informatiser le calcul des
salaires, il faut tout d'abord construire une hiérarchie d'objets permettant de représenter ses
salariés.

Lors de votre entretien avec le directeur, vous notez les contraintes suivantes :

- Tout employé est caractérisé par son nom, son prénom, son âge, et sa date d'entrée en service

- Tout employé a un salaire mensuel calculé selon le poste qu'il occupe dans l'entreprise

- Les types d'employés

- Vendeur : Son salaire est calculé avec 20% du chiffre d'affaire qu'il a effectué dans le
mois, plus une prime fixe de 400MAD
- Représentant : Son salaire est calculé avec 20% du chiffre d'affaire qu'il a effectué dans
le mois, plus une prime fixe de 800MAD
- Producteur : Son salaire est calculé avec le nombre d'unités produites dans le mois
multiplié par un taux fixe de 5MAD
- Manutentionnaire : Son salaire est calculé avec le nombre d'heures effectuées dans le
mois multiplié par un taux fixe de 65MAD

- Certains employés des secteurs production et manutention sont appelés à manipuler des
produits dangereux

- Une prime fixe de 200MAD est ajoutée à leur salaire mensuel

- Le programme doit permettre de gérer une collection d'employés à partir de laquelle on peut
afficher de détails des salaires de chaque employé, mais aussi le salaire moyen.

Le code suivant doit permettre de tester le programme :

public class Main {


public static void main(final String[] args) {
final Staff myEmployees = new Staff();
myEmployees.add(new Salesman("Adil", "Business", 45, "1995", 30000));
myEmployees.add(new Representant("Mourad", "Représentant", 25, "2001", 20000));
myEmployees.add(new Producer("Amina", "Productrice", 28, "1998", 1000));
myEmployees.add(new Wharehouseman("Yassine", "Stock", 32, "1998", 45));
myEmployees.add(new ProducerWithRisk("Aziz", "Risque", 28, "2000", 1000));
myEmployees.add(new WharehousemanWithRisk("Oussama", "Surface", 30, "2001", 45));
myEmployees.displaySalaries();
myEmployees.displayAverageSalary();
}
}
Résultat attendu :

Liste des salaires des employés :


L'employé Adil Business a un salaire de 6400 MAD
L'employé Mourad Représentant a un salaire de 4800 MAD
L'employé Amina Productrice a un salaire de 5000 MAD
L'employé Yassine Stock a un salaire de 2925 MAD
L'employé Aziz Risque a un salaire de 5200 MAD
L'employé Oussama Surface a un salaire de 3125 MAD
Valeur du salaire moyen : 4575 MAD

Partie 2
Lorsque vous montrez au directeur le résultat de votre programme permettant d'afficher les
salaires, il est content mais il y a un problème... Il a oublié de vous parler du fait que la société
travaille avec des indépendants, et leurs factures doivent entrer en compte dans le calcul des
salaires.

Vous récupérez les informations suivantes sur les indépendants :

- Ils sont caractérisés par un nom et un numéro du Registre du Commerce (RC), ainsi qu'une liste
de facture pour le mois courant

- L'équivalent de leur salaire se calcul avec la somme des factures qui lui sont associées

- Une facture est caractérisée par une date, une somme en MAD, et un libellé représentant la
nature de la prestation

- Les factures dont le libellé commence par "Frais de déplacement" ne doivent pas être prises en
compte dans le calcul du salaire d'un indépendant

A la fin de votre entretien, vous récupérez une information supplémentaire de dernière minute. Le
directeur aimerait avoir l'affichage du nom complet de l'employé lors de l'affichage de son salaire,
et s’il est indépendant, cela doit être facilement reconnaissable.

Exemple :

- Employé salarié -> getNom() -> "Employé Malika Salariée : xxxx MAD"
- Employé indépendant -> getNom() -> "Indépendant Abdelouahed Freelance : xxxx MAD"

Centres d'intérêt liés