Académique Documents
Professionnel Documents
Culture Documents
TP N°3
Héritage et polymorphisme
Objectif du TP :
▪ Utiliser l’héritage
▪ Utiliser le polymorphisme
▪ Développer une première application pour la gestion des comptes bancaires
et une deuxième pour le calcul des salaires des employés d’une entreprise.
Organisation :
Créez un répertoire TP4 dans votre répertoire Java créé lors du TP1. Comme ce TP contient 2
exercices, créez 2 sous répertoires, dans TP4 : EXO1, EXO2.
• Un compte bancaire possède à tout moment une donnée : son solde. Ce solde doit
toujours être positif (compte créditeur).
• Chaque compte est caractérisé par un code incrémenté automatiquement.
• A sa création, un compte bancaire a un solde nul et un code incrémenté.
• Il est aussi possible de créer un compte en précisant son solde initial.
• Utiliser son compte consiste à pouvoir y faire des dépôts et des retraits. Pour ces deux
opérations, il faut connaître le montant de l'opération.
• L'utilisateur peut aussi consulter le solde de son compte par la méthode toString().
• Un compte Epargne est un compte bancaire qui possède en plus un champ
« TauxInterêt =6» et une méthode calculIntérêt() qui permet de mettre à jour le solde
en tenant compte des interêts. Le taux d’intérêt est le même pour tous les comptes et
peut changer au cours du temps. Une opération de virement d’un compte Epargne vers
un autre compte Epargne s’effectue sans frais, par contre un virement d’un compte
Epargne vers un compte payant est soumis à des frais. Le montant de ces frais est de
20dh et peut changer au cours du temps. La méthode effectuerVirement(Compte cpte,
double montant) réalise une opération de virement en mettant à jour les soldes des
comptes impliqués. La gestion d’un compte Epargne n’est soumise à aucun frais.
• Un ComptePayant est un compte bancaire pour lequel chaque opération de retrait et de
versement est payante et vaut 5 dh. Ce montant peut changer au cours du temps. La
gestion d’un compte payant est soumise à des frais de gestion qui peuvent changer au
cours du temps et s’élèvent actuellement à 200 dhs l’année. La méthode
appliquerFraisGestion() met à jour le solde du compte en lui soutrayant le montant des
frais. Une opération de virement d’un compte payant vers un compte Epargne
s’effectue sans frais, par contre les frais de virement d’un compte payant vers un autre
compte payant sont de 10 dh et peuvent changer au cours du temps. La méthode
effectuerVirement(Compte cpte, double montant) réalise une opération de virement en
mettant à jour les soldes des comptes impliqués
1/5
Questions :
L’objectif de cet exercice est de programmer le calcul des salaires hebdomadaires des
employés d'une entreprise.
Cette entreprise comporte deux types d'employés :
• Des agents qui sont payés suivant le nombre d'heures qu'ils ont travaillé dans la semaine.
Chaque agent travaille, durant la période normale du travail au cours de la semaine, un
certain nombre d’heures qui sont payées au tarif horaire normal. Ce tarif horaire change
avec le statut de l’agent. On distingue 3 statuts : Non qualifié (tarif horaire = 10dhs),
qualifié (Tarif horaire = 15dhs) et expert (tarif horaire = 20dhs). Le statut de l’employé
peut changer au cours du temps.
Un agent peut effectuer des heures supplémentaires qui sont payées avec un taux de
majoration dont la valeur est :
o 25% pour les heures supplémentaires effectuées le soir durant la semaine,
o 50% pour les heures effectuées durant le Week End
o 100% pour celles effectuées durant des vacances.
• Les commerciaux sont payés avec une somme fixe à laquelle on ajoute une
commission égale au produit du tauxCommision par le chiffre d'affaires qu'ils ont fait
dans la semaine.
2/5
tauxCommission est le même pour tous les commerciaux, et peut changer au cours du
temps.
Modélisez cette situation à l'aide de classes comme le montre le diagramme UML ci-dessous :
La classe HeureSup modélise une séance d’heures supplémentaires qui est décrite par la date
à laquelle elle s’est déroulée, le taux de majoration appliqué et le nombre d’heures effectuées.
La classe Agent doit permettre de spécifier le nombre d’heures travaillés au tarif horaire
normal. Elle doit également permettre d’ajouter les information sur les séances d’heures
supplémentaires effectuées par l’agent. Ces séance qui sont des objets instances de la classe
HeureSup sont stockées dans une ArrayList.
3/5
Créez une classe Paie qui comporte une méthode main() qui effectue les tâches :
//Positionner nbHeureTauxNormal à 40
//Positionner nbHeureTauxNormal à 30
//Positionner nbHeureTauxNormal à 40
4/5
//le nom et le salaire de chaque employé
// Afficher également le total des salaires de tous les employés
}
}
5/5