24 Jan2016
Hiérarchie Personne / Utilisateur
Objectif :
- Implémentation correcte de l’évolution des objets dans le temps (héritage).
Travail à faire :
Le directeur des systèmes d’information de la société TOUBKAL-IT souhaite développer un module pour la gestion des utilisateurs de son service informatique, pour cela il vous a fait appel pour réaliser cette tâche.
Le diagramme de classe a été établi par un analyste afin de mettre en place une base de données sous ORACLE ou MySQL :
- Développer les classes ci-dessus en JAVA dans un package de votre choix.
NB : l’identifiant est auto incrément.
- Redéfinir la méthode calculerSalaire () et la méthode affiche() dans la classe Utilisateur.
Sachant que :
- Le manager aura une augmentation de 10% par rapport à son salaire normal,
- Le directeur général aura une augmentation de 40% par rapport à son salaire normal.
- Créer les profils :
- Chef de projet (CP),
- Manager (MN),
- Directeur de projet (DP),
- Directeur des ressources humaines (DRH),
- Directeur général (DG),
- Créer des utilisateurs avec les différents profils métiers.
- Afficher la liste des utilisateurs.
- Filtrer la liste et afficher la liste des managers.
Structure du Projet :
La Classe Personne :
package ma.projet.beans; public class Personne { protected int id; protected String nom; protected String prenom; protected String mail; protected String adresse; protected String telephone; protected double salaire; private static int comp; public Personne(String nom, String prenom, String mail, String adresse, String telephone, double salaire) { this.id = ++comp; this.nom = nom; this.prenom = prenom; this.mail = mail; this.adresse = adresse; this.telephone = telephone; this.salaire = salaire; } public double calculerSalaire() { return this.salaire; } public void affiche() { System.out.print("Je suis " + this.nom + " " + this.prenom); } }
La Classe Profil :
package ma.projet.beans; public class Profil { private int id; private String code; private String libelle; private static int comp; public Profil(String code, String libelle) { this.id = ++comp; this.code = code; this.libelle = libelle; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getLibelle() { return libelle; } public void setLibelle(String libelle) { this.libelle = libelle; } public String toString() { return this.code + " " + this.libelle; } }
La classe Utilisateur :
package ma.projet.beans; public class Utilisateur extends Personne { private String login; private String password; private String service; private Profil profil; public Utilisateur(String nom, String prenom, String mail, String adresse, String telephone, double salaire, String login, String password, String service, Profil profil) { super(nom, prenom, mail, adresse, telephone, salaire); this.login = login; this.password = password; this.service = service; this.profil = profil; } public double calculerSalaire() { if (this.profil.getLibelle().equalsIgnoreCase("manager")) return 1.1 * this.salaire; else if (this.profil.getLibelle().equalsIgnoreCase("directeur")) return 1.4 * this.salaire; return super.calculerSalaire(); } public void affiche() { super.affiche(); System.out.println(" le " + this.profil.getLibelle() + " mon salaire est : " + this.calculerSalaire()); } public Profil getProfil() { return profil; } }
La Classe de Test :
package ma.projet.test; import ma.projet.beans.Profil; import ma.projet.beans.Utilisateur; public class Test { public static void main(String[] args) { Profil profils[] = new Profil[3]; profils[0] = new Profil("MN", "Manager"); profils[1] = new Profil("DG", "Directeur"); profils[2] = new Profil("EE", "Employe"); Utilisateur users[] = new Utilisateur[3]; users[0] = new Utilisateur("Safi", "ali", "safi [AT] gmail [DOT] com", "rabat", "0643434", 10000, "login", "password", "service", profils[0]); users[1] = new Utilisateur("ALAOUI", "Said", "safi [AT] gmail [DOT] com", "rabat", "0643434", 20000, "login", "password", "service", profils[1]); users[2] = new Utilisateur("RAMI", "amal", "safi [AT] gmail [DOT] com", "rabat", "0643434", 5000, "login", "password", "service", profils[2]); System.out.println("La liste des utilisateurs : "); for (Utilisateur u : users) { u.affiche(); } System.out.println(); System.out.println("Liste des managers : "); for (Utilisateur u : users) { if (u.getProfil().getLibelle().equalsIgnoreCase("manager")) u.affiche(); } } }