Vous êtes sur la page 1sur 6

3IIR

Correction du TP N° 13

Exercice 1: (Suite du TP N°12)


//---------------Date_Embauche.h---------

#pragma once
#include <iostream>
using namespace std;

class Employee;

class Date_Embauche {
private:
int jour;
int mois;
int annees;

public:
Date_Embauche();
Date_Embauche(int, int, int);
Date_Embauche(const Date_Embauche&);

friend istream& operator>>(istream&, Date_Embauche&);


friend ostream& operator<<(ostream&, const Date_Embauche&);
friend class Employee;
};

//--------Employee.h------------

#pragma once
#include <iostream>
#include <string>
#include "Date_Embauche.h"
using namespace std;

class Employee {
private:
int code;
string nom;
float nb_heures;
float taux_remuneration;
Date_Embauche date_embauche;

public:
Employee();
Employee(int, const string&, float, float, const Date_Embauche&);
Employee(const Employee&);

int getCode() const;


string getNom() const;
float getNb_heures() const;
float getTaux_remuneration() const;
Date_Embauche getDate_embauche() const;
float Calculer_salaire() const;

Pr. AIT BENNACER Fatima-Ezzahra


friend istream& operator>>(istream&, Employee&);
friend ostream& operator<<(ostream&, const Employee&);
friend bool operator==(const Employee&, const Employee&);
friend bool operator!=(const Employee&, const Employee&);
};

//--------Vendeur.h------------

#pragma once
#include "Employee.h"
using namespace std;

class Vendeur : public Employee {


private:
float montant_ventes;
float pourcentage;

public:
Vendeur();
Vendeur(int, const string&, float, float, const Date_Embauche&, float,
float);
Vendeur(const Vendeur&);

float Calculer_salaire() const;

friend istream& operator>>(istream&, Vendeur&);


friend ostream& operator<<(ostream&, const Vendeur&);
};

//--------Date_Embauche.cpp------------

#include "Date_Embauche.h"

Date_Embauche::Date_Embauche() : jour(0), mois(0), annees(0) {}

Date_Embauche::Date_Embauche(int j, int m, int a) : jour(j), mois(m), annees(a)


{}

Date_Embauche::Date_Embauche(const Date_Embauche& D) : jour(D.jour),


mois(D.mois), annees(D.annees) {}

istream& operator>>(istream& i, Date_Embauche& D) {


cout << "Entrez le jour : ";
i >> D.jour;
cout << "Entrez le mois : ";
i >> D.mois;
cout << "Entrez l'année : ";
i >> D.annees;
return i;
}

ostream& operator<<(ostream& o, const Date_Embauche& Date) {


o << "Jour : " << Date.jour << " Mois : " << Date.mois << " Année : " <<
Date.annees;
return o;
}

//--------Employee.cpp------------

#include "Employee.h"

Employee::Employee() : code(0), nb_heures(0.0), taux_remuneration(0.0) {}

Pr. AIT BENNACER Fatima-Ezzahra


Employee::Employee(int c, const std::string& n, float heures, float taux, const
Date_Embauche& date)
: code(c), nom(n), nb_heures(heures), taux_remuneration(taux),
date_embauche(date) {}

Employee::Employee(const Employee& emp)


: code(emp.code), nom(emp.nom), nb_heures(emp.nb_heures),
taux_remuneration(emp.taux_remuneration),
date_embauche(emp.date_embauche) {}

int Employee::getCode() const {


return code;
}

std::string Employee::getNom() const {


return nom;
}

float Employee::getNb_heures() const {


return nb_heures;
}

float Employee::getTaux_remuneration() const {


return taux_remuneration;
}

Date_Embauche Employee::getDate_embauche() const {


return date_embauche;
}

float Employee::Calculer_salaire() const {


return nb_heures * taux_remuneration;
}

istream& operator>>(istream& i, Employee& emp) {


cout << "Entrez le code de l'employé : ";
i >> emp.code;
cout << "Entrez le nom de l'employé : ";
i >> emp.nom;
cout << "Entrez le nombre d'heures travaillées : ";
i >> emp.nb_heures;
cout << "Entrez le taux de rémunération : ";
i >> emp.taux_remuneration;
cout << "Entrez la date d'embauche :\n";
i >> emp.date_embauche;
return i;
}

ostream& operator<<(ostream& o, const Employee& emp) {


o << "Code: " << emp.code << "\nNom: " << emp.nom << "\nNombre d'heures: " <<
emp.nb_heures
<< "\nTaux de rémunération: " << emp.taux_remuneration << "\nDate
d'embauche: " << emp.date_embauche;
return o;
}

bool operator==(const Employee& emp1, const Employee& emp2) {


return emp1.Calculer_salaire() == emp2.Calculer_salaire();
}

bool operator!=(const Employee& emp1, const Employee& emp2) {


return !(emp1 == emp2);
}

Pr. AIT BENNACER Fatima-Ezzahra


//------------Vendeur.cpp---------

#include "Vendeur.h"

Vendeur::Vendeur() : montant_ventes(0.0), pourcentage(0.0) {}

Vendeur::Vendeur(int c, const std::string& n, float heures, float taux, const


Date_Embauche& date,
float ventes, float commission)
: Employee(c, n, heures, taux, date), montant_ventes(ventes),
pourcentage(commission) {}

Vendeur::Vendeur(const Vendeur& v)
: Employee(v), montant_ventes(v.montant_ventes), pourcentage(v.pourcentage)
{}

float Vendeur::Calculer_salaire() const {


return Employee::Calculer_salaire() + (montant_ventes * pourcentage);
}

istream& operator>>(istream& i, Vendeur& Ven) {


cout << "Entrez le montant des ventes du vendeur : ";
i >> Ven.montant_ventes;
cout << "Entrez le pourcentage de commission : ";
i >> Ven.pourcentage;
i >> static_cast<Employee&>(Ven);
return i;
}

ostream& operator<<(ostream& o, const Vendeur& ven) {


o << static_cast<const Employee&>(ven) << "\nMontant des ventes: " <<
ven.montant_ventes
<< "\nPourcentage de commission: " << ven.pourcentage;
return o;
}

//---------main.cpp---------

#include <iostream>
#include <vector>
#include "Vendeur.h"

int main() {
const int Taille = 2;
vector<Vendeur> vendeurs;

for (int i = 0; i < Taille; ++i) {


cout << "Saisie des détails de l'employé " << i + 1 << " :\n";
Vendeur ven;
cin >> ven;
vendeurs.push_back(ven);
}

for (int i = 0; i < Taille; ++i) {


cout << "\nDétails de l'employé " << i + 1 << ":\n" << vendeurs[i] <<
endl;
cout << "Salaire du vendeur " << i + 1 << ": " <<
vendeurs[i].Calculer_salaire() << endl;
}

return 0;
}

Pr. AIT BENNACER Fatima-Ezzahra


Exercice 2: (Suite du TP N°9 exercice 2)

//--------fichier Etudiant_en_Master.h-----------
#pragma once
#include "Etudiant.h"
class Etudiant_en_Master : public Etudiant
{
private:
float note_memoire;

public:
Etudiant_en_Master();
void saisie();
void affichage();
float moyenne();
int admis();
int comp_moy(Etudiant_en_Master& E);
};

//--------fichier Etudiant_en_Master.cpp-----------
#include "Etudiant_en_Master.h"
#include <iostream>
using namespace std;

Etudiant_en_Master::Etudiant_en_Master() : Etudiant() {
note_memoire = 0.0;
}

void Etudiant_en_Master::saisie()
{
Etudiant::saisie();
cout << "Donner la note du mémoire :";
cin >> note_memoire;
}

void Etudiant_en_Master::affichage()
{
Etudiant::affichage();
cout << "La note du mémoire :" << note_memoire << endl;
}

float Etudiant_en_Master::moyenne()
{
return (Etudiant::moyenne() + note_memoire) / 2;
}

int Etudiant_en_Master::admis()
{
if ((moyenne() >= 10) && (note_memoire >= 10))
return 1;
else
return 0;
}

int Etudiant_en_Master::comp_moy(Etudiant_en_Master& E)
{
if ((moyenne() == E.moyenne()) && (note_memoire == E.note_memoire))
return 1;
else
return 0;
}

Pr. AIT BENNACER Fatima-Ezzahra


//--------------------------Fichier main.cpp--------------------------
#include "Etudiant_en_Master.h"
#include <iostream>
using namespace std;

int main() {
Etudiant_en_Master etd1, etd2;
etd1.saisie();
etd2.saisie();
etd1.affichage();
etd2.affichage();

cout << "Admission: " << etd1.admis() << " et " << etd2.admis() << endl;
if (etd1.comp_moy(etd2) == 0)
cout << "La moyenne des étudiants est différente ";
else
cout << "La moyenne des étudiants est identique";

return 0;
}

Pr. AIT BENNACER Fatima-Ezzahra

Vous aimerez peut-être aussi