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();
}
}
}
