Sie sind auf Seite 1von 5

Université Ibn Zohr

Faculté des Sciences Agadir


(SMI5 & LP2I)

Série n°4
Gestion des heures supplémentaire ou de vacations
On souhaite développer une application java pour calculer le montant des heures supplémentaires ou des vacations
des enseignants d'un établissement Universitaire.
Créer une classe Enseignant représentée par un nom, un prénom, matricule, période, grade, Taux de l’IGR et
le salaire. Les attributs de la classe sont privés. Utiliser les accesseurs et les mutateurs pour pouvoir accéder aux
donner et les afficher avec toString.
Il existe deux catégories d'enseignants: Enseignant permanent et enseignant vacataire.
 Les enseignants permanent peuvent effectuer des heures supplémentaire à condition de faire leur charge
annuel fixer à 350 heures.
 L'établissement Universitaire peut faire appel aux enseignants vacataires pour effectuer certains travaux
pratiques ou enseigner certaines cours spécialisés.
Les Enseignant permanent possèdent en plus des caractéristiques héritées de la classe Enseignant ses propres
caractéristiques à savoir : le nombre d’heures totales travaillées dans leurs établissements.
Pour Les Enseignant vacataire possèdent en plus des caractéristiques héritées de la classe Enseignant ses propres
caractéristiques à savoir : le nombre d’heures de vacation.
Sachant que ce taux est de 14% pour les enseignants vacataires et un taux de l’IGR de 38% pour les heures
supplémentaires pour les enseignants permanents appartenant au même établissement.
Les classes Enseignant, Enseignant permanent et Enseignant vacataire possèdent la méthode void calculSalaire()
calculant la partie du salaire liées aux heures supplémentaires ou aux vacations.
Utiliser les accesseurs et les mutateurs pour modifier les donner et afficher l'ensemble de ses caractéristiques
des deux classes. Les trois classes possèdent la méthode void calculIGR() permettant de déduire le montant IGR
qui sera payé au service d'impôt
Ecrire Une classe Paie permettant :
1- Créer des objets des diverses classes
2- calculer le salaire (void calculSalaire()) d’un enseignants permanent de grade PES qui a travaillé 440
heures et au autre enseignant vacataire de grade PH qui travaillé 120 de vacation dans un autre
établissement de son université.
Notes : Tarif horaire : Grade PES : 300DH brute Garde PH : 250DH Brute Garde PA: 200 DH Brute
3- Vérifiez les instructions suivantes:
(1) Enseignant eng = new Enseignant(….);
eng.setSalaire() ;
(2) Enseignant eng2 = new Enseignant_permanent(500) ;
eng2.SetSalaire() ;
(3) Enseignant eng3 = new Enseignant_vacataire( 140 );
eng3.SetSalaire() ;
(4) Enseignant eng 4 = new Enseignant_ permanent ( 800 );
eng4. calculIGR() () ;

Quelle est la bonne méthode setSalaire() des trois classes sera choisie dans l'instruction (1), (2) et (3)
pourquoi. Proposez une solution à l'instruction (4).
4- Enregistrez les objets en2, en3 et en4 dans un tableau d'objet et calculez le montant global de
l'IGR qui sera payé au Impôt.

1
Université Ibn Zohr
Faculté des Sciences Agadir
(SMI5 & LP2I)

Correction de la series 4

// A corriger dans la série n°4


// les trois classes possèdent la méthodes void calculeIGR()
//par contre uniquement les classes Enseignant vacataire et enseignant // permanent qui contiennent la méthode void calculSalaire

package fsa.ac.ma;
public abstract class Enseigant {
private String Matricule;
private String Nom;
private String prenom;
private String Grade;
private String periode;
private double salaire;
private double MontantIGR;
Enseigant(){Matricule="";Nom="";prenom="";Grade="";periode="";salaire=0.0;}
Enseigant(String _Matricule,String _Nom,String _prenom,String _Grade,String _periode)
{Matricule=_Matricule;Nom=_Nom;prenom=_prenom;Grade=_Grade;periode=_periode;}
public void calculIGR(){}
public String getMatricule() {return Matricule;}
public void setMatricule(String matricule) {Matricule = matricule;}
public String getNom() {return Nom;}
public void setNom(String nom) {Nom = nom;}
public String getPrenom() {return prenom;}
public void setPrenom(String prenom) {this.prenom = prenom;}
public String getGrade() {return Grade;}
public void setGrade(String grade) {Grade = grade;}
public String getPeriode() {return periode;}
public void setPeriode(String periode) {this.periode = periode; }
public double getSalaire() {return salaire;}
public void setSalaire(double salaire) {this.salaire = salaire;}
public String toString()
{return " Matricule : "+Matricule+"\n Nom :"+Nom+"\n prenom :"+prenom+"\n Grade :"+Grade+"\n periode : "+periode;}
void calculSalaire() {}
public double getMontantIGR() {return MontantIGR;}
public void setMontantIGR(double montantIGR) {MontantIGR = montantIGR;}

/****************************

package fsa.ac.ma;
public class Enseignant_vacataire extends Enseigant
{
private int nbHeures_vaction;
private final double tauxIGR=0.14;
Enseignant_vacataire(){
super();
nbHeures_vaction=0;
}

2
Université Ibn Zohr
Faculté des Sciences Agadir
(SMI5 & LP2I)

Enseignant_vacataire(String _Matricule,String _Nom,String _prenom,String _Grade,String _periode, int


_nbHeures_vaction){
super(_Matricule,_Nom,_prenom,_Grade,_periode);
nbHeures_vaction=_nbHeures_vaction;
}
public void calculSalaire()
{ if(this.getGrade().equals("PES")) setSalaire(nbHeures_vaction*300*(1-tauxIGR));
if(this.getGrade().equals("PH")) setSalaire(nbHeures_vaction*250*(1-tauxIGR));
if(this.getGrade().equals("PA")) setSalaire(nbHeures_vaction*200*(1-tauxIGR));
}
public void calculIGR()
{ if(this.getGrade().equals("PES")) setMontantIGR(nbHeures_vaction*300*tauxIGR);
if(this.getGrade().equals("PH")) setMontantIGR(nbHeures_vaction*250*tauxIGR);
if(this.getGrade().equals("PA")) setMontantIGR(nbHeures_vaction*200*tauxIGR);
}

public String toString()


{ return super.toString()+ "\n Montant vacation : "+ this.getSalaire()+ "\n Montant IGR :"+ this.getMontantIGR() ; }

}
/*************************************

package fsa.ac.ma;

public class Enseignant_permanent extends Enseigant {


private int nbHeures_total;
private final double tauxIGR=0.38;
Enseignant_permanent(){
super();
nbHeures_total=0;
}
Enseignant_permanent(String _Matricule,String _Nom,String _prenom,String _Grade,String _periode, int _nbHeures_total){
super(_Matricule,_Nom,_prenom,_Grade,_periode);
nbHeures_total=_nbHeures_total;
}
public void calculSalaire()
{ if(this.getGrade().equals("PES"))
{if(nbHeures_total>350) setSalaire((nbHeures_total-350)*300*(1-tauxIGR));
else System.out.println("Vous n'avez pas effctué votre chage annuel");}
if(this.getGrade().equals("PH"))
{if(nbHeures_total>350) setSalaire((nbHeures_total-350)*250*(1-tauxIGR));
else System.out.println("Vous n'avez pas effctué votre chage annuel");}
if(this.getGrade().equals("PA"))
{if(nbHeures_total>350) setSalaire((nbHeures_total-350)*200*(1-tauxIGR));
else System.out.println("Vous n'avez pas effctué votre chage annuel");}
}
public void calculIGR()
{ if(this.getGrade().equals("PES"))
{if(nbHeures_total>350) setMontantIGR((nbHeures_total-350)*300*tauxIGR);
else System.out.println("Vous n'avez pas effctué votre chage annuel");}
if(this.getGrade().equals("PH"))
{if(nbHeures_total>350) setMontantIGR((nbHeures_total-350)*250*tauxIGR);
else System.out.println("Vous n'avez pas effctué votre chage annuel");}
if(this.getGrade().equals("PA"))

3
Université Ibn Zohr
Faculté des Sciences Agadir
(SMI5 & LP2I)

{if(nbHeures_total>350) setMontantIGR((nbHeures_total-350)*200*tauxIGR);
else System.out.println("Vous n'avez pas effctué votre chage annuel");}
}

public String toString()


{ return super.toString()+ "\n Montant Heures Sup : "+ this.getSalaire()+"\n MontantIGR : "+this.getMontantIGR(); }
}
/*************************************************************************

package fsa.ac.ma;
import java.util.*;

// A corriger dans la serie n°4


// les trois classes possèdent la méthodes void calculeIGR()
//par contre uniquement les classes Enseignant vacataire et enseignant //permanent qui contiennent la méthode void calculSalaire

public class Paie {

public static void main(String[] args) {


//Enseigant eng=new Enseigant(); class abstract ne peut ête instanciée
Enseignant_vacataire engv=new Enseignant_vacataire("PES_120","TAHA","MOHAMED","PES","12/11/2012",100);
engv.calculSalaire();
engv.calculIGR();
// System.out.println(engv.toString());
/*******************************************/
Enseigant engv2=new Enseignant_vacataire("PH_450","TOTO","YASSINE","PH","12/10/2012",450);
((Enseignant_vacataire)engv2).calculSalaire();
engv2.calculIGR(); //sous-casting est obligatoire
// System.out.println(engv2.toString());

//**************************************************************
Enseignant_permanent engv3=new
Enseignant_permanent("PA_500","TOTO","YASSINE","PA","12/10/2012",500);
engv3.calculSalaire();
engv3.calculIGR();
System.out.println(engv3.toString());
//********************************************************************
Enseigant engv4=new Enseignant_permanent("PH_450","TOTO","YASSINE","PH","12/10/2012",650);
((Enseignant_permanent)engv4).calculSalaire();
engv4.calculIGR(); //sous-casting est obligatoire

// System.out.println(engv2.toString());

Enseigant [] E;
E= new Enseigant[4];
E[0]=engv;E[1]=engv2;E[2]=engv3;E[3]=engv4;
double MontantIGR_global=0.0;
for(int i=0; i<E.length;i++) E[i].calculIGR();
for(int i=0; i<E.length;i++) MontantIGR_global+= E[i].getMontantIGR();
System.out.println("\n Monstants IGR global à payer avec Tableau :"+MontantIGR_global);

4
Université Ibn Zohr
Faculté des Sciences Agadir
(SMI5 & LP2I)

double MontantIGR_global2=0.0;
Vector<Enseigant> E2;
E2 = new Vector<Enseigant>();
E2.addElement(engv);
E2.addElement(engv2);
E2.addElement(engv3);
E2.addElement(engv4);
for(int i=0; i<E2.size();i++) E2.elementAt(i).calculIGR();
for(int i=0; i<E2.size();i++) MontantIGR_global2+=E2.elementAt(i).getMontantIGR();
System.out.println("\n Monstants IGR global à payer avec Vector :"+MontantIGR_global2);
}