Académique Documents
Professionnel Documents
Culture Documents
But :
• Rappel des notions passage de paramètres (par valeur et par adresse)
• Passage par référence en C++ et ses avantages.
• Nouvelles possibilités d’Entrées/sorties en C++ (opérateurs << et >>)
• Commentaires de ligne (//)
• Déclaration libre des variables
Exercice 1
1. Définir une fonction Permute qui permet d’échanger les valeurs de variables réelles.
2. Tester à l’aide d’une fonction principale main en utilisant les nouvelles possibilités
#include <iostream>
using namespace std;
int main() {
int X,Y;
cout << "X= ";
cin >> X;
cout << "Y= ";
cin >> Y;
permutRef(X,Y);
//permutAdr (&X,&Y);
cout <<"X= " <<X <<endl;
cout <<"Y= " <<Y;
return 0;
}
*b=c;
}
Exercice 2
1. Définir une structure Employe qui regroupe les informations : matricule (entier) , le
nom (chaine), prénom(chaine), date naissance (struct Date à définir avant), situation
2. Définir une fonction Saisie qui fait la saisie des informations concernant un employé.
3. Définir une fonction Affiche qui fait l’affichage des informations concernant un
4. Est-ce qu’on peut remplacer le passage par valeur par un passage par référence ?
5. Définir une fonction qui Modifie change la situation familiale d’un employé en
#include <iostream>
#include <string>
using namespace std;
struct date {
int jour;
int mois;
int annee;
};
struct employe {
int matricule;
string nom;
string prenom;
char situation;
struct date naissance ;
};
// Les prototypes
void Saisir(struct employe &) ;
void afficher(const struct employe&);
void modifier ( struct employe &);
}
int main(){
employe emp ;
Saisir(emp) ;
afficher(emp);
modifier (emp) ;
afficher (emp) ;
return 0 ;
}
Exercice 3
Correction : pour cette exercice on va créer deux classes Date et Employee. Par
employée.
1. mainEmployeeOO.cpp
#include <iostream>
#include "DateNaissance.h"
#include "Employe.h"
// Les prototypes
void Saisir(Employe &) ;
void Modifier(Employe &);
void Saisie(Employe& e)
{
int mat, j, m,a;
string n,p;
char stF;
cout <<"Saisir votre Matricule: "; cin >>mat;
cout <<"Saisir votre nom: "; cin >> n;
cout << "Saisir votre prenom: "; cin >>p;
cout << "Saisir votre Situation Familiale (C,M ou D): "; cin >>stF;
cout <<"Saisir votre date de naissance (jours, mois puis annee): ";
cin>>j>>m>>a;
e.set_matricule(mat);
e.set_nom(n);
e.set_prenom(p);
e.set_situationFamiliale(stF);
DateNaissance d(j,m,a);
e.set_dateDeNaissance(d);
}
void Modifie(Employe& e)
{
char stF;
cout <<"Saisir la nouvelle valeur de votre situation Familaile: ";
cin >>stF;
e.set_situationFamiliale(stF);
}
int main() {
Employe e;
Saisie(e);
e.Affiche();
Modifie(e);
e.Affiche();
return 0;
}
2. Date.h
#ifndef DATENAISSANCE_H
#define DATENAISSANCE_H
class DateNaissance
{
public:
DateNaissance();
DateNaissance(int, int, int);
~DateNaissance();
int get_jour();
int get_mois();
int get_annee();
void set_jour(int);
void set_mois(int);
void set_annee(int);
private:
int jour;
int mois;
int annee;
};
#endif
3. Date.cpp
#include "DateNaissance.h"
DateNaissance::DateNaissance()
{
// jour=1;
// mois=1;
// annee=2018;
}
{
return jour;
}
int DateNaissance::get_mois()
{
return mois;
}
int DateNaissance::get_annee()
{
return annee;
}
void DateNaissance::set_jour(int j)
{
jour = j;
}
void DateNaissance::set_mois(int m)
{
mois = m;
}
void DateNaissance::set_annee(int a)
{
annee = a;
}
4. Employee.h
#ifndef EMPLOYE_H
#define EMPLOYE_H
#include <string>
#include "DateNaissance.h"
//using namespace std;
class Employe
{
public:
Employe();
Employe(int, std::string, std::string, char, DateNaissance);
~Employe();
int get_matricule();
std::string get_nom();
std::string get_prenom();
char get_situationFamiliale();
DateNaissance get_dateDeNaissance();
void set_matricule(int);
void set_nom(std::string);
void set_prenom(std::string);
void set_situationFamiliale(char);
void set_dateDeNaissance(DateNaissance);
void Affiche();
private:
int matricule;
std::string nom;
std::string prenom;
char situationFamiliale;
DateNaissance dateDeNaissance ;
};
#endif
5. Employee.cpp
#include <iostream>
#include "Employe.h"
#include "DateNaissance.h"
Employe::Employe()
{
}
void Employe::Affiche()
{
cout <<"Matricule: " << matricule;
cout <<endl<<"Nom complet: " <<nom <<" " <<prenom;
cout <<endl<<"Situation Familiale: "<<situationFamiliale;
cout <<endl<<"Date de naissance:
"<<dateDeNaissance.get_jour()<<"/"<<dateDeNaissance.get_mois()<<"/"
<<dateDeNaissance.get_annee()<<endl;
}