Accéder au contenu principal

Exercice Langage C# Poo : encapsulation N°1


Exercice: Soit la class Stagiaire qui modélise un stagiaire, cette class comportera les attributs suivants :
Matricule Int
Nom, Prénom, filière String
Note1, Note2, Note3 Double

1.
  a) Ecrire la classe Stagiaire en interdisant l’accès aux propriétés.
  b) Ajouter les accesseurs et les modificateurs de chaque propriété.
  c) Ajouter un compteur qui permet de compter le nombre des objets créés de la class stagiaire. (propriété de classe)

2.
  a) Ajouter un constructeur sans argument qui initialise le matricule ; le matricule doit avoir la valeur du compteur.
  b) Ajouter un constructeur avec 3 arguments qui initialise le nom, le prénom, et la filière.
  c) Ajouter un constructeur qui initialise tous les propriétés de la classe stagiaire.
NB : à chaque instanciation d’un objet de stagiaire, le compteur s’incrémente et le matricule du stagiaire recevra la valeur du compteur.

3.
  d) Ajouter une méthode RAZ qui initialise le compteur à 0.
  e) Ajouter la méthode EQUAL qui teste l’égalité de 2 objets Stagiaire (2 objets stagiaires sont égaux s’ils
ont le même matricule). Peut –on déclarer cette méthode de différentes manières ?
  f) Ajouter une méthode CALCUL qui permet de calculer la moyenne générale de chaque stagiaire.
  g) Ecrire un programme de test qui crée les objets suivants :

Matricule Nom Prénom Filiére Note1 Note2 Note3
1 karami Loubna TDI
2 Jamal Youssef TDI
3 Ilham Fayrouz TRI 12 13 15
4
puis il les affiche
  h) Initialiser le compteur puis ajouter le cinquième stagiaire :
Matricule Nom Prénom Filiére Note1 Note2 Note3
1 karami Loubna TDI 13 14 12
Correction


//Q1 et Q2
//Classe Stagiaire
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TD1
{
    class Stagiaire
    {
        public static int compteur=0;
        int matricule;
        string nom, prenom, filiere;
        double note1, note2, note3;
        public int getMAtricule() { return this.matricule; }
        public string getNom() { return this.nom; }
        public string getPrenom() { return this.prenom; }
        public string getFiliere() { return this.filiere; }
        public double getNote1() { return this.note1; }
        public double getNote2() { return this.note2; }
        public double getNote3() { return this.note3; }
        public void setMatricule(int m) { this.matricule = m; }
        public void setNom(string m) { this.nom = m; }
        public void setPrenom(string m) { this.prenom = m; }
        public void setFiliere(string m) { this.filiere = m; }
        public void setNote1(double m) { this.note1 = m; }
        public void setNote2(double m) { this.note2 = m; }
        public void setNote3(double m) { this.note3 = m; }

        public void RAZ()
        {
          compteur = 0;
        }
        public bool equal(Stagiaire st1)
        {
         if (this.matricule == st1.matricule)
         return true;
         else return false;
        }
        public string decrisToi()
        {
          return "coco"+this.matricule+"\t nom : "+this.nom+"\t prenom :
          "+this.prenom+"\t Filiere "+ this.filiere;
        }
    }
}

//Constructeurs
    public Stagiaire()
    {
      this.matricule = compteur;
      compteur++; 
    }
    public Stagiaire(string n, string p, string f)
    {
    this.matricule = compteur;
    compteur++;
    this.nom = n;
    this.prenom = p;
    this.filiere = f;
    }
    public Stagiaire(string n, string p, string f, double n1, double n2, double n3)
    {
    this.matricule = compteur;
    compteur++;
    this.nom = n;
    this.prenom = p;
    this.filiere = f;
    this.note1 = n1;
    this.note2 = n2;
    this.note3 = n3;
    }
   //ou bien
    public Stagiaire(){
    this.matricule = compteur;
    compteur++;
    }
    public Stagiaire(string n, string p, string f):this()
    {
    this.nom = n;
    this.prenom = p;
    this.filiere = f;
    }
    public Stagiaire(string n, string p, string f, double n1, double n2, double n3):this(n,p,f)
    {
    this.note1 = n1;
    this.note2 = n2;
    this.note3 = n3;
    }
//Q3
public static void RAZ()
{
 compteur = 0;
}
public bool equal(Stagiaire st1)
{
  if (this.matricule == st1.matricule)
  return true;
  else return false;
}
  //ou bien
  public static bool equal(Stagiaire st1,Stagiaire st2)
  {
   if (st2.getMatricule() == st1.getMatricule())
   return true;
   else return false;
  }
public double CalculMoyenne()
{
    return (this.note1 + this.note2 + this.note3) / 3;
    }
   //Classe contenant le programme principal
   class Program
    {
    static void Main(string[] args)
    {
    Stagiaire st1, st2,st3,st4;
   
    st1 = new Stagiaire("Karami","Loubna","TDI");
    st2 = new Stagiaire("JAMAL","YOUSSEF","TDI");
    Console.WriteLine(st1.decrisToi());
    Console.WriteLine(st2.decrisToi());
    st3 = new Stagiaire("ILham", "Fairouz", "TRI",12,13,15);
    Console.WriteLine(st3.decrisToi());
   
    st4 = new Stagiaire();
    Console.WriteLine(st4.decrisToi());
    Stagiaire.RAZ();
    Stagiaire st5 = new Stagiaire();
    Console.WriteLine(st5.decrisToi());
    Console.WriteLine(Stagiaire.Equals(st1, st5));
    Console.ReadKey();
    }
}        

Posts les plus consultés de ce blog

Exercices Algorithme: les fonctions et les procedures N°2

Exercice 1: Ecrire une fonction ou procédure qui affiche tous les nombres pairs compris entre deux valeurs entières positives lue x et y correction Procedure calcul ; Declaration Variable x, y, z : entier ; Debut Lire (x, y); Si x > y Alors Debut z <-- x ; x <-- y ; y <-- z ; Fin FinSi ; Tantque x ≤ y Faire Si x mod 2 = 0 Alors Ecrire (x) FinSi ; x <-- x + 1 FinTantque Fin ; Exercice 2: Ecrire une fonction ou procédure qui permet d’entrer la date d’aujourd’hui puis demande le nom de la personne ; si ce nom = Ahmed il y a affichage de "Bienvenue Ahmed » puis lui demande sa date d’anniversaire et la compare à la date d’aujourd’hui si c’est

Exercices Algorithme :les fonctions et les procedures N°1

Exercice 1: Ecrire une fonction ou procédure qui calcule la partie entière d’un nombre positif correction Fonction entiere (x : reel) : entier ; Declaration Variable y : entier ; Debut y <-- 0 ; Tantque y < x faire y <-- y + 1 FinTanque ; entiere <-- y Fin ; Exercice 2: Ecrire une fonction ou procédure qui affiche le tableau de multiplication d’un entier positif x. correction Procedure Multipl (x: entier) ; Declaration Variable a, b : entier ; Debut b <-- 0 ; Pour a <-- 1 a 10 faire Debut b <-- b + x Ecrire (x, ‘X’, a, ‘= ‘, b) ; Fin FinPour fin; Exercice 3: Ecrire une fonction ou procé

Exercices Algorithme les tableaux

Les tableaux a une dimension Exercice 1: Ecrire un algorithme qui déclare et remplisse un tableau de 7 valeurs numériques en les mettant toutes à zéro. Correction Tableau Truc(6) en Numérique Variable i en Numérique Debut Pour i ← 0 à 6 Truc(i) ← 0 FinPour Fin Exercice 2: Ecrire un algorithme qui déclare et remplisse un tableau contenant les six voyelles de l’alphabet latin. Correction Tableau Truc(5) en Caractère Debut Truc(0) ← "a" Truc(1) ← "e" Truc(2) ← "i" Truc(3) ← "o" Truc(4) ← "u" Truc(5) ← "y" Fin Exercice 3: Ecrire un algorithme qui déclare un tableau de 9 notes, dont on fait ensuite saisir les valeurs par l’utilisateur. Correction Tableau Notes(8) en Numérique Variable i en Numérique Debut Pour i ← 0 à 8 Ecrire "Entrez la note numéro ", i + 1 Lire Notes(i) FinPour Fin Exercice 4: Que produit l’algorith