Exercices corrigés C# – Programmation Orientée Objet | Partie 2
Avec des exercices corrigés en C#, vous pratiquerez divers concepts du langage C#. Vous commencerez par des exercices C#de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Exercice 1:
Écrivez un programme C# pour créer une classe appelée « FeuDeCirculation » avec des attributs pour la couleur et la durée, et des méthodes pour changer la couleur et vérifier si le feu est rouge ou vert.
Diagrame de classe:

// Importer les bibliothèques nécessaires pour les collections using System; // Définir la classe FeuDeCirculation class FeuDeCirculation { // Déclarer une variable privée pour stocker la couleur du feu de // circulation private string couleur; // Déclarer une variable privée pour stocker la durée du feu en // secondes private int duree; // Constructeur pour la classe FeuDeCirculation public FeuDeCirculation(string couleur, int duree) { // Initialiser la couleur du feu de circulation this.couleur = couleur; // Initialiser la durée du feu de circulation this.duree = duree; } // Méthode pour changer la couleur du feu de circulation public void ChangerCouleur(string nouvelleCouleur) { // Mettre à jour la variable couleur avec la nouvelle couleur couleur = nouvelleCouleur; } // Méthode pour vérifier si le feu est rouge public bool EstRouge() { // Retourne true si la couleur est rouge, sinon retourne // false return couleur == "Rouge"; } // Méthode pour vérifier si le feu est vert public bool EstVert() { // Retourne true si la couleur est verte, sinon retourne // false return couleur == "Vert"; } // Méthode pour obtenir la durée du feu de circulation public int GetDuree() { // Renvoyer la valeur de la durée return duree; } // Méthode pour définir la durée du feu de circulation public void SetDuree(int duree) { // Mettre à jour la variable durée avec la nouvelle valeur this.duree = duree; } } // Définir la classe Main class MainClass { // Définir la méthode Main qui est le point d'entrée du programme static void Main(string[] args) { // Créer un nouvel objet FeuDeCirculation avec une couleur // initiale 'Rouge' et une durée de 30 secondes FeuDeCirculation fc = new FeuDeCirculation("Rouge", 30); // Afficher si le feu est rouge Console.WriteLine("Le feu est rouge: " + fc.EstRouge()); // Afficher si le feu est vert Console.WriteLine("Le feu est vert: " + fc.EstVert()); // Changer la couleur du feu de circulation en 'Vert' fc.ChangerCouleur("Vert"); // Afficher si le feu de circulation est maintenant vert Console.WriteLine("Le feu de circulation est maintenant vert: " + fc.EstVert()); // Afficher la durée du feu de circulation Console.WriteLine("La durée du feu est: " + fc.GetDuree()); // Définir une nouvelle durée pour le feu de circulation à 15 // secondes fc.SetDuree(15); // Afficher la durée actualisée du feu de circulation Console.WriteLine("La durée du feu est maintenant: " + fc.GetDuree()); } }
Sortie:
Le feu est rouge: true Le feu est vert: false Le feu de circulation est maintenant vert: true La durée du feu est: 30 La durée du feu est maintenant: 15
Exercice 2:
Écrire un programme C# pour créer une classe appelée « Employee » avec un nom, un salaire, une date d’embauche et une méthode pour calculer les années de service.
Diagrame de classe:

// Importer les classes nécessaires du package System using System; using System.Globalization; // Définir la classe Employee class Employee { // Déclarer une variable privée pour stocker le nom de l'employé private string nom; // Déclarer une variable privée pour stocker le salaire de // l'employé private double salaire; // Déclarer une variable privée pour stocker la date d'embauche // de l'employé private DateTime datEmbauche; // Constructeur pour la classe Employee public Employee(string nom, double salaire, DateTime datEmbauche) { // Initialiser le nom de l'employé this.nom = nom; // Initialiser le salaire de l'employé this.salaire = salaire; // Initialiser la date d'embauche de l'employé this.datEmbauche = datEmbauche; } // Méthode pour récupérer le nom de l'employé public string GetNom() { // Renvoyer le nom de l'employé return nom; } // Méthode pour définir le nom de l'employé public void SetNom(string nom) { // Mettre à jour la variable nom avec la nouvelle // valeur this.nom = nom; } // Méthode pour récupérer le salaire de l'employé public double GetSalaire() { // Renvoyer le salaire de l'employé return salaire; } // Méthode pour définir le salaire de l'employé public void SetSalaire(double salaire) { // Mettre à jour la variable salaire avec la nouvelle valeur this.salaire = salaire; } // Méthode pour récupérer la date d'embauche de l'employé public DateTime GetDatEmbauche() { // Renvoyer la date d'embauche de l'employé return datEmbauche; } // Méthode pour définir la date d'embauche de l'employé public void SetDatEmbauche(DateTime datEmbauche) { // Mettre à jour la variable datEmbauche avec la nouvelle valeur this.datEmbauche = datEmbauche; } // Méthode de calcul des années de service de l'employé public int CalculerAnneeService() { // Calculer la période entre la date d'embauche et la date // actuelle et renvoyer le nombre d'années return DateTime.Now.Year - datEmbauche.Year; } // Méthode pour afficher les détails de l'employé public void AfficherEmployee() { // Afficher le nom de l'employé Console.WriteLine("\nNom: " + nom); // Afficher le salaire de l'employé Console.WriteLine("Salaire: " + salaire); // Afficher la date d'embauche de l'employé Console.WriteLine("Date d'embauche: " + datEmbauche.ToString("yyyy-MM-dd")); } } // Définir la classe Main class MainClass { // Définir la méthode Main qui est le point d'entrée du programme static void Main(string[] args) { // Créer un nouvel objet Employee nommé emp1 Employee emp1 = new Employee("Alex Babtise", 80000, DateTime.ParseExact("2024-05-01", "yyyy-MM-dd", CultureInfo.InvariantCulture)); // Créer un nouvel objet Employee nommé emp2 Employee emp2 = new Employee("Bob Kimo", 40000, DateTime.ParseExact("2022-03-01", "yyyy-MM-dd", CultureInfo.InvariantCulture)); // Afficher les détails de l'employé 1 emp1.AfficherEmployee(); // Afficher les années de service de l'employé 1 Console.WriteLine("Années de service: " + emp1.CalculerAnneeService()); // Afficher les détails de l'employé 2 emp2.AfficherEmployee(); // Afficher les années de service de l'employé 2 Console.WriteLine("Années de service: " + emp2.CalculerAnneeService()); } }
Sortie:
Nom: Alex Babtise Salaire: 80000.0 Date d'embauche: 2024-05-01 Années de service: 0 Nom: Bob Kimo Salaire: 40000.0 Date d'embauche: 2022-03-01 Années de service: 2
Exercice 3:
Écrire un programme C# pour créer une classe appelée « Etudiant » avec un nom, une note et des cours, ainsi que des méthodes pour ajouter et supprimer des cours.
Diagrame de classe:

// Importer les classes nécessaires using System; using System.Collections.Generic; // Définir la classe Etudiant class Etudiant { // Déclarer une variable privée pour stocker le nom de l'étudiant private string nom; // Déclarer une variable privée pour stocker note de l'étudiant private int note; // Déclarer une liste privée pour stocker les cours de l'étudiant private List<string> cours; // Constructeur pour la classe Etudiant public Etudiant(string nom, int note) { // Initialiser le nom de l'étudiant this.nom = nom; // Initialiser la note de l'étudiant this.note = note; // Initialiser la liste de cours this.cours = new List<string>(); } // Méthode pour récupérer le nom de l'étudiant public string GetNom() { // Retourner le nom de l'étudiant return nom; } // Méthode pour récupérer la note de l'étudiant public int GetNote() { // Retourner la note de l'étudiant return note; } // Méthode pour récupérer la liste de cours de l'étudiant public List<string> GetCours() { // Retourner la liste de cours return cours; } // Méthode pour ajouter un cours à la liste des cours de // l'étudiant public void AjouterCours(string c) { // Ajouter le cours donné à la liste des cours cours.Add(c); } // Méthode pour supprimer un cours de la liste des cours de // l'étudiant public void SupprimerCours(string c) { // Supprimer le cours donné de la liste des cours cours.Remove(c); } // Méthode pour afficher les détails de l'étudiant public void AfficherEtudiant() { // Afficher le nom de l'étudiant Console.WriteLine("Nom: " + nom); // Afficher la note de l'étudiant Console.WriteLine("Note: " + note); } } // Définir la classe Main class MainClass { // Définir la méthode Main qui est le point d'entrée du programme static void Main(string[] args) { // Créer un nouvel objet Etudiant nommé e1 Etudiant e1 = new Etudiant("Alex Babtise", 18); // Créer un nouvel objet Etudiant nommé e2 Etudiant e2 = new Etudiant("Bob Kimo", 16); // Afficher un en-tête pour les détails de l'étudiant Console.WriteLine("Détails de l'étudiant:"); // Afficher les données de l'étudiant 1 e1.AfficherEtudiant(); // Afficher les données de l'étudiant 2 e2.AfficherEtudiant(); // Afficher un message indiquant que des cours sont ajoutés // pour l'étudiant 1 Console.WriteLine("Ajouter des cours pour " + e1.GetNom()); e1.AjouterCours("Mathématiques"); e1.AjouterCours("Biologie"); e1.AjouterCours("Histoire"); // Afficher le nom de e1 et sa liste de cours Console.WriteLine("Les cours de " + e1.GetNom() + " : " + string.Join(", ", e1.GetCours())); // Afficher un message indiquant que des cours sont ajoutés // pour l'étudiant 2 Console.WriteLine("\nAjouter des cours pour " + e2.GetNom()); e2.AjouterCours("Anglais"); e2.AjouterCours("Géologie"); e2.AjouterCours("Physique"); // Afficher le nom de e2 et sa liste de cours Console.WriteLine("Les cours de " + e2.GetNom() + " : " + string.Join(", ", e2.GetCours())); // Afficher un message indiquant que le cours 'Biologie' est // supprimé pour e1 Console.WriteLine("\nSuppression du cours 'Biologie' pour " + e1.GetNom()); // Supprimer le cours 'Biologie' des cours de e1 e1.SupprimerCours("Biologie"); // Afficher le nom de e1 et sa liste de cours mise à jour Console.WriteLine("Les cours de " + e1.GetNom() + " : " + string.Join(", ", e1.GetCours())); } }
Sortie:
Détails de l'étudiant: Nom: Alex Babtise Note: 18 Nom: Bob Kimo Note: 16 Ajouter des cours pour Alex Babtise Les cours de Alex Babtise : [Mathématiques, Biologie, Histoire] Ajouter des cours pour Bob Kimo Les cours de Bob Kimo : [Anglais, Géologie, Physique] Suppression du cours 'Biologie' pour Alex Babtise Les cours de Alex Babtise : [Mathématiques, Histoire]
Exercice 4:
Écrire un programme C# pour créer une classe appelée « Bibliotheque » avec une collection de livres et des méthodes pour ajouter et supprimer des livres.
Diagrame de classe:

// Importer les classes nécessaires using System; using System.Collections.Generic; // Définir la classe Livre class Livre { // Attribut privé pour stocker le titre du livre private string titre; // Attribut privé pour stocker l'auteur du livre private string auteur; // Constructeur pour initialiser les champs titre et auteur public Livre(string titre, string auteur) { // Attribuer le paramètre titre au champ titre this.titre = titre; // Attribuer le paramètre auteur au champ auteur this.auteur = auteur; } // Méthode pour récupérer le titre public string GetTitre() { // Retourner la valeur du champ titre return titre; } // Méthode Setter pour le titre public void SetTitre(string titre) { // Attribuer le paramètre titre au champ titre this.titre = titre; } // Méthode pour récupérer l'auteur public string GetAuteur() { // Retourner la valeur du champ auteur return auteur; } // Méthode Setter pour l'auteur public void SetAuteur(string auteur) { // Attribuer le paramètre auteur au champ auteur this.auteur = auteur; } } // Définir la classe Bibliotheque class Bibliotheque { // Attribut privé pour stocker une liste d'objets Livre private List<Livre> livres; // Constructeur pour initialiser la variable livres public Bibliotheque() { // Créer une nouvelle liste pour contenir les objets Livre livres = new List<Livre>(); } // Méthode pour ajouter un livre à la liste des livres public void AddLivre(Livre livre) { // Ajouter le livre spécifié à la liste des livres livres.Add(livre); } // Méthode pour supprimer un livre de la liste des livres public void RemoveLivre(Livre livre) { // Supprimer le livre spécifié de la liste des livres livres.Remove(livre); } // Méthode pour récupérer la liste des livres public List<Livre> GetLivres() { // Retourner la liste des livres return livres; } } // Définir la classe Main class MainClass { // Définir la méthode Main qui est le point d'entrée du programme static void Main(string[] args) { // Créer une nouvelle instance de la classe Bibliotheque Bibliotheque biblio = new Bibliotheque(); // Créer de nouveaux objets Livre avec le titre et l'auteur Livre livre1 = new Livre("Les Misérables", "Victor Hugo"); Livre livre2 = new Livre("Nana", "Émile Zola"); Livre livre3 = new Livre("Les Fleurs du mal", "Baudelaire"); Livre livre4 = new Livre("Le Cid", "Corneille"); // Ajouter les livres à la biblio biblio.AddLivre(livre1); biblio.AddLivre(livre2); biblio.AddLivre(livre3); biblio.AddLivre(livre4); Console.WriteLine("Livres dans la bibliothéque:"); // Parcourir la liste des livres de la biblio foreach (Livre livre in biblio.GetLivres()) { // Afficher le titre et l'auteur de chaque livre Console.WriteLine(livre.GetTitre() + " par " + livre.GetAuteur()); } // Supprimer un livre de la biblio biblio.RemoveLivre(livre2); Console.WriteLine("\nLivres dans la bibliothéque après suppression de " + livre2.GetTitre() + ":"); // Parcourir la liste mise à jour des livres dans la biblio foreach (Livre livre in biblio.GetLivres()) { // Afficher le titre et l'auteur de chaque livre Console.WriteLine(livre.GetTitre() + " par " + livre.GetAuteur()); } } }
Sortie:
Livres dans la bibliothéque: Les Misérables par Victor Hugo Nana par Émile Zola Les fleurs du mal par Baudelaire Le Cid par Corneille Livres dans la biblio après suppression Nana: Les Misérables par Victor Hugo Les fleurs du mal par Baudelaire Le Cid par Corneille
Exercice 5:
Écrire un programme C# pour créer une classe appelée « Avion » avec un numéro de vol, une destination et des attributs d’heure de départ, ainsi que des méthodes pour vérifier l’état et le retard du vol.
Diagrame de classe:

// Importer les classes nécessaires using System; // Définir la classe Avion class Avion { // Attribut privé pour stocker le numéro de vol private string numVol; // Attribut privé pour stocker la destination private string destination; // Attribut privé pour stocker l'heure de départ prévue private DateTime heureDepart; // Attribut privé pour stocker le temps de retard en minutes private int tempsRetard; // Constructeur pour initialiser le numéro de vol, la destination // et l'heure de départ prévue public Avion(string numVol, string destination, DateTime heureDepart) { // Attribuer le paramètre numVol au champ numVol this.numVol = numVol; // Attribuer le paramètre destination au champ destination this.destination = destination; // Attribuer le paramètre heureDepart au champ heureDepart this.heureDepart = heureDepart; // Initialiser le temps de retard à 0 this.tempsRetard = 0; } // Méthode pour obtenir le numéro de vol public string GetNumVol() { return numVol; } // Méthode pour définir le numéro de vol public void SetNumVol(string numVol) { this.numVol = numVol; } // Méthode pour obtenir la destination public string GetDestination() { return destination; } // Méthode pour définir la destination public void SetDestination(string destination) { this.destination = destination; } // Méthode pour obtenir l'heure de départ public DateTime GetHeureDepart() { return heureDepart; } // Méthode pour définir l'heure de départ public void SetHeureDepart(DateTime heureDepart) { this.heureDepart = heureDepart; } // Méthode pour obtenir le temps de retard public int GetTempsRetard() { return tempsRetard; } // Méthode pour fixer un délai et mettre à jour l'heure de départ // prévue public void Retarder(int minutes) { this.tempsRetard = minutes; this.heureDepart = this.heureDepart.AddMinutes(minutes); } // Méthode pour vérifier le statut du vol public void CheckStatutVol() { if (tempsRetard == 0) { Console.WriteLine("Le vol " + numVol + " est à l'heure."); } else { Console.WriteLine("Le vol " + numVol + " est retardé de " + tempsRetard + " minutes."); } } } // Définir la classe Main class MainClass { // Définir la méthode Main qui est le point d'entrée du programme static void Main(string[] args) { // Créer de nouveaux objets Avion Avion a1 = new Avion("ABC123", "Paris", new DateTime(2024, 10, 4, 11, 30, 0)); Avion a2 = new Avion("POM569", "CasaBlanca", new DateTime(2024, 10, 4, 15, 0, 0)); Avion a3 = new Avion("UYT852", "Bruxelles", new DateTime(2024, 10, 4, 12, 0, 0)); // Afficher le statut initial du vol Console.WriteLine("Statut du vol:"); a1.CheckStatutVol(); a2.CheckStatutVol(); a3.CheckStatutVol(); // Retarder les vols a1.Retarder(30); a2.Retarder(90); // Afficher l'état actuel du vol après les retards Console.WriteLine("\nStatut actuel du vol:"); a1.CheckStatutVol(); a2.CheckStatutVol(); a3.CheckStatutVol(); } }
Sortie:
Statut du vol: Le vol ABC123 est à l'heure. Le vol POM569 est à l'heure. Le vol UYT852 est à l'heure. Statut actuel du vol: Le vol ABC123 est retardé de 30 minutes. Le vol POM569 est retardé de 90 minutes. Le vol UYT852 est à l'heure.
Éditeur de code C#: Testez votre code en ligne!
Exercices corrigés C# – Programmation Orientée Objet | Partie 2
Exercices corrigés C# – Programmation Orientée Objet | Partie 3
Exercices corrigés C# – Programmation Orientée Objet | Partie 4
Exercices corrigés C# – Programmation Orientée Objet | Partie 5
Exercices corrigés C# – Programmation Orientée Objet | Partie 6

- Exercice C# Corrigé – Partie 1
- Exercice C# Corrigé – Partie 2
- Exercices corrigés C# – Programmation Orientée Objet | Partie 1
- Exercices corrigés C# – Programmation Orientée Objet | Partie 2
- Exercices corrigés C# – Programmation Orientée Objet | Partie 3
- Exercices corrigés C# – Programmation Orientée Objet | Partie 4
- Exercices corrigés C# – Programmation Orientée Objet | Partie 5
- Exercices corrigés C# – Programmation Orientée Objet | Partie 6
- Exercice C# Corrigé – POO