Pour exam

Solution:

public class Club
{
 public List lstS=new List ();
public Club() { }
public int NombreMembre { get { return lstS.Count; } }
public int IndiceDe(Stagiaire membre)
{
int pos=-1;
for (int i = 0; i < lstS.Count; i++)
 {
if (membre.Nom == lstS[i].Nom)
{
return i;
}
}
 return pos;
}
public bool Ajouter(Stagiaire membre)
{
for (int i=0;i<lstS.Count;i++)
{
 if (IndiceDe(membre) ==-1)
{
 lstS.Add(membre);
 return true;
} }
return false;
 }
public void Supprimer(string numérolnscription)
{ for (int i = 0; i < lstS.Count; i++)
{
 if (lstS[i].Numero== numérolnscription)
{ lstS.RemoveAt(i); }
else { throw new Exception("le numero introvable "); } } }
BinaryFormatter bf = new BinaryFormatter();
public void Enregistrer() {
 StreamWriter sw = new StreamWriter("D:/testTDi/Club de lecture.bin");
bf.Serialize(sw.BaseStream, lstS);
sw.Close(); }
public void Charger()
{
if (File.Exists("D:/testTDi/Club de lecture.bin") == false)
{ throw new Exception("Attention Fichier introvable !!"); }
 else { StreamReader sr = new StreamReader("D:/testTDi/Club de lecture.bin");
lstS = bf.Deserialize(sr.BaseStream) as List ;
sr.Close();
} }
public override string ToString()
{
string str="Club de lecture :\n-Membre("+NombreMembre+"):";
for (int i=0;i<lstS.Count;i++)
{ str += "\t" + lstS[i]; }
return str; } }
[Serializable]
public class Stagiaire
 {
private string nom;
public string Nom { get { return nom; } set { nom = value; } }
private string numero;
public string Numero { get { return numero; }
set { if (value.Length<12) { throw new Exception("Attention le numero doit etre<12"); }
numero = value; } }
 public Stagiaire() { }
public Stagiaire(string nu, string no)
{ Nom = no; Numero = nu; }
public bool Equals(Stagiaire s,Stagiaire s1) {
 bool res=false;
 if(s.numero==s1.numero)
{ res = true; }
return res; }
public override string ToString()
{
return "Stagiaire" + Numero.ToString() + ":" + Nom;
}
 }
public partial class Form1 : Form
{
 Club c = new Club();
public Form1()
{
 InitializeComponent();

}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{ try
{
dataGridViewMem.DataSource = null;
dataGridViewMem.DataSource = c.lstS;
 }
catch (Exception ex)
{ MessageBox.Show(ex.Message); } }
DataTable d = new DataTable();
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("Demarage de l'application ", "Demarer", MessageBoxButtons.OK);
 dataGridViewMem.DataSource = null;
 d.Columns.Add("Numero Inscription ", typeof(string));
d.Columns.Add("Nom Complet ", typeof(string));
dataGridViewMem.DataSource = d; c.Ajouter(new Stagiaire("1996 11 05 0035", "Hassan SOUFIANI"));
c.Ajouter(new Stagiaire("1995 09 15 0002", "imane BARKAOUI"));
 c.Ajouter(new Stagiaire("1996 01 05 0112", "aissam EL KHIATI"));
 c.Ajouter(new Stagiaire("1998 02 13 0190", "Badr MOUBTASSIM"));
c.Enregistrer();
foreach(Stagiaire s in c.lstS)
{ d.Rows.Add(s.Numero, s.Nom); } }
 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
 DialogResult d = MessageBox.Show("Close ther Form ?", "Close", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
 if (d==DialogResult.Cancel)
{ e.Cancel = true; } }
 private void buttonFermer_Click(object sender, EventArgs e)
{ Application.Exit(); }
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{ MessageBox.Show("L'application fermer", "Fermer", MessageBoxButtons.OK); } }