Vous êtes sur la page 1sur 4

21/10/2023

TD collections et orienté objet

Exercice 1 :
Ecrire un programme C# qui permet de lire des
étudiants (nom, moyenne), de rechercher un
étudiant et d’afficher sa moyenne. Pour ce faire:
Créez une classe Etudiant {Nom, Moyenne}
Saisir la liste d’étudiants (nombre compris entre 0 et
20 à saisir par l’utilisateur ),
Saisir l’étudiant à rechercher
Et Afficher sa moyenne.

1
21/10/2023

Une meilleure solution est


d’utiliser les méthodes
proposées par les collections :
Find, FindIndex, …

Exercice 2
Reprendre l ’exercice 1 :
- Rajouter le prénom,
- Remplacer la moyenne par une liste de Notes,
- Remplacer les variables membres par des
propriétés,
- Rajouter un constructeur permettant d’initialiser
le nom et prénom, et de créer la liste de notes.
public class Etudiant
{
public string Nom { get; set; }
public string Prenom { get; set; }
public List<float> Notes { get; set; }
public Etudiant(string nom, string prenom)
{Nom = nom;
Prenom = prenom;
Notes = new List<float>();}
}

2
21/10/2023

static void Main(string[] args)


{
int taille;
List<Etudiant> Etudiants = new List<Etudiant>();
do
{ Console.WriteLine("Saisir le nombre d'étudiants");
taille = int.Parse(Console.ReadLine());
} while (taille <= 0 || taille > 20);

for (int i = 0; i < taille; i++)


{
Console.WriteLine($"Saisir le nom de l'étudiant {i}");
string nom = Console.ReadLine();
Console.WriteLine($"Saisir le prenom de l'étudiant {i}");
string prenom = Console.ReadLine();
Etudiant E = new Etudiant(nom, prenom);
for (int j = 0; j < 3; j++) //hypothèse 3 notes
{
Console.WriteLine($"Saisir la note {j} :");
E.Notes.Add(float.Parse(Console.ReadLine()));
}
Etudiants.Add(E);
}

Console.WriteLine("Saisir le nom de l'étudiant à rechercher :");


string nom_recherché = Console.ReadLine();

Etudiant e = Etudiants.Find(elt => elt.Nom == nom_recherché);


if (e != null)
{ Console.WriteLine(e.Notes.Average()); }
else
{ Console.WriteLine("N'existe pas");}

//ou bien
int indice = Etudiants.FindIndex(elt => elt.Nom == nom_recherché);
if (indice == -1)
{ Console.WriteLine("n'existe pas "); }
else
{ Console.WriteLine(Etudiants[indice].Notes.Average());}

Console.ReadKey();

3
21/10/2023

public class Etudiant


{
public string Nom { get; set; }
public string Prenom { get; set; }
public List<float> Notes { get; set; }
Exercice 3 public Etudiant(string nom, string prenom)
{Nom = nom;
Prenom = prenom;
Reprendre Notes = new List<float>();}
l’exercice 2 : }

- Ajouter le champ Adresse à la classe étudiant


- Ajouter une méthode qui permet de donner la
mention : Refusé, Passable, Assez bien, Bien, très
bien.
- Dans la fonction Main :
- Assurez vous que le nom soit unique
- Afficher tous les étudiants ayant une mention Bien et
habitant à la ville de Tunis.

Exercice 4
Reprendre la classe Etudiant :
- Créer la classe EtudiantLocal qui hérite de la classe
Etudiant et qui rajoute la propriété CIN.
- Créer la classe EtudiantEtranger qui hérite de la classe
Etudiant et qui rajoute les propriétés Nationalité et
numPasseport.
- Redéfinir la méthode ToString() dans chacune des
classes pour qu’elle affiche:
- Etudiant : nom, prenom, adresse
- EtudiantLocal : CIN, nom, prenom, adresse
- EtudiantEtranger : NumPasseport, nom, prenom, adresse,
Nationalité.
- Dans la fonction Main :Créer une liste de 5 étudiants : 3
locaux et 2 étrangers et utiliser la métode ToString pour
afficher leurs données.
8

Vous aimerez peut-être aussi