Sie sind auf Seite 1von 24

langage CSharp 1ER Année TSDI Formateur

CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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 :

1
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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

2
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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 :

3
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

 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;
}

}
}

4
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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;

5
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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
{

6
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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 :

7
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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();

8
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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;

9
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

}
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
{

10
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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

11
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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; }
}

12
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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;

13
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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);
}

14
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

}
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;

15
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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();

16
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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)
{

17
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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());

18
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

//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++)

19
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

{
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 :

20
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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 principale

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");

21
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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(); }

}
}

22
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

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++)

23
langage CSharp 1ER Année TSDI Formateur
CFMOTI@ ème
Gestion de personne à 2 SEMISTRE
l’aide d’une collection
Rachid Dehbi
2009/2010

{
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");}
}
}
}

24

Das könnte Ihnen auch gefallen