1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
abstract class Employe
{
//ici il faudrait ajouter l'encapsulation
public $nom;
public $numeroassurance;
public $nombreheure;
public function __construct($nom, $numeroassurance,$nombreheure)
{
$this->setNom($nom);
$this->setNumeroAssurance($numeroassurance);
$this->setNombreheure($nombreheure);
}
function setNom($nom)
{
$this->nom = $nom;
}
function getNom()
{
return $this->nom;
}
function setNumeroAssurance($numeroassurance)
{
$this->numeroassurance = $numeroassurance;
}
function getnumeroassurance()
{
return $this->numeroassurance;
}
function setNombreheure($nombreheure)
{
$this->nombreheure = $nombreheure;
}
function getNombreheure()
{
return $this->nombreheure;
}
//cette méthode abstraite force l'implémentation d'afficheResume dans les classes qui héritent de Produit
abstract function CalculSalaire();
}
class EmployeSalaireHoraire extends Employe
{
public $tauxhoraire;
public function __construct($nom, $numeroassurance, $nombreheure,$tauxhoraire)
{
parent::__construct($nom,$numeroassurance,$nombreheure);
//$this->nombreDePistes = $nombreDePistes;
$this->tauxhoraire = $tauxhoraire;
}
public function CalculSalaire()
{
$salaire=$this->tauxhoraire*$this->nombreheure;
return $salaire;
}
function affiche(){
return "Je suis un employe qui a un salaire de " . $this->CalculSalaire() ;
}
}
class EmployeCommission extends EmployeSalaireHoraire
{
public $commission;
public function __construct($nom, $numeroassurance, $nombreheure,$tauxhoraire, $commission)
{
parent::__construct($nom,$numeroassurance,$nombreheure,$tauxhoraire);
$this->commission = $commission;
//$this->nombreDePages = $nombreDePages;
}
public function CalculSalaire()
{
$salaire=$this->tauxhoraire*$this->nombreheure+$this->commission;
return $salaire;
}
function affiche(){
return "Je suis un employe qui a salaire de " . $this->CalculSalaire() ;
}
}
class EmployeSuperviseur extends EmployeSalaireHoraire
{
public $salaireAnnuelle;
public function __construct($nom,$numeroassurance,$salaireAnnuelle)
{
parent::__construct($nom,$numeroassurance);
$this->salaireAnnuelle=$salaireAnnuelle;
}
}
class Paie
{
private $tabPaie = array();
public function ajoutePaie(Employe $employe)
{
$this->tabPaie[] = $employe;
}
public function affiche()
{
echo "<ul>";
foreach($this->tabPaie as $employe)
{
echo "<h2>"."<li> Nom de l'employe: "."</h2>" . $employe->nom . "</li>";
echo "<h2>"."<li>Numero d'assurance social: " ."</h2>". $employe->numeroassurance . "</li>";
echo "<h2>"."<li>Nombre d'heures travailles: " ."</h2>". $employe->nombreheure . "</li>";
echo "<h2>"."<li>Taux horaire: " ."</h2>". $employe->tauxhoraire . "</li>";
echo "<h2>"."<li>Salaire: " ."</h2>". $employe->CalculSalaire() . "</li>";
}
echo "</ul>";
}
}
$telephoniste = new EmployeSalaireHoraire("mona lisa", 265369874, 25, 15);
$vendeur = new EmployeCommission("jean claude bernard", 256369987, 35, 19, 100);
$superviseur =new EmployeSuperviseur("michel drolet",296333152,60000);
$InfosEmploye = new Paie();
$InfosEmploye->ajoutePaie($telephoniste);
$InfosEmploye->ajoutePaie($vendeur);
$InfosEmploye->ajoutePaie($superviseur);
$InfosEmploye->affiche();
//echo "salaire : " . $telephoniste->CalculSalaire() . "<br/>";
//echo "salaire : " . $vendeur->CalculSalaire() . "<br/>"; |
Partager