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.