Vous êtes sur la page 1sur 8

C++ TP 4 - Correction

Introduction
Dans cette document je vous donne la correction de TP4.
La declaration des classes sont toujours dans des fichiers .h tandis que leurs implementations
sont dans des fichiers .cpp.
je nai fourni que limplementation que je trouve importantes parce que les autres sont tr`es
simples.

Exercice I
fichier personne.h
#ifndef PERSONNE H
#define PERSONNE H
using namespace std;
class CPersonne
{
public :
////// constructeurs/////////////////////////////////
CPersonne();
CPersonne(const string& nom, const string& prenom,
unsigned int age=0, const string& adresse=);
CPersonne();
///// set et get methodes//////////////////

const string& get_nom();


void set_nom(const string& nom);
const string& get_prenom();
void set_prenom(const string& prenom);
unsigned int get_age();
void set_age(unsigned int age);
const string& get_adresse();
void set_adresse(const string& adresse);
////////////////////////////////////
void afficher();
void saisir();

private :
string m_nom;
string m_prenom;
unsigned int m_age;
string m_adresse;
};
#endif

fichier employe.h
#ifndef EMPLOYE H
#define EMPLOYE H
#include <string>
using namespace std;
class CEmploye
{
public :
////// constructeurs/////////////////////////////////
CEmploye();
CEmploye(const string& nom_employer, float salaire);
CEmploye();
///// set et get methodes//////////////////

const string& get_nom_employeur();


void set_nom_employeur(const string& nom_employer);
float get_salaire();
void set_salaire(float salaire);
////////////////////////////////////
void afficher();
void saisir();
private :
string m_nom_employeur;
float m_salaire;
};
#endif

fichier etudiant.h
#ifndef ETUDIANT H
#define ETUDIANT H
#include <string>
#include personne.h
using namespace std;
class CEtudiant: public CPersonne
{
public :
////// constructeurs/////////////////////////////////

CEtudiant();
CEtudiant(const string& nom, const string& prenom,
const string& numero, const string& specialite,
const string& nom_ecole,
unsigned int age=0, const string& adresse=);
CEtudiant();
///// set et get methodes//////////////////

const string& get_numero();


void set_numero(const string& numero);
const string& get_specialite();
void set_specialite(const string& specialite);
const string& get_nom_ecole();
void set_nom_ecole(const string& nom_ecole);
////////////////////////////////////
void afficher();
void saisir();
private :
string m_numero;
string m_specialite;
string m_nom_ecole;
};
#endif

fichier etudiant.cpp
#include <string>
#include etudiant.h
#include <iostream>
using namespace std;
CEtudiant::CEtudiant(): CPersonne()
{
}
CEtudiant::CEtudiant(const string& nom, const string& prenom,
const string& numero, const string& specialite,
const string& nom_ecole,
unsigned int age=0, const string& adresse=):
CPersonne(nom,prenom,age,adresse), m_numero(numero),
m_specialite(specialite), m_nom_ecole(nom_ecole)
{
}

void CEtudiant::afficher()
{
CPersonne::afficher();
cout << Numero : << m_numero << endl;
cout << Specialite : << m_specialite << endl;

cout << Nom Ecole : << m_nom_ecole << endl;


}
void CEtudiant::saisir()
{
CPersonne::saisir();
cout << Numero : ;
cin >> m_numero;
cout << Specialite : ;
cin >> m_specialite;
cout << Nom Ecole : ;
cin >> m_nom_ecole;
}

fichier enseignant.h
#ifndef ENSEIGNANT H
#define ENSEIGNANT H
#include <string>
#include personne.h
#include employe.h
using namespace std;
class CEnseignant: public CPersonne, public CEmploye
{
public :
////// constructeurs/////////////////////////////////
CEnseignant();
CEnseignant(const string& nom, const string& prenom,
, const string& nom_employer, float salaire,
unsigned int enseigne_eannee, unsigned int age=0,
const string& adresse=);
CEnseignant();
///// set et get methodes//////////////////

unsigned int get_enseigne_eannee();


void set_enseigne_eannee(unsigned int enseigne_eannee);
////////////////////////////////////
void afficher();
void saisir();
private :
unsigned int m_enseigne_eannee
};
#endif

fichier enseignant.cpp
#include enseignant.h
#include <iostream>

using namespace std;


CEnseignant::CEnseignant(): CPersonne(), CEmploye()
{
}
CEnseignant::CEnseignant(const string& nom, const string& prenom,
, const string& nom_employer, float salaire,
unsigned int enseigne_eannee, unsigned int age=0,
const string& adresse=),
CPersonne(nom,prenom,age,adresse), CEmploye(nom_employer,salaire),
m_enseigne_eannee(enseigne_eannee)
{
}

void CEnseignant::afficher()
{
CPersonne::afficher();
CEmploye::afficher();
cout << Enseigne annee : << m_enseigne_eannee << endl;
}
void CEnseignant::saisir()
{
CPersonne::saisir();
CEmploye::saisir();
cout << Enseigne annee : ;
cin >> m_enseigne_eannee;
}

Exercice II
fichier figure.h
#ifndef FIGURE H
#define FIGURE H
class CFigure
{
public :
CFigure();
CFigure(int x, int y);
int get_x();
int get_y();
void set_x(int x);
void set_y(int y);
void deplacer_vers(int x, int y);
virtual void dessienr()=0;
virtual float aire()=0;
virtual float perimetre()=0;

private :
int m_x;
int m_y;
};
#endif

fichier rectangle.h
#ifndef RECTANGLE H
#define RECTANGLE H
#include figure.h>
class CRectangle : public CFigure
{
public :
CRectangle();
CRectangle(int largeur, int hauteur);
CRectangle(int x, int y, int largeur, int hauteur);
int get_largeur();
int get_hauteur();
void set_largeur(int largeur);
void set_hauteur(int hauteur);
void dessienr();
float aire();
float perimetre();
private :
int m_largeur;
int m_hauteur;
};
#endif

fichier cercle.h
#ifndef CERCLE H
#define CERCLE H
#include figure.h
class CCercle : public CFigure
{
public :
CCercle();
CCercle(int radius);
CCercle(int x, int y, int radius);
int get_radius();
void set_radius(int radius);

void dessienr();
float aire();
float perimetre();
private :
int m_radius;
};
#endif

fichier carre.h
#ifndef CARRE H
#define CARRE H
#include rectangle.h
class CCarre : private CRectangle
{
public :
CCarre();
CCarre(int bord);
CCarre(int x, int y, int bord);
int get_bord();
void set_bord(int bord);
void dessienr();
float aire();
float perimetre();
};
#endif

fichier carre.cpp
#include caree.h
CCarre::CCarre(): CRectangle()
{
}
CCarre::CCarre(int bord): CRectangle(bord,bord)
{
}
CCarre::CCarre(int x, int y, int bord): CRectangle(x,y,bord,bord)
{
}
int CCarre::get_bord()
{
return get_largeur();
// return get hauteur();
}

void CCarre::set_bord(int bord)


{
set_largeur(bord);
set_hauteur(bord);
}
void CCarre::dessienr()
{
CRectangle::dessienr();
}
float CCarre::aire()
{
return CRectangle::aire();
}
float CCarre::perimetre()
{
return CRectangle::perimetre();
}

Vous aimerez peut-être aussi