Jan.01

Correction Passage 2016 ISTA Houara

Examen

Fullscreen Mode

Correction

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();
        }
    }
}
Passage
Share this Story:
  • facebook
  • twitter
  • gplus

About Hassan EL Bahi

Assistant Professor at Cadi ayyad University.

Leave a comment

Comment