Sie sind auf Seite 1von 6

Correction devoir 2 :

Module Programmation Oriente Objet Filire : Techniques de dveloppement Informatique Devoir 2 A rendre avant le 12/03/2012 Formateur : A BENDAOUD 1) 2) 3) 4) crire le code pour crer ces deux classes (la classe ouvrier herite de la classe personnel) Encapsuler les attributs puis ajouter les accesseurs et modifieurs Personnel Ajouter les constructeurs par dfaut et dinitialisation aux deux classes Dfinir la fonction infoPeso() qui retourne les informations d' Code Un prsonnel exemple : [Personnel : code 123 nom : Mouhammed prenom : Ali] surcharger avec polymorphisme la fonction infoPerso() dans la classe Ouvrier a fin quil puisse retourner tous les informations de louvrier sous forme [ouvrier : code 124 nom : Brahim prenom : Salem Salaire :8000 Prime :7000] Nom Prnom infoPerso()

5) pour tester on utilise la classe programme Stocker sur une liste gnrique de type Personnel trois objets Ouvrier et trois objets Personnels Donner le code qui permet dAjouter un personnel Donner le code qui permet de Supprimer un personnel Donner le code qui permet Modifier un personnel Donner le code qui permet de Rechercher un personnel selon son code Affichage des informations de tout le personnel REMARQUE : On a ajout une classe de gestion personnelle qui permet de grer une List <Personnel> Voir correction

Ouvrier Salaire Prime Infoperso()

Propos par : A BENDAOUD

Correction

CLASSE PERSONNEL

using using using using

System; System.Collections.Generic; System.Linq; System.Text;

namespace DEVOIR2 { class Personnel {//Attributs private int code; private string nom; private string prenom; //constructeurs public Personnel() { } public Personnel(int code, string n, string p) { this.code = code; this.nom = n; this.prenom = p; }

Propos par : A BENDAOUD

//accesseurs public int getCode() { return this.code; } public string getNom() { return this.nom; } public string getPrenom() { return this.prenom;} //modifieurs public void setCode(int code) { this.code = code; } public void setNom(string nom) { this.nom = nom; } public void setPrenom(string prenom) { this.prenom = prenom; } public virtual string infoperso() { return String.Format("[Personnel:code:{0} nom: {1} prenom:{2}]", this.code, this.nom, this.prenom); } } }

CLASSE OUVRIER :
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace DEVOIR2 { class Ouvrier:Personnel { //Attributs private double salaire; private double prime; //constructeurs public Ouvrier() : base() { } public Ouvrier(int code, string nom, string prenom, double salaire, double prime) : base(code, nom, prenom) { this.salaire = salaire; this.prime = prime; } //Accesseurs public double getSalaire() { return this.salaire; } public double getPrime() { return this.prime;} //modifieurs public void setSalaire(double s) { this.salaire = s; } public void setPrime(double p) { this.prime = p; } //methdes public override string infoperso() { return String.Format("[Ouvrier code: {0} nom:{1} prenom:{2} salaire:{3} prime:{3} ]", base.getCode(), base.getNom(), base.getPrenom(), this.salaire, this.prime); } } }

Propos par : A BENDAOUD

Classe Ges_Personnel :
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace DEVOIR2 { class Ges_Personnel { public List<Personnel> liste = new List<Personnel>(); public Ges_Personnel() { } public void Ajouter(Personnel p) { int code = p.getCode(); if (getPersonnel(code) == null) { liste.Add(p); } else { Console.WriteLine("Personnel existe sur la liste"); } } public Personnel getPersonnel(int code) { foreach (Personnel p in liste) { if (p.getCode() == code) { return p; } } return null; } public void supprimer(int code) { for(int i=0;i<liste.Count;i++) { if (liste[i].getCode() == code) { liste.RemoveAt(i); } } } public void getInfoPersonnel() { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("********* Informations personnel ******"); Console.ForegroundColor = ConsoleColor.Yellow; foreach (Personnel p in liste) { Console.WriteLine(p.infoperso()); } Console.ForegroundColor = ConsoleColor.White; } } }

Propos par : A BENDAOUD

POUR TESTER
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace DEVOIR2 { class Program { static void Main(string[] args) { int c; string nom, prenom; double salaire, prime; //initialisation de la liste Ges_Personnel gp = new Ges_Personnel(); gp.Ajouter(new Personnel(10, "Brahim", "Salem")); gp.Ajouter(new Personnel(11, "brahimi", "Fatima")); gp.Ajouter(new Personnel(12, "barakat", "Ali")); gp.Ajouter(new Ouvrier(13, "fakri", "Rahma",7000,4000)); gp.Ajouter(new Ouvrier(14, "mourabiti", "Ibrahim", 8000, 5000)); gp.Ajouter(new Ouvrier(15, "chakor", "maimouna", 9000, 7000)); //afficher les informations du Personnel gp.getInfoPersonnel(); //ajouter Personnel Console.WriteLine("voulez vous ajouter un personnel ou un ouvrier! P/O "); string rep=Console.ReadLine(); Console.WriteLine("donnez le code"); c = int.Parse(Console.ReadLine()); Console.WriteLine("donnez le nom"); nom= Console.ReadLine(); Console.WriteLine("donnez le prenom"); prenom = Console.ReadLine(); if (rep == "p") { gp.Ajouter(new Personnel(c, nom, prenom)); } else { Console.WriteLine("donnez le salaire"); salaire = double.Parse(Console.ReadLine()); Console.WriteLine("donnez la prime "); prime = double.Parse(Console.ReadLine()); gp.Ajouter(new Ouvrier(c, nom, prenom, salaire, prime)); } //supprimer un personnel Console.WriteLine("donner le code du Personnel supprimer"); int code;

Propos par : A BENDAOUD

code = int.Parse(Console.ReadLine()); gp.supprimer(code); gp.getInfoPersonnel(); //information d'un personnel donn Console.WriteLine("donner le code du Personnel pour afficher Informations"); int code2; code2 = int.Parse(Console.ReadLine()); Personnel p = gp.getPersonnel(code2); if (p != null) { Console.WriteLine( p.infoperso()); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("personnel inexistant"); Console.ForegroundColor = ConsoleColor.White; } Console.ReadLine(); } } }

Allez bonne courage :

Propos par : A BENDAOUD

Das könnte Ihnen auch gefallen