atelier gestion personnel

24
langage CSharp 1 ER Année TSDI Formateur CFMOTI@ Gestion de personne à l’aide d’une collection 2 ème SEMISTRE 2009/2010 Rachid Dehbi 1 Atelier1 : l’objectif de cet atelier est la gestion de personnelle à l’aide d’une application console utilisant le langage CSharp dans l’environnement visuel studio .net. Etape 1 : Création du projet Fichier Nouveau projetchoisir type de projet (Visual C #)choisir le Modèles : (Application console) donner un nom au projet (Atelier). Etape2 : création de la classe personnelle ainsi que ces constructeurs et ses propriétés. Les attributs de la classe personnelle sont : Code : entier Nom : chaine de caractère Prénom : chaine de caractère Grade : entier Pour créer cette classe, on utilise l’assistant de création des objets en Visual studio : Une clique droite sur la racine du projet dans l’anglet explorateur des solutions en Visual studio :

Upload: jawwad0077

Post on 22-Nov-2014

249 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

1

Atelier1: l’objectif de cet atelier est la gestion de personnelle à l’aide d’une application console utilisant le langage CSharp dans l’environnement visuel studio .net. Etape 1 : Création du projet Fichier �Nouveau projet�choisir type de projet (Visual C #)�choisir le Modèles : (Application console)� donner un nom au projet (Atelier).

Etape2 : création de la classe personnelle ainsi que ces constructeurs et ses propriétés. Les attributs de la classe personnelle sont :

� Code : entier � Nom : chaine de caractère � Prénom : chaine de caractère � Grade : entier

Pour créer cette classe, on utilise l’assistant de création des objets en Visual studio : Une clique droite sur la racine du projet dans l’anglet explorateur des solutions en Visual studio :

Page 2: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

2

Ensuite une clique sur l’élément ajouter un nouvel élément et choisir comme objet une classe

Page 3: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

3

La classe suivante s’ajoute parmi les éléments du projet : using System; using System.Collections.Generic; using System.Text; namespace gestion_de_personnel { class Personnel { } }

Ensuite, on ajoute les définitions des attributs et les constructeurs à la classe Personnel :

� les attributs sont déclaré protected afin qu’on puisse y est accédé a partir des classe dérivé (classe fille, sous classe) ;

protected int code; protected string nom; protected string prenom; protected int grade;

Dans cet exemple on a ajouté 3 constructeurs :

Page 4: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

4

� Constructeur vide : public Personnel() { }

� Constructeur d’affectation : reçoit en argument 4 paramètre utilisés pour définir les

attributs d’un objet de la classe Personnel . public Personnel( int c, string n, string p, int g) { code = c; nom = n; prenom = p; grade = g; }

� Constructeur par copie :

public Personnel( Personnel p) { code = p.code; nom = p.nom; prenom = p.prenom; grade = p.grade; }

La classe Personnel devient : using System; using System.Collections.Generic; using System.Text; namespace gestion_de_personnel { class Personnel { protected int code; protected string nom; protected string prenom; protected int grade; public Personnel() { } public Personnel( int c, string n, string p, int g) { code = c; nom = n; prenom = p; grade = g; } public Personnel( Personnel p) { code = p.code; nom = p.nom; prenom = p.prenom; grade = p.grade; } } }

Page 5: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

5

Puis, on ajoute les définitions des propriétés : Il existe une autre façon (autre que l’utilisation des accesseurs) d'avoir accès aux attributs privés et protégés d'une classe, c'est de créer des propriétés. Celles-ci nous permettent de manipuler des attributs privés et protégés comme s'ils étaient publics. On va créer pour chaque attribut protégé sa propre propriété.

� Attribut code : public int Code { get { return code; } set { code = value ; } }

� Attribut nom : public string Nom { get { return nom; } set { nom = value ; } }

� Attribut prenom : public string Prenom { get { return prenom; } set { prenom = value ; } }

� Attribut grade : le grade doit appartenir à l’intervalle [16,22] public int Grade { get { return grade; } set { if ( value >= 16 || value <= 22) { grade = value; } else { throw new Exception ( "grade invalide" ); } } } using System; using System.Collections.Generic; using System.Text; namespace gestion_de_personnel { class Personnel { protected int code;

Page 6: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

6

protected string nom; protected string prenom; protected int grade; public Personnel() { } public Personnel( int c, string n, string p, int g) { code = c; nom = n; prenom = p; grade = g; } public int Code { get { return code; } set { code = value ; } } public string Nom { get { return nom; } set { nom = value ; } } public string Prenom { get { return prenom; } set { prenom = value ; } } public int Grade { get { return grade; } set { if ( value >= 16 || value <= 22) { grade = value; } else { throw new Exception ( "grade invalide" ); } } } } }

Etape3 : création d’un menu permettant de gérer la classe personnel : Pour créer le menu on ajoute dans la méthode principale main le code permettant d’afficher Le menu interactive using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace gestion_de_personnel {

Page 7: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

7

class Program { public static int choix = 0; static void Main( string [] args) { string reponse = "oui" ; do { Console .WriteLine( "*******************************" ); Console .WriteLine( "1- Ajouter une personne" ); Console .WriteLine( "2- Affiche la liste des personnes" ); Console .WriteLine( "3- Modifier une personne" ); Console .WriteLine( "4- Supprimer une personne" ); Console .WriteLine( "5- Quitter" ); Console .WriteLine( "*******************************" ); Console .WriteLine( "Saisir votre choix" ); choix = int .Parse( Console .ReadLine()); //int m=Menu(ch); switch (choix) { case 1: Console .WriteLine( Ajouter une personne" ); break ; case 2: Console .WriteLine( Affiche la liste des personnes" ); break ; case 3: Console .WriteLine( Modifier une personne" ); break ; case 4: Console .WriteLine( " Supprimer une personne" ); break ; case 5: Console .WriteLine( "fin programme" ); break ; default : Console .WriteLine(); break ; } Console .WriteLine( "Désirez-vous faire une autre opération ? oui/non" ); reponse = Console .ReadLine(); } while (reponse != "non" ); } } }

Le résultat est le suivant :

Page 8: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

8

Etape 4 : création d’une méthode pour ajouter des personnes : Pour cela on doit :

� définir un dispositif de stockage de type collection (Arraylist) : on doit déclarer une variable de type ArrayList afin de stocké les objets de la classe Personnel dans le programme principal

ArrayList t = new ArrayList (); N’oublie pas d’importer le package System.Collections à l’aide de la ligne suivante :

using System.Collections;

� une méthode qu’on va utiliser dans le menu afin de gérer les ajouts cette méthode est appelée Remplir est reçoit en paramètre la collection ArrayList.

On ajoute cette méthode dans la méthode Main du Programme principal ; cette méthode utilise une méthode publique de la classe Personnel appelée Saisie ().

public void Saisie() { Console .WriteLine( "Entrée le code" ); this .code = int .Parse( Console .ReadLine()); Console .WriteLine( "Entrée le nom" ); this .nom = Console .ReadLine(); Console .WriteLine( "Entrée le Prénom" ); this .prenom = Console .ReadLine();

Page 9: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

9

Console .WriteLine( "Entrée le grade" ); this .grade = int .Parse( Console .ReadLine());

} On ajoute la méthode saisie dans la classe Personnel qui devient

using System; using System.Collections.Generic; using System.Text; namespace gestion_de_personnel { class Personnel { protected int code; protected string nom; protected string prenom; protected int grade; public Personnel() { } public Personnel( int c, string n, string p, int g) { code = c; nom = n; prenom = p; grade = g; } public Personnel( Personnel p) { code = p.code; nom = p.nom; prenom = p.prenom; grade = p.grade; } public int Code { get { return code; } set { code = value ; } } public string Nom { get { return nom; } set { nom = value ; } } public string Prenom { get { return prenom; } set { prenom = value ; } } public int Grade { get { return grade; } set { if ( value >= 16 || value <= 22) { grade = value;

Page 10: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

10

} else { throw new Exception ( "grade invalide" ); } } } public void Saisie() { Console .WriteLine( "Entrée le code" ); this .code = int .Parse( Console .ReadLine()); Console .WriteLine( "Entrée le nom" ); this .nom = Console .ReadLine(); Console .WriteLine( "Entrée le Prénom" ); this .prenom = Console .ReadLine(); Console .WriteLine( "Entrée le grade" ); this .grade = int .Parse( Console .ReadLine()); } } }

Puis en ajoute la méthode Remplir dans le programme Principal

public static void Remplir( ArrayList p) { Console .WriteLine( "donner le nombre de personne à ajouter : " ); n = int .Parse( Console .ReadLine()); for (i = 0; i < n; i++) { Personnel s = new Personnel (); s.Saisie(); p.Add(s); }

}

On ajoute la méthode Remplir dans le Programme Principale qui devient

using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace gestion_de_personnel { class Program { public static int choix = 0; public static int i, n; static void Main( string [] args) { ArrayList t = new ArrayList (); string reponse = "oui" ; do {

Page 11: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

11

Console .WriteLine( "*******************************" ); Console .WriteLine( "1- Ajouter une personne" ); Console .WriteLine( "2- Affiche la liste des personnes" ); Console .WriteLine( "3- Modifier une personne" ); Console .WriteLine( "4- Supprimer une personne" ); Console .WriteLine( "5- Quitter" ); Console .WriteLine( "*******************************" ); Console .WriteLine( "Saisir votre choix" ); choix = int .Parse( Console .ReadLine()); //int m=Menu(ch); switch (choix) { case 1: Console .WriteLine( "Ajout d' une personne" ); Remplir(t); break ; case 2: Console .WriteLine( "Affiche la liste des personnes" ); break ; case 3: Console .WriteLine( "Modifier une personne" ); break ; case 4: Console .WriteLine( " Supprimer une personne" ); break ; case 5: Console .WriteLine( "fin programme" ); break ; } Console .WriteLine( "Désirez-vous faire une autre opération ? oui/non" ); reponse = Console .ReadLine(); } while (reponse != "non" ); } public static void Remplir( ArrayList p) { Console .WriteLine( "donner le nombre de personne à ajouter : " ); n = int .Parse( Console .ReadLine()); for (i = 0; i < n; i++) { Personnel s = new Personnel (); s.Saisie(); p.Add(s); } } } }

Etape 5 : création des méthodes d’affichage Pour cela on doit ajouter une méthode d’affichage dans la classe personnel

Page 12: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

12

public void Affiche() { Console .WriteLine( "\nLes données de la personne sont :\nle code : {0}\n" + "le nom : {1}\nle le prenom : {2}\nle grade : " + "{3}" , code, nom,prenom, grade); }

Et une méthode qui l’utilise dans le programme principale public static void AfficheListe( ArrayList p) { foreach ( Personnel s in p) { { s.Affiche(); } } } La classe Personnel devient : using System; using System.Collections.Generic; using System.Text; namespace gestion_de_personnel { class Personnel { protected int code; protected string nom; protected string prenom; protected int grade; public Personnel() { } public Personnel( int c, string n, string p, int g) { code = c; nom = n; prenom = p; grade = g; } public Personnel( Personnel p) { code = p.code; nom = p.nom; prenom = p.prenom; grade = p.grade; } public int Code { get { return code; } set { code = value ; } }

Page 13: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

13

public string Nom { get { return nom; } set { nom = value ; } } public string Prenom { get { return prenom; } set { prenom = value ; } } public int Grade { get { return grade; } set { if ( value >= 16 || value <= 22) { grade = value; } else { throw new Exception ( "grade invalide" ); } } } public void Saisie() { Console .WriteLine( "Entrée le code" ); this .code = int .Parse( Console .ReadLine()); Console .WriteLine( "Entrée le nom" ); this .nom = Console .ReadLine(); Console .WriteLine( "Entrée le Prénom" ); this .prenom = Console .ReadLine(); Console .WriteLine( "Entrée le grade" ); this .grade = int .Parse( Console .ReadLine()); } public void Affiche() { Console .WriteLine( "\nLes données de la personne sont :\nle code : {0}\n" + "le nom : {1}\nle le prenom : {2}\nle grade : " + "{3}" , code, nom,prenom, grade); } } } La classe principale devient : using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace gestion_de_personnel { class Program { public static int choix = 0; public static int i, n;

Page 14: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

14

static void Main( string [] args) { ArrayList t = new ArrayList (); string reponse = "oui" ; do { Console .WriteLine( "*******************************" ); Console .WriteLine( "1- Ajouter une personne" ); Console .WriteLine( "2- Affiche la liste des personnes" ); Console .WriteLine( "3- Modifier une personne" ); Console .WriteLine( "4- Supprimer une personne" ); Console .WriteLine( "5- Quitter" ); Console .WriteLine( "*******************************" ); Console .WriteLine( "Saisir votre choix" ); choix = int .Parse( Console .ReadLine()); //int m=Menu(ch); switch (choix) { case 1: Console .WriteLine( "Ajout d' une personne" ); Remplir(t); break ; case 2: Console .WriteLine( "Affiche la liste des personnes" ); AfficheListe(t); break ; case 3: Console .WriteLine( "Modifier une personne" ); break ; case 4: Console .WriteLine( " Supprimer une personne" ); break ; case 5: Console .WriteLine( "fin programme" ); break ; } Console .WriteLine( "Désirez-vous faire une autre opération ? oui/non" ); reponse = Console .ReadLine(); } while (reponse != "non" ); } public static void Remplir( ArrayList p) { Console .WriteLine( "donner le nombre de personne à ajouter : " ); n = int .Parse( Console .ReadLine()); for (i = 0; i < n; i++) { Personnel s = new Personnel (); s.Saisie(); p.Add(s); }

Page 15: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

15

} public static void AfficheListe( ArrayList p) { foreach ( Personnel s in p) { { s.Affiche(); } } } } }

Etape 6 : création d’une méthode de suppression des objets de la collection des personnes Pour cela on ajoute la méthode suivante dans la classe principale : public static void SupprimerListe( ArrayList p) { trouve = 0; Personnel s = new Personnel (); Console .WriteLine( "donner le nom de la personne à supprimer" ); nom = Console .ReadLine(); for (i = 0;i<p.Count;i++) { s = ( Personnel )(p[i]); if (s.Nom==nom) { trouve = 1; p.RemoveAt(i); Console .WriteLine( "suppression efféctuée avec succées" ); } } if (trouve == 0) { Console .WriteLine( "élément inéxistant" );} } Et la classe principale devient : using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace gestion_de_personnel { class Program { public static int choix = 0; public static string nom;

Page 16: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

16

public static int i, n; public static int trouve; static void Main( string [] args) { ArrayList t = new ArrayList (); string reponse = "oui" ; do { Console .WriteLine( "*******************************" ); Console .WriteLine( "1- Ajouter une personne" ); Console .WriteLine( "2- Affiche la liste des personnes" ); Console .WriteLine( "3- Modifier une personne" ); Console .WriteLine( "4- Supprimer une personne" ); Console .WriteLine( "5- Quitter" ); Console .WriteLine( "*******************************" ); Console .WriteLine( "Saisir votre choix" ); choix = int .Parse( Console .ReadLine()); //int m=Menu(ch); switch (choix) { case 1: Console .WriteLine( "Ajout d' une personne" ); Remplir(t); break ; case 2: Console .WriteLine( "Affiche la liste des personnes" ); AfficheListe(t); break ; case 3: Console .WriteLine( "Modifier une personne" ); break ; case 4: Console .WriteLine( " Supprimer une personne" ); SupprimerListe(t); break ; case 5: Console .WriteLine( "fin programme" ); break ; } Console .WriteLine( "Désirez-vous faire une autre opération ? oui/non" ); reponse = Console .ReadLine(); } while (reponse != "non" ); } public static void Remplir( ArrayList p) { Console .WriteLine( "donner le nombre de personne à ajouter : " ); n = int .Parse( Console .ReadLine()); for (i = 0; i < n; i++) { Personnel s = new Personnel (); s.Saisie();

Page 17: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

17

p.Add(s); } } public static void AfficheListe( ArrayList p) { foreach ( Personnel s in p) { { s.Affiche(); } } } public static void SupprimerListe( ArrayList p) { trouve = 0; Personnel s = new Personnel (); Console .WriteLine( "donner le nom de la personne à supprimer" ); nom = Console .ReadLine(); for (i = 0;i<p.Count;i++) { s = ( Personnel )(p[i]); if (s.Nom==nom) { trouve = 1; p.RemoveAt(i); Console .WriteLine( "suppression efféctuée avec succées" ); } } if (trouve == 0) { Console .WriteLine( "élément inéxistant" );} } } }

Etape 7 : création d’une méthode pour la modification des personnes. On doit ajouter une méthode qui va faire une recherche et modifier par la suite soit le prénom soit le grade d’une personne dont le nom est passé en paramètre lors de l’appel de la fonction de modification. public static void ModifierListe( ArrayList p) { Personnel s = new Personnel (); Console .WriteLine( "donner le nom de la personne à modifier" ); nom = Console .ReadLine(); trouve = 0; for ( int i = 0; i < p.Count; i++) { s = ( Personnel )(p[i]); if (s.Nom == nom) {

Page 18: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

18

Console .WriteLine( "que voulez vous modifier 1-Prénom 2-Grade" ); r = int .Parse( Console .ReadLine()); switch (r) { case 1: Console .WriteLine( "donner le nouveau Prénom" ); s.Prenom = Console .ReadLine(); break ; case 2: Console .WriteLine( "donner le nouveau grade" ); s.Grade = int .Parse( Console .ReadLine()); break ; p.RemoveAt(i); p.Insert(i, s); } } } } Le programme principal devient : using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace gestion_de_personnel { class Program { public static int choix = 0; public static string nom; public static int i,r, n; public static int trouve; static void Main( string [] args) { ArrayList t = new ArrayList (); string reponse = "oui" ; do { Console .WriteLine( "*******************************" ); Console .WriteLine( "1- Ajouter une personne" ); Console .WriteLine( "2- Affiche la liste des personnes" ); Console .WriteLine( "3- Modifier une personne" ); Console .WriteLine( "4- Supprimer une personne" ); Console .WriteLine( "5- Quitter" ); Console .WriteLine( "*******************************" ); Console .WriteLine( "Saisir votre choix" ); choix = int .Parse( Console .ReadLine());

Page 19: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

19

//int m=Menu(ch); switch (choix) { case 1: Console .WriteLine( "Ajout d' une personne" ); Remplir(t); break ; case 2: Console .WriteLine( "Affiche la liste des personnes" ); AfficheListe(t); break ; case 3: Console .WriteLine( "Modifier une personne" ); ModifierListe(t); break ; case 4: Console .WriteLine( " Supprimer une personne" ); SupprimerListe(t); break ; case 5: Console .WriteLine( "fin programme" ); break ; } Console .WriteLine( "Désirez-vous faire une autre opération ? oui/non" ); reponse = Console .ReadLine(); } while (reponse != "non" ); } public static void Remplir( ArrayList p) { Console .WriteLine( "donner le nombre de personne à ajouter : " ); n = int .Parse( Console .ReadLine()); for (i = 0; i < n; i++) { Personnel s = new Personnel (); s.Saisie(); p.Add(s); } } public static void AfficheListe( ArrayList p) { foreach ( Personnel s in p) { { s.Affiche(); } } } public static void ModifierListe( ArrayList p) { Personnel s = new Personnel (); Console .WriteLine( "donner le nom de la personne à modifier" ); nom = Console .ReadLine(); trouve = 0; for ( int i = 0; i < p.Count; i++)

Page 20: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

20

{ s = ( Personnel )(p[i]); if (s.Nom == nom) { Console .WriteLine( "que voulez vous modifier 1-Prénom 2-Grade" ); r = int .Parse( Console .ReadLine()); switch (r) { case 1: Console .WriteLine( "donner le nouveau Prénom" ); s.Prenom = Console .ReadLine(); break ; case 2: Console .WriteLine( "donner le nouveau grade" ); s.Grade = int .Parse( Console .ReadLine()); break ; p.RemoveAt(i); p.Insert(i, s); } } } } public static void SupprimerListe( ArrayList p) { trouve = 0; Personnel s = new Personnel (); Console .WriteLine( "donner le nom de la personne à supprimer" ); nom = Console .ReadLine(); for (i = 0;i<p.Count;i++) { s = ( Personnel )(p[i]); if (s.Nom==nom) { trouve = 1; p.RemoveAt(i); Console .WriteLine( "suppression efféctuée avec succées" ); } } if (trouve == 0) { Console .WriteLine( "élément inéxistant" );} } } }

Etape 8 : ajout d’une méthode pour trier la liste des personnes suivant le code Pour cela on ajoute la méthode suivante dans le programme principale :

Page 21: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

21

public static void TrierListe( ArrayList p) { SortedList sl = new SortedList (); foreach ( Personnel s in p) { sl.Add(s.Code, s.Nom); } Console .WriteLine(sl.Count); Personnel pers = new Personnel (); for (i = 0; i < sl.Count; i++) { Console .WriteLine( "\t{0}:\t{1}" , sl.GetKey(i), sl.GetByIndex(i)); //pers=(Personnel)sl.g; //pers.Affiche(); } } Sans oubllie de modifier le menu du programme princ ipale Et le programme principale devient : using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace gestion_de_personnel { class Program { public static int choix = 0; public static string nom; public static int i,r, n; public static int trouve; static void Main( string [] args) { ArrayList t = new ArrayList (); string reponse = "oui" ; do { Console .WriteLine( "*******************************" ); Console .WriteLine( "1- Ajouter une personne" ); Console .WriteLine( "2- Affiche la liste des personnes" ); Console .WriteLine( "3- Modifier une personne" ); Console .WriteLine( "4- Supprimer une personne" ); Console .WriteLine( "5- trier la liste des personnes par code" ); Console .WriteLine( "6- Quitter" ); Console .WriteLine( "*******************************" ); Console .WriteLine( "Saisir votre choix" );

Page 22: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

22

choix = int .Parse( Console .ReadLine()); //int m=Menu(ch); switch (choix) { case 1: Console .WriteLine( "Ajout d' une personne" ); Remplir(t); break ; case 2: Console .WriteLine( "Affiche la liste des personnes" ); AfficheListe(t); break ; case 3: Console .WriteLine( "Modifier une personne" ); ModifierListe(t); break ; case 4: Console .WriteLine( " Supprimer une personne" ); SupprimerListe(t); break ; case 5: Console .WriteLine( " Trier la liste suivant le code" ); TrierListe(t); break ; case 6: Console .WriteLine( "fin programme" ); break ; } Console .WriteLine( "Désirez-vous faire une autre opération ? oui/non" ); reponse = Console .ReadLine(); } while (reponse != "non" ); } public static void Remplir( ArrayList p) { Console .WriteLine( "donner le nombre de personne à ajouter : " ); n = int .Parse( Console .ReadLine()); for (i = 0; i < n; i++) { Personnel s = new Personnel (); s.Saisie(); p.Add(s); } } public static void AfficheListe( ArrayList p) { foreach ( Personnel s in p) { { s.Affiche(); } } }

Page 23: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

23

public static void ModifierListe( ArrayList p) { Personnel s = new Personnel (); Console .WriteLine( "donner le nom de la personne à modifier" ); nom = Console .ReadLine(); trouve = 0; for ( int i = 0; i < p.Count; i++) { s = ( Personnel )(p[i]); if (s.Nom == nom) { Console .WriteLine( "que voulez vous modifier 1-Prénom 2-Grade" ); r = int .Parse( Console .ReadLine()); switch (r) { case 1: Console .WriteLine( "donner le nouveau Prénom" ); s.Prenom = Console .ReadLine(); break ; case 2: Console .WriteLine( "donner le nouveau grade" ); s.Grade = int .Parse( Console .ReadLine()); break ; p.RemoveAt(i); p.Insert(i, s); } } } } public static void TrierListe( ArrayList p) { SortedList sl = new SortedList (); foreach ( Personnel s in p) { sl.Add(s.Code, s.Nom); } Console .WriteLine(sl.Count); Personnel pers = new Personnel (); for (i = 0; i < sl.Count; i++) { Console .WriteLine( "\t{0}:\t{1}" , sl.GetKey(i), sl.GetByIndex(i)); //pers=(Personnel)sl.g; //pers.Affiche(); } } public static void SupprimerListe( ArrayList p) { trouve = 0; Personnel s = new Personnel (); Console .WriteLine( "donner le nom de la personne à supprimer" ); nom = Console .ReadLine(); for (i = 0;i<p.Count;i++)

Page 24: Atelier Gestion Personnel

langage CSharp 1ER Année TSDI Formateur CFMOTI@

Gestion de personne à l’aide d’une collection

2ème SEMISTRE 2009/2010

Rachid Dehbi

24

{ s = ( Personnel )(p[i]); if (s.Nom==nom) { trouve = 1; p.RemoveAt(i); Console .WriteLine( "suppression efféctuée avec succées" ); } } if (trouve == 0) { Console .WriteLine( "élément inéxistant" );} } } }