0% ont trouvé ce document utile (0 vote)
13 vues8 pages

Interfaces Emplolyes

Le document présente une structure de classes en Java pour gérer les employés d'une société, incluant des classes abstraites et des interfaces pour le calcul des salaires. Trois types d'employés sont définis : Ouvrier, Technicien et Ingénieur, chacun ayant des méthodes pour calculer le salaire brut, le salaire net et l'impôt. Un programme principal permet de créer une liste d'employés, de calculer et d'afficher leurs salaires, ainsi que de modifier ou supprimer des employés.

Transféré par

risalafr
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues8 pages

Interfaces Emplolyes

Le document présente une structure de classes en Java pour gérer les employés d'une société, incluant des classes abstraites et des interfaces pour le calcul des salaires. Trois types d'employés sont définis : Ouvrier, Technicien et Ingénieur, chacun ayant des méthodes pour calculer le salaire brut, le salaire net et l'impôt. Un programme principal permet de créer une liste d'employés, de calculer et d'afficher leurs salaires, ainsi que de modifier ou supprimer des employés.

Transféré par

risalafr
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

Correction Série : classes abstraites et interfaces

Exercice (Société)

salaireBrutIngenieur = salaireMensuel + prime


salaireBrutTechnicien = salaireMensuel + nbHeureSupp * prixHeureSupp
salaireBrutOuvrier = nbHeure * prixHeure

1
2

package societe;
public interface CalculSalaire {
float calculerSalaireBrut();
float calculerSalaireNet();
float calculerImpot();
void afficherDetails();
package societe;
public abstract class Employe implements CalculSalaire{
protected String matricule;
protected String nom;
protected String prenom;
protected float salaireBrut;

public String getMatricule() {


return matricule;
}

public String getNom() {


return nom;
}

public String getPrenom() {


return prenom;
}

public Employe(String matricule, String nom, String prenom)


{
[Link]=matricule;
[Link] = nom;
[Link] = prenom;
}

public void afficher() {


[Link]("Matricule : "+ matricule + "Nom: "
+ nom + ", Prénom: " + prenom );
}

class Ouvrier
public class Ouvrier extends Employe {
protected int nbHeure;
protected float prixHeure;
public Ouvrier(String matricule,String nom, String
prenom,int nbHeure,float prixHeure) {
super(matricule,nom, prenom);
[Link]=nbHeure;

2
3

[Link]=prixHeure;
}

public void setNbHeure(int nbHeure) {


[Link] = nbHeure;
}

@Override
public float calculerSalaireBrut() {
return nbHeure * prixHeure;
}

@Override
public float calculerSalaireNet() {
return (float) (salaireBrut * 0.8);
}

@Override
public float calculerImpot() {
return (float) (salaireBrut * 0.1);
}
public void afficherDetails(){
[Link]();
[Link]("nombre d'heures est " + nbHeure +
"prix de lehure est " + prixHeure);
}
}

class Technicien

class Technicien extends Employe {


protected float salaireMensuel;
protected float prixHeureSupp;
protected int nbHeureSupp;
protected String specialite;
public Technicien(String matricule,String nom, String
prenom,float salaireMensuel,float prixHeureSupp,int
nbHeureSupp,String specialite ) {
super(matricule,nom, prenom);
[Link]=salaireMensuel;
[Link]=prixHeureSupp;
[Link]=nbHeureSupp;
[Link]=specialite;
}

public void setNbHeureSupp(int nbHeureSupp) {


[Link] = nbHeureSupp;
}

3
4

@Override
public float calculerSalaireBrut() {
salaireBrut = salaireMensuel + nbHeureSupp *
prixHeureSupp;
return salaireBrut;
}

@Override
public float calculerSalaireNet() {
return salaireBrut * 0.82f;
}

@Override
public float calculerImpot() {
return salaireBrut * 0.15f;
}

@Override
public void afficherDetails() {

[Link]();
[Link]("salaire mensuel" +
salaireMensuel);
}

class Ingenieur

public class Ingenieur extends Employe {


private float prime;
private float salaireMensuel;
private String specialite;
public Ingenieur(String matricule,String nom, String
prenom,float prime,float salaireMensuel,String specialite) {
super(matricule,nom, prenom);
[Link]=prime;
[Link]=salaireMensuel;
[Link]=specialite;

public void setPrime(float prime) {


[Link] = prime;
}

@Override
public float calculerSalaireBrut() {
salaireBrut = salaireMensuel + prime;
return salaireBrut;

4
5

@Override
public float calculerSalaireNet() {
return salaireBrut * 0.85f;
}

@Override
public float calculerImpot() {
return salaireBrut * 0.18f;
}
public void afficherDetails() {
[Link]();
[Link]("SalaireMensuel :" +
salaireMensuel);
[Link]("Prime :" + prime);
[Link]("Specialite :" + specialite);
}
}

Programme Principale

import [Link];
import [Link];
public class Gestemploye {
public static void main(String[] args) {
// Création de la liste d'employés
ArrayList<Employe> listeEmployes = new
ArrayList<>();

// Ajout d'employés
[Link](new
Ingenieur("1882585","John", "Doe", 450,
2200,"Informatique"));
[Link](new
Technicien("1452545555","Jane", "Smith", 1200,
14, 25,"genie mecanique"));
[Link](new
Ouvrier("78744444","Bob", "Johnson", 164, 8));

5
6

// Calcul et affichage des salaires


initiaux
calculerSalaires(listeEmployes);
// Affichage initial
afficherListeEmployes(listeEmployes);

// Modification de l'employé
modifierEmploye(listeEmployes, "John",
"Doe");

[Link]("aprés
modification");
afficherListeEmployes(listeEmployes);

// Suppression d'un employé


supprimerEmploye(listeEmployes, "Jane",
"Smith");

[Link]("Affichage après
suppression de lemploye Jane");
afficherListeEmployes(listeEmployes);
}

// Méthode pour afficher la liste des


employés
private static void
afficherListeEmployes(ArrayList<Employe>
listeEmployes) {
[Link]("Liste des employés
:");
for (Employe employe : listeEmployes) {
[Link]();
}
[Link]("-------------------
-----------");
}

6
7

// Méthode pour calculer les salaires pour


chaque employé
private static void
calculerSalaires(ArrayList<Employe>
listeEmployes) {
for (Employe employe : listeEmployes) {
[Link]();
[Link]("Salaire Brut :"
+ [Link]());
[Link]("Salaire Net :"
+ [Link]());
[Link]("Impot imposable
:" + [Link]());

}
}
// Méthode pour modifier un employé
private static void
modifierEmploye(ArrayList<Employe>
listeEmployes, String nom, String prenom) {
Iterator<Employe> iterator =
[Link]();
while ([Link]()) {
Employe employe = [Link]();
if ([Link]().equals(nom) &&
[Link]().equals(prenom)) {
// Modification spécifique à
votre logique d'application
if (employe instanceof
Ingenieur) {
((Ingenieur)
employe).setPrime(300);
} else if (employe instanceof
Technicien) {
((Technicien)
employe).setNbHeureSupp(50);
} else if (employe instanceof
Ouvrier) {

7
8

((Ouvrier)
employe).setNbHeure(185);
}
}
}
}

// Méthode pour supprimer un employé


private static void
supprimerEmploye(ArrayList<Employe>
listeEmployes, String nom, String prenom) {
Iterator<Employe> iterator =
[Link]();
while ([Link]()) {
Employe employe = [Link]();
if ([Link]().equals(nom) &&
[Link]().equals(prenom)) {
[Link](); //
Utilisation de l'itérateur pour supprimer en
toute sécurité
}
}
}

Vous aimerez peut-être aussi