Jan.01
Correction Passage 2016 ISTA Houara
Examen
Fullscreen ModeCorrection
La Classe Recette
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MasterChefMaroc { class Recette { // Question 1-a private string nom; private string description; private int duree; // Question 1-b public Recette() { } public Recette(String _nom, string _description, int _duree) { this.nom = _nom; this.description = _description; this.duree = _duree; } // Question 1-c public string getNom() { return this.nom; } public string getDescription() { return this.description; } public int getDuree() { return this.duree; } // Question 1-d public override string ToString() { return "Le nom de la recette est : " + this.nom + " sa description est : "+ this.description+" et sa durée de préparation est : "+this.duree+" min"; } } }
La Classe listeRecette
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MasterChefMaroc { class listeRecette { // Question 3-a private List<Recette> LR=new List<Recette>(); private string categorie; // Question 3-b public listeRecette(string _categorie) { this.categorie = _categorie; } // Question 3-c public List<Recette> getLR() { return this.LR; } public string getCategorie() { return this.categorie; } // Question 3-d public override string ToString() { string recettes=""; foreach (Recette r in LR) { recettes = recettes + "\n" + r.ToString(); } return "La categorie de la liste de recette est : " + this.categorie + ", les caractéristiques de ses recette sont : " + recettes; } // Question 3-e CalculerDureeTotale public int CalculerDureeTotale() { int total = 0; foreach (Recette r in this.getLR()) { total+=r.getDuree(); } return total; } // Question 3-e Ajouter public virtual void Ajouter(Recette r) { int i = 0; foreach (Recette rt in LR) { if (rt.Equals(r)) { i++; } } if (i == 0) { LR.Add(r); Console.WriteLine("L'ajouter de la recette est effectué avec succès"); } else { throw new RecetteExisteException("La recette est déjà existe dans la liste des recettes"); } } } }
L'exception :RecetteExisteException
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MasterChefMaroc { class RecetteExisteException : Exception { public RecetteExisteException(string msg) : base(msg) { } } }
La Classe AtelierCuisine
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MasterChefMaroc { class AtelierCuisine : listeRecette { // Question 3-a int dureeAtelier; // Question 3-b public AtelierCuisine(string _categorie, int _dureeAtelier) : base(_categorie) { this.dureeAtelier = _dureeAtelier; } // Question 3-c public int getDureeAtelier() { return dureeAtelier; } // Question 3-b public override string ToString() { return base.ToString() + " la durée de l'atelier est " + this.dureeAtelier; } // Question 3-e TempsLibre() public int TempsLibre() { int TLibre = 0; TLibre = base.CalculerDureeTotale(); return (this.dureeAtelier - TLibre); } // Question 3-e il faut changer le type de la méthode Ajouter() dans la classe de base en virtual public override void Ajouter(Recette r) { if (this.TempsLibre() - r.getDuree() >= 0) { base.Ajouter(r); } else { Console.WriteLine("L'ajouter est impossible car il n'y plus assez de temps libre"); } } } }
La Classe Program
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MasterChefMaroc { class Program { static void Main(string[] args) { // Question 4-a Recette SM = new Recette("Salade Marocaine", "Laver et éplucher les légumes, les couper en petits, ajoutez l'huile d'olive ...", 15); Recette SC = new Recette("Salade César au poulet", "Émincez les blancs de poulet, placez-les dans un plat et versez le jus d'1/2 citron dessus ...", 25); // Question 4-b AtelierCuisine AtelierSalade= new AtelierCuisine("Salade",60); // Question 4-c AtelierSalade.Ajouter(SM); AtelierSalade.Ajouter(SC); // L'insruction suivante va génére une exception car on a déjà ajoute l'objet SM // AtelierSalade.Ajouter(SM); // Question 4-d Console.WriteLine("Le programme de l'atelier est le suivant :"); Console.WriteLine(AtelierSalade.ToString()); // Question 4-e Console.WriteLine("Le temps libre de l'atelier est le suivant :" + AtelierSalade.TempsLibre()); Console.Read(); } } }