Jan.01

TP3 – Classe abstraite

Rappel :

– Les classes abstraites servent à définir des concepts incomplets qui seront complétés dans les sous-classes.

– Une méthode abstraite est une méthode dont l’implémentation n’est pas fournie. Cette méthode devra être redéfinie dans une des sous-classes.

– Une classe qui contient au moins une méthode abstraite doit être déclarée abstract.

– Une classe abstraite ne peut pas être instanciée.

– Une classe dérivée d’une classe abstraite ne redéfinissant pas toutes les méthodes abstraites sera elle-même abstraite.

Problème :

Le directeur des systèmes d’information de la société DEVPRP souhaite développer un module pour la gestion des utilisateurs de son service, pour cela il vous a fait appel pour réaliser cette tâche.

Les personnes sont caractérisées par le schéma suivant :

tp3diagram

Remarque : une classe abstraite et une méthode abstraite sont représentées en italique dans un diagramme de classe.

  1. Créer la classe abstraite « Personne».
  2. Créer les classes «Developpeur» et «Manager».
  3. Redéfinir la méthode calculerSalaire()  Sachant que :  Le développeur aura une augmentation de 20% par rapport à son salaire normal, portant le manager aura une augmentation de 35% par rapport à son salaire normal.
  4. Créer deux développeurs et deux managers.
  5. Afficher les informations des objets crées sous la forme suivante :

    Le salaire du manager LACHGAR Mohamed est : 30 000 dh, son service : informatique

    Le salaire du développeur Salim karim est : 10 000 dh, sa spécialité : Java

  1. Créer un objet de type Personne. Qu’est-ce que vous remarquez ?

Correction

La classe Personne

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

namespace GestionPersonnel
{
    abstract class Personne
    {
        protected int id;
        protected string nom;
        protected string prenom;
        protected string email;
        protected string tel;
        protected double salaire;
        public abstract double CalculerSalaire();
    }
}

La classe Manager

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

namespace GestionPersonnel
{
    class Manager : Personne
    {
        private string service;
        public Manager() { }
        public Manager(int _id, string _nom, string _prenom, string _email, string _tel, double _salaire, string _service)
        {
            base.id = _id;
            base.nom = _nom;
            base.prenom = _prenom;
            base.email = _email;
            base.tel = _tel;
            base.salaire = _salaire;
            this.service = _service;
        }
        public override double CalculerSalaire()
        {
            return this.salaire * 1.35;
        }
        public new string ToString()
        {
            return "Le salaire du manager " + base.nom + " " + base.nom + " est : " + this.CalculerSalaire() + " DH, son service :" + this.service;
        }
    }
}

La classe Developpeur 

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

namespace GestionPersonnel
{
    class Developpeur : Personne
    {
        private string specialite;
        public Developpeur() { }
        public Developpeur(int _id, string _nom, string _prenom, string _email, string _tel, double _salaire, string _specialite) {
            base.id = _id;
            base.nom = _nom;
            base.prenom = _prenom;
            base.email = _email;
            base.tel = _tel;
            base.salaire = _salaire;
            this.specialite = _specialite;
        }
        public override double CalculerSalaire()
        {
            return this.salaire*1.2;
        }
        public override string ToString()
        {
            return "Le salaire du développeur " + base.nom + " " + base.nom + " est : " + this.CalculerSalaire() + " DH, sa spécialité :" + this.specialite;
        }
    }
}

La classe Program

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

namespace GestionPersonnel
{
    class Program
    {
        static void Main(string[] args)
        {
            Developpeur d = new Developpeur(1, "Salim", "karim", "karim@gmail.com", "0677000011", 8000.00, "c#");
            Manager m = new Manager(2, "LACHGAR", "Mohamed", "Mohamed@gmail.com", "0660000011", 7000.00, "Informatique");
            Console.WriteLine(d);
            Console.WriteLine(m);

            Console.ReadLine();
        }
    }
}
TP
Share this Story:
  • facebook
  • twitter
  • gplus

About Hassan EL Bahi

Assistant Professor at Cadi ayyad University.

Comments(1)

  1. Nassour Ibrahim Daoud
    1050 days ago

    Mon contact en privé 0023566356285

Leave a comment

Comment