Jan.01

TP2 : Héritage, ToString, Equals

Problème :

On souhaite réaliser une application de gestion des fournitures de bureau. Les articles pourront être de types divers, représentés sous la forme d’objets dans l’application.

Les articles sont caractérisés par le schéma suivant :

tp2diagram

+ : public, – : private, # : protected

Les articles sont de type stylo ou ramette de papier.

Un stylo est un article décrit par sa marque, sa référence, son prix unitaire et sa couleur.

Une ramette de papier est un article décrit par sa marque, sa référence, son prix unitaire et sa Format du papier (A4, A5).

  1. Implémenter les classes correspondant aux Article, Stylo, Ramette.
  2. Définir les constructeurs avec argument, par défaut et les méthodes des classes.
  3. Définir la fonction ToString() qui permet d’afficher les propriétés des objets.
  4. Définir la fonction equals() qui permet de vérifier si deux objets sont égaux
  1. Deux objets Article sont égaux si ont même marque.
  2. Deux objet Stylo sont égaux si ont même marque.
  3. Deux objet Ramette sont égaux si ont même format.
  1. Ajouter un compteur d’instance.
  2. Ecrire la fonction main () :
  1. Créer des objets des classes Article, Stylo, Ramette.
  2. Teste la méthode equals()
  3. Afficher les attributs des objets avec la méthode toString().

Correction

La classe Article

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TP2
{
    class Article
    {
        private string nom;
        private string reference;
        private double prixUnitaire;
        private static int comp = 0;
        public Article() { }
        public Article(string _nom, string _reference, double _prixUnitaire)
        {
            comp += 1;
            this.nom = _nom;
            this.reference = _reference;
            this.prixUnitaire = _prixUnitaire;
        }
        public Article(Article _article)
        {
            comp += 1;
            this.nom = _article.nom;
            this.reference = _article.reference;
            this.prixUnitaire = _article.prixUnitaire;
        }
        public void setNom(String _nom)
        {
            this.nom = _nom;
        }
        public void setReference(String _ref)
        {
            this.reference = _ref;
        }
        public void setPrixUnitaire(double _prixU)
        {
            this.prixUnitaire = _prixU;
        }
        public string getNom()
        {
            return nom;
        }
        public string getReference()
        {
            return reference;
        }
        public double getPrixUnitaire()
        {
            return prixUnitaire;
        }
        public bool Equals(Article a)
        {
            return (nom == a.nom);
        }
        public override string  ToString()
        {
            return "L'article : " + this.nom + " sa réference est :" + this.reference + " et son prix est : " + prixUnitaire;
        }
        
    }
}

La classe Ramette

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TP2
{
    class Ramette : Article
    {
        private string Format;
        public Ramette() : base() { }
        public Ramette(string _nom, string _reference, double _prixUnitaire, string _format) : base(_nom, _reference, _prixUnitaire)
        {
            this.Format = _format;
        }
        public bool Equals(Ramette r)
        {
            return (this.Format == r.Format);
        }
        public override string ToString()
        {
            String b= base.ToString();
            return b + " son format est " + Format; 
        }
    }
}

La classe Stylo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TP2
{
    class Stylo:Article
    {
        private string Couleur;
        public Stylo() : base() { }
        public Stylo(string _nom, string _reference, double _prixUnitaire, string _couleur) : base(_nom, _reference, _prixUnitaire) { 
            this.Couleur= _couleur;
        }
        public bool Equals(Stylo s)
        {
            return (this.Couleur == s.Couleur);
        }
        public override string ToString()
        {
            String b= base.ToString();
            return b + " sa couleur est "+ Couleur; 
        }
    }
}

La classe Program

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TP2
{
    class Program
    {
        static void Main(string[] args)
        {
            Article a1 = new Article("Livre","D0003",50.20);
            Article a2 = a1;
            Stylo s1 = new Stylo("Stylo", "S22", 2.00, "Bleu");
            Ramette r1 = new Ramette("Ramette", "A551", 60.00, "A4");
            Ramette r2 = new Ramette("Ramette", "A600", 55.00, "A4");
            Console.WriteLine(s1);
            Console.WriteLine(r1);

            if (a1 == a2)
            {
                Console.WriteLine("Les deux objets Article sont égaux");
            }
            else {
                Console.WriteLine("Les deux objets Article ne sont pas égaux");
            }
            if (r1.Equals(r2))
            {
                Console.WriteLine("Les deux objets Article sont égaux");
            }
            else
            {
                Console.WriteLine("Les deux objets Article ne sont pas égaux");
            }
            Console.ReadLine();
        }
    }
}
TP
Share this Story:
  • facebook
  • twitter
  • gplus

About Hassan EL Bahi

Assistant Professor at Cadi ayyad University.

Leave a comment

Comment