atelier gestion personnel
TRANSCRIPT
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 :
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
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 :
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; } } }
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;
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 {
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 :
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();
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;
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 {
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
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 ; } }
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;
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); }
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;
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();
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) {
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());
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++)
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 :
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" );
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(); } } }
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++)
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" );} } } }