Exercices corrigés C# – Programmation Orientée Objet | Partie 3

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:

Écrire un programme C# pour créer une classe appelée « Stock » avec une collection de produits et des méthodes pour ajouter et supprimer des produits, et pour vérifier si le stock est insuffisant.

Diagrame de classe:

Solution:

// Importer les classes nécessaires
using System;
using System.Collections.Generic;

// Définir la classe Produit
class Produit
{
    // Champ privé pour stocker le nom du produit
    private string nom;
    
    // Champ privé pour stocker la quantité du produit
    private int quantite;

    // Constructeur pour initialiser le nom et la quantité du produit
    public Produit(string nom, int quantite)
    {
        this.nom = nom;
        this.quantite = quantite;
    }

    // Méthode pour obtenir le nom du produit
    public string GetNom()
    {
        return nom;
    }

    // Méthode pour définir le nom du produit
    public void SetNom(string nom)
    {
        this.nom = nom;
    }

    // Méthode pour obtenir la quantité du produit
    public int GetQuantite()
    {
        return quantite;
    }

    // Méthode pour définir la quantité du produit
    public void SetQuantite(int quantite)
    {
        this.quantite = quantite;
    }
}

// Définir la classe Stock
class Stock
{
    // Champ privé pour stocker une liste d'objets Produit
    private List<Produit> produits;

    // Constructeur pour initialiser le champ produits
    public Stock()
    {
        // Initialiser la liste des produits
        produits = new List<Produit>();
    }

    // Méthode pour ajouter un produit à la liste des produits
    public void AddProduit(Produit produit)
    {
        produits.Add(produit);
    }

    // Méthode pour supprimer un produit de la liste des produits
    public void RemoveProduit(Produit produit)
    {
        produits.Remove(produit);
    }

    // Méthode pour vérifier si les produits en stock sont 
    // insuffisants
    public void CheckStock()
    {
        // Itérer dans la liste des produits
        foreach (Produit p in produits)
        {
            // Vérifier si la quantité du produit est inférieure ou 
            // égale à 100
            if (p.GetQuantite() <= 100)
            {
                // Afficher un message indiquant que le produit est 
                // en rupture de stock
                Console.WriteLine($"{p.GetNom()} est en rupture de stock. La quantité actuelle: {p.GetQuantite()}");
            }
        }
    }
}

// Définir la classe pour tester la classe Stock et Produit
class Program
{
    // 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 Stock
        Stock stock = new Stock();

        // Créer de nouveaux objets Produit avec nom et quantité
        Produit p1 = new Produit("Souris", 300);
        Produit p2 = new Produit("Clavier", 70);
        Produit p3 = new Produit("Tablette", 40);

        Console.WriteLine("Ajouter trois produits en stock:");
        stock.AddProduit(p1);
        stock.AddProduit(p2);
        stock.AddProduit(p3);

        Console.WriteLine("\nVérifier la disponibilité des stocks:");
        // Vérifier et afficher les produits dont le stock est 
        // insuffisant
        stock.CheckStock();

        Console.WriteLine("\nSupprimer la tablette du stock!");
        // Supprimer le produit Tablette du stock
        stock.RemoveProduit(p3);

        Console.WriteLine("\nVérifier à nouveau la disponibilité des stocks:");
        // Vérifier et afficher les produits dont le stock est 
        // insuffisant
        stock.CheckStock();
    }
}

Sortie:

Ajouter trois produits en stock:

Vérifier la disponibilité des stocks:
Clavier est en rupture de stock. La quantité actuelle: 70
Tablette est en rupture de stock. La quantité actuelle: 40

Supprimer la tablette du stock!

Vérifier à nouveau la disponibilité des stocks:
Clavier est en rupture de stock. La quantité actuelle: 70
 

Exercice 2:

Écrivez un programme C# pour créer une classe appelée « Ecole » avec des attributs pour les étudiants, les enseignants et les classes, et des méthodes pour ajouter et supprimer des étudiants et des enseignants, et pour créer des classes (cours).

Diagrame de classe:

Solution:

// Importer les classes nécessaires
using System;
using System.Collections.Generic;

// Définir la classe Ecole
class Ecole
{
    // Champ privé pour stocker une liste d'étudiants
    private List<Etudiant> etudiants;
    
    // Champ privé pour stocker une liste d'enseignants
    private List<Enseignant> enseignants;
    
    // Champ privé pour stocker une liste de classes
    private List<Classe> classes;

    // Constructeur pour initialiser les listes
    public Ecole()
    {
        this.etudiants = new List<Etudiant>();
        this.enseignants = new List<Enseignant>();
        this.classes = new List<Classe>();
    }

    // Méthode pour ajouter un étudiant
    public void AddEtudiant(Etudiant student)
    {
        etudiants.Add(student);
    }

    // Méthode pour supprimer un étudiant
    public void RemoveEtudiant(Etudiant student)
    {
        etudiants.Remove(student);
    }

    // Méthode pour ajouter un enseignant
    public void AddEnseignant(Enseignant teacher)
    {
        enseignants.Add(teacher);
    }

    // Méthode pour supprimer un enseignant
    public void RemoveEnseignant(Enseignant teacher)
    {
        enseignants.Remove(teacher);
    }

    // Méthode pour ajouter une classe
    public void AddClasse(Classe schoolClass)
    {
        classes.Add(schoolClass);
    }

    // Méthode pour supprimer une classe
    public void RemoveClasse(Classe schoolClass)
    {
        classes.Remove(schoolClass);
    }

    // Méthode pour récupérer la liste des étudiants
    public List<Etudiant> GetEtudiants()
    {
        return etudiants;
    }

    // Méthode pour récupérer la liste des enseignants
    public List<Enseignant> GetEnseignants()
    {
        return enseignants;
    }

    // Méthode pour récupérer la liste des classes
    public List<Classe> GetClasses()
    {
        return classes;
    }
}

// Définir la classe Etudiant
class Etudiant
{
    // Champs privés pour stocker le nom et l'âge de l'étudiant
    private string nom;
    private int age;

    // Constructeur pour initialiser les champs
    public Etudiant(string nom, int age)
    {
        this.nom = nom;
        this.age = age;
    }

    // Getter et Setter pour le nom
    public string GetNom()
    {
        return nom;
    }

    public void SetNom(string nom)
    {
        this.nom = nom;
    }

    // Getter et Setter pour l'âge
    public int GetAge()
    {
        return age;
    }

    public void SetAge(int age)
    {
        this.age = age;
    }
}

// Définir la classe Enseignant
class Enseignant
{
    // Champs privés pour stocker le nom et la matière
    private string nom;
    private string matiere;

    // Constructeur pour initialiser les champs
    public Enseignant(string nom, string matiere)
    {
        this.nom = nom;
        this.matiere = matiere;
    }

    // Getter et Setter pour le nom
    public string GetNom()
    {
        return nom;
    }

    public void SetNom(string nom)
    {
        this.nom = nom;
    }

    // Getter et Setter pour la matière
    public string GetMatiere()
    {
        return matiere;
    }

    public void SetMatiere(string matiere)
    {
        this.matiere = matiere;
    }
}

// Définir la classe Classe
class Classe
{
    // Champs privés pour stocker le nom de la classe, l'enseignant 
    // et la liste d'étudiants
    private string nomClasse;
    private Enseignant enseignant;
    private List<Etudiant> etudiants;

    // Constructeur pour initialiser les champs
    public Classe(string nomClasse, Enseignant enseignant)
    {
        this.nomClasse = nomClasse;
        this.enseignant = enseignant;
        this.etudiants = new List<Etudiant>();
    }

    // Getter et Setter pour le nom de la classe
    public string GetNomClasse()
    {
        return nomClasse;
    }

    public void SetNomClasse(string nomClasse)
    {
        this.nomClasse = nomClasse;
    }

    // Getter et Setter pour l'enseignant
    public Enseignant GetEnseignant()
    {
        return enseignant;
    }

    public void SetEnseignant(Enseignant enseignant)
    {
        this.enseignant = enseignant;
    }

    // Méthode pour récupérer la liste des étudiants
    public List<Etudiant> GetEtudiants()
    {
        return etudiants;
    }

    // Méthode pour ajouter un étudiant à la classe
    public void AddEtudiant(Etudiant e)
    {
        etudiants.Add(e);
    }

    // Méthode pour supprimer un étudiant de la classe
    public void RemoveEtudiant(Etudiant e)
    {
        etudiants.Remove(e);
    }
}

// Définir la classe Main
class Program
{
    static void Main(string[] args)
    {
        // Créer une nouvelle instance de la classe Ecole
        Ecole ecole = new Ecole();

        // Créer des objets Etudiant
        Etudiant et1 = new Etudiant("Alex Babtise", 20);
        Etudiant et2 = new Etudiant("Bob Firok", 25);
        Etudiant et3 = new Etudiant("Emily Taylor", 22);
        Etudiant et4 = new Etudiant("Ali Binani", 23);

        // Ajouter les étudiants à l'école
        ecole.AddEtudiant(et1);
        ecole.AddEtudiant(et2);
        ecole.AddEtudiant(et3);
        ecole.AddEtudiant(et4);

        // Créer des objets Enseignant
        Enseignant es1 = new Enseignant("Yohan Sinor", "Math");
        Enseignant es2 = new Enseignant("Thomas Fiza", "Anglais");
        Enseignant es3 = new Enseignant("Olivier Bibo", "Science");

        // Ajouter les enseignants à l'école
        ecole.AddEnseignant(es1);
        ecole.AddEnseignant(es2);
        ecole.AddEnseignant(es3);

        // Créer des objets Classe
        Classe classMath = new Classe("Mathematics", es1);
        classMath.AddEtudiant(et1);
        classMath.AddEtudiant(et2);
        classMath.AddEtudiant(et3);
        classMath.AddEtudiant(et4);

        Classe classAnglais = new Classe("Anglais", es2);
        classAnglais.AddEtudiant(et1);
        classAnglais.AddEtudiant(et2);
        classAnglais.AddEtudiant(et3);

        Classe classScience = new Classe("Science", es3);
        classScience.AddEtudiant(et1);
        classScience.AddEtudiant(et2);
        classScience.AddEtudiant(et3);
        classScience.AddEtudiant(et4);

        // Ajouter les classes à l'école
        ecole.AddClasse(classMath);
        ecole.AddClasse(classAnglais);
        ecole.AddClasse(classScience);

        // Afficher des informations sur l'école
        Console.WriteLine("Informations sur l'école:");
        Console.WriteLine("Nombre d'étudiants: " + ecole.GetEtudiants().Count);
        Console.WriteLine("Nombre d'enseignants: " + ecole.GetEnseignants().Count);
        Console.WriteLine("Nombre de classes: " + ecole.GetClasses().Count);
        Console.WriteLine();

        // Afficher les informations sur les cours de mathématiques
        Console.WriteLine("Informations sur les cours de mathématiques:");
        Console.WriteLine("Nom de Classe: " + classMath.GetNomClasse());
        Console.WriteLine("Enseignant: " + classMath.GetEnseignant().GetNom());
        Console.WriteLine("Nombre d'étudiants: " + classMath.GetEtudiants().Count);
        Console.WriteLine();

        // Afficher les informations sur les cours d'anglais
        Console.WriteLine("Informations sur les cours d'anglais:");
        Console.WriteLine("Nom de Classe: " + classAnglais.GetNomClasse());
        Console.WriteLine("Enseignant: " + classAnglais.GetEnseignant().GetNom());
        Console.WriteLine("Nombre d'étudiants: " + classAnglais.GetEtudiants().Count);
        Console.WriteLine();

        // Afficher les informations sur les cours de sciences
        Console.WriteLine("Informations sur les cours de sciences:");
        Console.WriteLine("Nom de Classe: " + classScience.GetNomClasse());
        Console.WriteLine("Enseignant: " + classScience.GetEnseignant().GetNom());
        Console.WriteLine("Nombre d'étudiants: " + classScience.GetEtudiants().Count);
        Console.WriteLine();

        // Supprimer un étudiant, un enseignant et une classe
        ecole.RemoveEtudiant(et1);
        ecole.RemoveEnseignant(es2);
        ecole.RemoveClasse(classMath);

        // Afficher les informations mises à jour après suppression
        Console.WriteLine("Informations sur l'école après suppression d'un élève, d'un enseignant et d'une classe:");
        Console.WriteLine("Nombre d'étudiants: " + ecole.GetEtudiants().Count);
        Console.WriteLine("Nombre d'enseignants: " + ecole.GetEnseignants().Count);
        Console.WriteLine("Nombre de classes: " + ecole.GetClasses().Count);
    }
}

Sortie:

Informations sur l'école:
Nombre d'étudiants: 4
Nombre d'enseignants: 3
Nombre de classes: 3

Informations sur les cours de mathématiques:
Nom de Class: Mathematics
Enseignant: Yohan Sinor
Nombre d'étudiants: 4

Informations sur les cours d'anglais:
Nom de Class: Anglais
Enseignant: Thomas Fiza
Nombre d'étudiants: 3

Informations sur les cours de sciences:
Nom de Class: Science
Enseignant: Olivier Bibo
Nombre d'étudiants: 4

Informations sur l'école après suppression d'un élève, d'un enseignant et d'une classe:
Nombre d'étudiants: 3
Nombre d'enseignants: 2
Nombre de classes: 2
 

Exercice 3:

Écrire un programme C# pour créer une classe appelée « BiblioMusicale » avec une collection de chansons et des méthodes pour ajouter et supprimer des chansons, et pour jouer une chanson au hasard.

Diagrame de classe:

Solution:

// Importer les bibliothèques nécessaires
using System;
using System.Collections.Generic;

// Définir la classe BiblioMusicale
class BiblioMusicale
{
    // Champ privé pour stocker une liste de chansons
    private List<Chanson> chansons;

    // Constructeur pour initialiser la liste des chansons
    public BiblioMusicale()
    {
        // Créer une nouvelle liste pour stocker les objets Chanson
        chansons = new List<Chanson>();
    }

    // Méthode pour ajouter une chanson à la bibliothèque
    public void AddChanson(Chanson song)
    {
        // Ajouter la chanson fournie à la liste des chansons
        chansons.Add(song);
    }

    // Méthode pour supprimer une chanson de la bibliothèque
    public void RemoveChanson(Chanson song)
    {
        // Supprimer la chanson fournie de la liste des chansons
        chansons.Remove(song);
    }

    // Méthode pour obtenir la liste de toutes les chansons de la 
    // bibliothèque
    public List<Chanson> GetChansons()
    {
        // Retourner la liste des chansons
        return chansons;
    }

    // Méthode pour lire une chanson aléatoire de la bibliothèque
    public void LireChansonAleatoire()
    {
        // Récupérer le nombre de chansons dans la bibliothèque
        int size = chansons.Count;

        // Vérifier si la bibliothèque est vide
        if (size == 0)
        {
            // Afficher un message s'il n'y a pas de chansons à lire
            Console.WriteLine("Il n'y a pas de chansons à lire.");
            return; // Quitter la méthode
        }

        // Créer un nouvel objet Random pour générer un nombre 
        // aléatoire
        Random rand = new Random();

        // Générer un index aléatoire dans l'intervalle de la liste 
        // des chansons
        int index = rand.Next(size);

        // Afficher le titre et l'artiste de la chanson sélectionnée 
        // de manière aléatoire
        Console.WriteLine("Lire: " + chansons[index].GetTitre() + " par " + chansons[index].GetArtist());
    }
}

// Définir la classe Chanson
class Chanson
{
    // Champs privés pour stocker le titre et l'artiste de la chanson
    private string titre;
    private string artiste;

    // Constructeur pour initialiser les champs titre et artiste
    public Chanson(string titre, string artiste)
    {
        // Définir le champ titre avec le titre fourni
        this.titre = titre;

        // Définir le champ artiste avec l'artiste fourni
        this.artiste = artiste;
    }

    // Méthode Getter pour récupérer le titre de la chanson
    public string GetTitre()
    {
        // Retourner la valeur du champ titre
        return titre;
    }

    // Méthode pour modifier le titre de la chanson
    public void SetTitre(string titre)
    {
        // Définir le champ titre avec le titre fourni
        this.titre = titre;
    }

    // Méthode Getter pour récupérer l'artiste de la chanson
    public string GetArtist()
    {
        // Retourner la valeur du champ artiste
        return artiste;
    }

    // Méthode pour modifier le nom de l'artiste de la chanson
    public void SetArtist(string artiste)
    {
        // Définir le champ artiste avec l'artiste fourni
        this.artiste = artiste;
    }
}

// Définir la classe Main
class MainClass
{
    // Définir la méthode Main qui est le point d'entrée du programme
    public static void Main(string[] args)
    {
        // Créer une nouvelle instance de la classe BiblioMusicale
        BiblioMusicale biblio = new BiblioMusicale();

        // Ajouter des chansons à la bibliothèque musicale
        biblio.AddChanson(new Chanson("Un clair de lune", "Jean Chérasse"));
        biblio.AddChanson(new Chanson("Cadet Rousselle", "André Hunebelle"));
        biblio.AddChanson(new Chanson("Help!", "Richard Lester"));
        biblio.AddChanson(new Chanson("Baisers volés", "François Truffaut"));
        biblio.AddChanson(new Chanson("Je t'aime", "Serge Gainsbourg"));
        biblio.AddChanson(new Chanson("Staying Alive", "Michel Blanc"));

        // Afficher toutes les chansons de la bibliothèque musicale
        Console.WriteLine("Toutes les chansons:");
        foreach (Chanson chanson in biblio.GetChansons())
        {
            Console.WriteLine(chanson.GetTitre() + " par " + chanson.GetArtist());
        }

        Console.WriteLine("\nLecture d'une chanson aléatoire:");

        // Lire et afficher trois fois une chanson choisie au hasard 
        // dans la bibliothèque
        biblio.LireChansonAleatoire();
        Console.WriteLine();
        biblio.LireChansonAleatoire();
        Console.WriteLine();
        biblio.LireChansonAleatoire();
    }
}

Sortie:

Toutes les chansons:
Un clair de lune par Jean Chérasse
Cadet Rousselle par André Hunebelle
Help! par Richard Lester
Baisers volés par François Truffaut
Je t'aime par Serge Gainsbourg
Staying Alive par Michel Blanc

Lecture d'une chanson aléatoire:
Lire: Help! par Richard Lester

Lire: Baisers volés par François Truffaut

Lire: Help! par Richard Lester
 

Exercice 4:

Écrivez un programme C# pour créer une classe appelée 'Forme' avec des méthodes abstraites pour calculer la surface et le périmètre, et des sous-classes pour le 'Rectangle', le 'Cercle' et le 'Triangle'.

Diagrame de classe:

Solution:

// Importer les bibliothèques nécessaires
using System;

// Définir la classe Forme comme une classe abstraite
public abstract class Forme
{
    // Méthode abstraite pour récupérer la surface de la forme
    // Cette méthode doit être implémentée par toute sous-classe de 
    // Forme
    public abstract double GetSurface();

    // Méthode abstraite permettant d'obtenir le périmètre de la 
    // forme
    // Cette méthode doit être implémentée par toute sous-classe de 
    // Forme
    public abstract double GetPerimeter();
}

// Définir la classe Rectangle, qui hérite de la classe Forme
public class Rectangle : Forme
{
    // Champs privés pour stocker la longueur et la largeur du 
    // rectangle
    private double longueur;
    private double largeur;

    // Constructeur pour initialiser la longueur et la largeur du 
    // rectangle
    public Rectangle(double longueur, double largeur)
    {
        // Définir le champ longueur à la longueur fournie
        this.longueur = longueur;

        // Définir le champ largeur à la largeur fournie
        this.largeur = largeur;
    }

    // Méthode pour calculer et renvoyer la surface du rectangle
    public override double GetSurface()
    {
        // Calculer la surface en multipliant la longueur et la 
        // largeur
        return longueur * largeur;
    }

    // Méthode pour calculer et renvoyer le périmètre du rectangle
    public override double GetPerimeter()
    {
        // Calculer le périmètre à l'aide de la formule 2 * (longueur 
        // + largeur)
        return 2 * (longueur + largeur);
    }
}

// Définir la classe Cercle, qui hérite de la classe Forme
public class Cercle : Forme
{
    // Champ privé pour stocker le rayon du cercle
    private double rayon;

    // Constructeur pour initialiser le rayon du cercle
    public Cercle(double rayon)
    {
        // Attribuer au champ rayon le rayon fourni
        this.rayon = rayon;
    }

    // Méthode pour calculer et renvoyer la surface du cercle
    public override double GetSurface()
    {
        // Calculer la surface en utilisant la formule π * rayon^2
        return Math.PI * rayon * rayon;
    }

    // Méthode de calcul du périmètre du cercle
    public override double GetPerimeter()
    {
        // Calculer le périmètre en utilisant la formule 2 * π * 
        // rayon
        return 2 * Math.PI * rayon;
    }
}

// Définir la classe Triangle, qui hérite de la classe Forme
public class Triangle : Forme
{
    // Champs privés pour stocker les côtés du triangle
    private double c1;
    private double c2;
    private double c3;

    // Constructeur pour initialiser les côtés du triangle
    public Triangle(double c1, double c2, double c3)
    {
        this.c1 = c1;
        this.c2 = c2;
        this.c3 = c3;
    }

    // Méthode pour calculer et renvoyer la surface du triangle
    public override double GetSurface()
    {
        // Calculer le semi-périmètre
        double s = (c1 + c2 + c3) / 2;

        // Calculer la surface à l'aide de la formule de Heron
        return Math.Sqrt(s * (s - c1) * (s - c2) * (s - c3));
    }

    // Méthode pour calculer et renvoyer le périmètre du triangle
    public override double GetPerimeter()
    {
        // Calculer le périmètre en additionnant les côtés
        return c1 + c2 + c3;
    }
}

// Définir la classe Main
public class MainClass
{
    // Définir la méthode Main qui est le point d'entrée du programme
    public static void Main(string[] args)
    {
        // Créer un rectangle de longueur 15 et de largeur 20
        Forme rectangle = new Rectangle(15, 20);

        // Créer un cercle de rayon 5
        Forme circle = new Cercle(5);

        // Créer un triangle dont les côtés sont 5, 7 et 9
        Forme triangle = new Triangle(5, 7, 9);

        Console.WriteLine("\nSurface et périmètre de différentes formes:");

        // Afficher les détails et calculs du rectangle
        Console.WriteLine("\nRectangle:");
        Console.WriteLine("Surface: " + rectangle.GetSurface());
        Console.WriteLine("Périmètre: " + rectangle.GetPerimeter());

        // Afficher les détails et calculs du cercle
        Console.WriteLine("\nCercle:");
        Console.WriteLine("Surface: " + circle.GetSurface());
        Console.WriteLine("Périmètre: " + circle.GetPerimeter());

        // Afficher les détails et calculs du triangle
        Console.WriteLine("\nTriangle:");
        Console.WriteLine("Surface: " + triangle.GetSurface());
        Console.WriteLine("Périmètre: " + triangle.GetPerimeter());
    }
}

Sortie:

Surface et périmètre de différentes formes:

Rectangle:
Surface: 300.0
Périmètre: 70.0

Cercle:
Surface: 78.53981633974483
Périmètre: 31.41592653589793

Triangle:
Surface: 17.41228014936585
Périmètre: 21.0
 

Exercice 5:

Écrire un programme C# pour créer une classe appelée « Film » avec des attributs pour le titre, le directeur, les acteurs et les avis, et des méthodes pour ajouter et récupérer des avis.

Diagrame de classe:

Solution:

// Importer les classes List et Array du namespace System.Collections.Generic
using System;
using System.Collections.Generic;

// Définir la classe Film
public class Film
{
    // Champs privés pour stocker le titre, le directeur, les acteurs 
    // et les avis sur le film
    private string titre;
    private string directeur;
    private List<string> acteurs;
    private List<Avis> avis;

    // Constructeur pour initialiser le titre, le directeur et les 
    // acteurs du film
    public Film(string titre, string directeur, List<string> acteurs)
    {
        this.titre = titre;
        this.directeur = directeur;
        this.acteurs = acteurs;
        this.avis = new List<Avis>();
    }

    // Méthode pour ajouter un avis sur le film
    public void AddAvis(Avis a)
    {
        // Ajouter l'avis fourni à la liste des avis
        this.avis.Add(a);
    }

    // Méthode pour récupérer la liste de toutes les avis du film
    public List<Avis> GetAvis()
    {
        // Renvoyer la liste des avis
        return this.avis;
    }

    // Méthode pour récupérer le titre du film
    public string GetTitre()
    {
        // Retourner la valeur du champ titre
        return this.titre;
    }

    // Méthode pour récupérer le directeur du film
    public string GetDirecteur()
    {
        // Retourner la valeur du champ directeur
        return this.directeur;
    }

    // Méthode pour récupérer la liste des acteurs d'un film
    public List<string> GetActeurs()
    {
        // Retourner la liste des acteurs
        return this.acteurs;
    }
}

// Définir la classe Avis
public class Avis
{
    // Champs privés pour stocker le texte de l'avis, le nom de 
    // l'avis et la note
    private string textAvis;
    private string nomAvis;
    private double note;

    // Constructeur pour initialiser le texte de l'avis, le nom de 
    // l'avis et la note
    public Avis(string textAvis, string nomAvis, double note)
    {
        this.textAvis = textAvis;
        this.nomAvis = nomAvis;
        this.note = note;
    }

    // Méthode pour récupérer le texte de l'avis
    public string GetTextAvis()
    {
        // Retourner la valeur du champ textAvis
        return textAvis;
    }

    // Méthode pour récupérer le nom de l'avis
    public string GetNomAvis()
    {
        // Retourner la valeur du champ nomAvis
        return nomAvis;
    }

    // Méthode pour récupérer la note
    public double GetNote()
    {
        // Retourner la valeur du champ note
        return note;
    }
}

// Définir la classe Main
public class MainClass
{
    // Définir la méthode Main qui est le point d'entrée du programme
    public static void Main(string[] args)
    {
        // Créer un objet film
        Film f1 = new Film("La Roue", "Jean Servais",
            new List<string> { "Pierre Pelletier", "Pierre Mondy" });

        // Créer des objets d'avis
        Avis avis1 = new Avis("Excellent film!", "Alex Babtise", 5.0);
        Avis avis2 = new Avis("Fortement recommandé!", "Jean Zino", 4.5);
        Avis avis3 = new Avis("Un film magnifique", "Bob Polib", 4.0);

        // Ajouter un avis sur f1
        f1.AddAvis(avis1);
        f1.AddAvis(avis2);
        f1.AddAvis(avis3);

        // Afficher tous les avis sur 'La Roue'
        Console.WriteLine("\nAvis pour '" + f1.GetTitre() + "':");
        foreach (Avis a in f1.GetAvis())
        {
            Console.WriteLine(a.GetTextAvis() + " par " + a.GetNomAvis() + " - " + a.GetNote());
        }
    }
}

Sortie:

Avis pour 'La Roue':
Excellent film! par Alex Babtise - 5.0
Fortement recommandé! par Jean Zino - 4.5
Un film magnifique par Bob Polib - 4.0
 

Éditeur de code C#: Testez votre code en ligne!

qcm-csharp

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *