Département de mathématiques
Licence MASS 1998
TD-TP 4
Université de Nice Sophia Antipolis
Problème
Une entreprise desire programmer le calcul du salaire de ses employes.
Ces employes sont classes en 5 categories : c1, c2, c3, Directeur
et Commercial.
Les employes sont des objets des classes
Employe_c1,
Employe_c2,
Employe_c3,
Directeur,
Commercial,
classes etendues de la classe Employe.
Premier cas - sans classes abstraites
Dans un premier temps definir les classes
Employe, Employe_c1,
Employe_c2, Employe_c3,
Directeur et Commercial
tel que :
Dans la classe Employe
Comme champs:
- Le temps horaire par semaine: 39 h.
- Le prix horaire : 200 f.
- Le taux du prix d'une heure supplementaire par rapport
a une heure "normale" : 0.8
- Le nombre d'heures realisees.
Comme constructeur:
Employe(int nbHeures){ . . .}
Comme methodes:
- le calcul du salaire de l'employe calculSalaire().
Dans les classes Employe_c1, ..., Employe_c3 et Directeur
comme champs:
- Un facteur multiplicatif sur le prix horaire:
1 pour les employes c1
2 pour les employes c2
3 pour les employes c3
4 pour les Directeurs
Comme constructeur:
Employe_ci(int nbHeures){ . . .}
Comme methodes:
- le calcul du salaire de l'employe calculSalaire(),
redefinie par rapport a la classe de base.
Dans la classe Commercial
comme champs:
- Une prime.
Comme constructeur:
Commercial(int prime){ . . .}
Comme methodes:
- le calcul du salaire calculSalaire(), qui correspond a un solde
du salaire de employe_c1 sur une base de 39 heures, plus la prime.
Dans la methode main() de la classe Employe :
initialiser un tableau d'employes avec les informations suivantes:
Employe 1 categorie c1 temps horaire 50 heures
Employe 2 categorie c3 temps horaire 30 heures
Directeur temps horaire 50 heures
Commercial prime 4000 f
Pour chacun des employes, afficher son salaire.
Afficher le cout total pour l'entreprise.
public class Employe{
static final int TEMPS_HORAIRE = 39;
static final int PRIX_HORAIRE = 200;
static final double TAUX_HEURE_SUP = 0.8;
int nbHeures;
Employe(int nbHeures){
this.nbHeures = nbHeures;
}
double calculSalaire( ) {
return (nbHeures>TEMPS_HORAIRE)?
PRIX_HORAIRE * TEMPS_HORAIRE+TAUX_HEURE_SUP *
(nbHeures - TEMPS_HORAIRE)*PRIX_HORAIRE :
PRIX_HORAIRE * nbHeures;
}
public static void main(String[] args){
Employe[ ] employes = {
new Employe_c1(50),
new Employe_c3(30),
new Directeur(50),
new Commercial(4000)
};
for(int i=0;i
Michel Bourdelles
Last modified: Tue Mar 24 14:39:19 MET