On veut écrire un programme personne.cc qui gère (à l'aide de structures) les données relatives à des personnes.
Cet exercice reprend pas à pas les différentes étapes pour y parvenir.
#include <iostream>
using namespace std;
int main()
{
return 0;
}
Remarque : La déclaration d'une structure étant une déclaration de nouveau type (et non pas d'une variable !), elle doit se faire au niveau global du programme, c'est-à-dire avant toute fonction, même le main().
#include <iostream>
using namespace std;
// declaration d'une strucutre
struct Personne{
double taille;
int age;
char sexe;
}; // <-- ATTENTION ! Ne pas oublier le ;
int main()
{
return 0;
}
#include <iostream>
using namespace std;
//declaration d'une strucutre
struct Personne{
...
};
void affiche_personne(Personne const& p); //prototype
int main()
{
return 0;
}
Notez que nous avons ici choisi l'optimisation (plus efficace) consistant à passer une référence (ce qui évite une copie) constante (car la fonction affiche_personne ne modifie pas cet argument). Mais, dans une version tout aussi juste mais un peu moins efficace, on aurait aussi bien pu écrire :
void affiche_personne(Personne p);
#include <iostream>
using namespace std;
...
int main()
{
return 0;
}
// Affiche les informations d'une personne
void affiche_personne(Personne const& p){
cout << "taille : " << p.taille << endl;
cout << "age : " << p.age << endl;
cout << "sexe : " << p.sexe << endl;
}
Solution :
#include <iostream>
using namespace std;
...
void anniversaire(Personne& p);
Personne naissance();
int main()
{
return 0;
}
...
// incremente l'age d'une personne
void anniversaire(Personne& p){
++(p.age);
}
// création d'une personne avec initialisation des champs par l'utilisateur
Personne naissance() {
Personne p;
cout << "Saisie d'une nouvelle personne" << endl;
cout << " Entrez sa taille: ";
cin >> p.taille;
cout << " Entrez son age: ";
cin >> p.age;
cout << " Homme [M] ou Femme [F]: ";
cin >> p.sexe;
return p;
}
#include <iostream>
using namespace std;
... // debut comme avant
int main()
{
// Création et intialisation de la structure
Personne vincent(naissance());
// Affiche les informations concernant la personne 'vincent'
affiche_personne(vincent);
// incremente l'age de la personne 'vincent'
anniversaire(vincent);
// Ré-affiche les informations concernant la personne 'vincent'
affiche_personne(vincent);
return 0;
}
... //suite comme avant
Cliquez ici pour revenir à la série.
#include <iostream>
using namespace std;
// declaration d'une strucutre
struct Personne {
double taille;
int age;
char sexe;
};
// prototypes des fonctions
void affiche_personne(Personne const& p);
void anniversaire(Personne& p);
Personne naissance();
// programme principal
int main()
{
// Création et intialisation de la structure
Personne vincent(naissance());
// Affiche les informations concernant la personne 'vincent'
affiche_personne(vincent);
// Incremente l'age de la personne 'vincent'
anniversaire(vincent);
// Ré-affiche les informations concernant la personne 'vincent'
affiche_personne(vincent);
return 0;
}
// Définition des fonctions
// Affiche les informations d'une personne
void affiche_personne(Personne const& p){
cout << "taille : " << p.taille << endl;
cout << "age : " << p.age << endl;
cout << "sexe : " << p.sexe << endl;
}
// Incremente l'age d'une personne
void anniversaire(Personne& p){
++(p.age);
}
// Création d'une personne avec initialisation des champs par l'utilisateur
Personne naissance() {
Personne p;
cout << "Saisie d'une nouvelle personne" << endl;
cout << " Entrez sa taille: ";
cin >> p.taille;
cout << " Entrez son age: ";
cin >> p.age;
cout << " Homme [M] ou Femme [F]: ";
cin >> p.sexe;
return p;
}
Cliquez ici pour revenir à la série.