Vous êtes sur la page 1sur 2

TP n° 5

Les fonctions
5.2 Partie 1 : Déclaration d’une structure

5.3 Partie 2 : Manipulation par pointeur


5.4 Partie 3 : Utilisation des fonctions
On utilise les deux fonctions init_etud et affiche_etud pour initialiser et afficher une variable de type étudiant à travers un passage par
valeur puis par adresse. Mettre la définition de la structure et les fonctions dans un fichier d’entête séparé et l’inclure dans l’entête.

Le programme :
1 #include <iostream>
2 using namespace std;
3 struct etudiant
4 {char *nom,*prenom;
5 int rang,annee_naissance,moyenne;};
6 etudiant init_etudparvaleur(etudiant etud1)
7 {etud1.nom=new char [20];
8 etud1.prenom=new char [20];
9 cout<<"1--<<passage par valeur>>"<<endl;
10 cout<<"les informatios de etud01 !"<<endl;
11 cout<<"le nom1 : ";cin>>etud1.nom;
12 cout<<"le prenom1 : ";cin>>etud1.prenom;
13 cout<<"l'annee de naissance1 : ";
14 cin>>etud1.annee_naissance;
15 cout<<"la moyenne1 : ";cin>>etud1.moyenne;
16 cout<<"le rang1 : ";cin>>etud1.rang;
17 return etud1;}
18 etudiant init_etudparadresse(etudiant *p){
19 p=new etudiant;
20 (*p).nom= new char[20];
21 (*p).prenom=new char[20];
22 cout<<"--------------------------------- "<<endl;
23 cout<<"2--<<passage par adresse>>"<<endl;
24 cout<<"les informatios de etud02 !"<<endl;
25 cout<<"le nom2 : ";cin>>p->nom;
26 cout<<"le prenom2 : ";cin>>p->prenom;
27 cout<<"l'annee de naissance2 : ";
28 cin>>p->annee_naissance;
29 cout<<"la moyenne2 : ";cin>>(*p).moyenne;
30 cout<<"le rang2 : ";cin>>p->rang;
31 return *p;}
32 void affiche_etudparvaleur(etudiant etud1)
33 { cout<<"--------------------------------- "<<endl;
34 cout<<"--<<affichage de passage par valeur>>"<<endl;
35 cout<<"informations etud01 !"<<endl;
36 cout<<"nom1 :"<<etud1.nom<<endl;
37 cout<<"prenom1 :"<<etud1.prenom<<endl;
38 cout<<"date de naissance1 :"<<etud1.annee_naissance<<endl;
39 cout<<"moyenne1 :"<<etud1.moyenne<<endl;
40 cout<<"rang1 :"<<etud1.rang<<endl;}
41 void affiche_etudparadresse(etudiant *p)
42 { cout<<"--------------------------------- "<<endl;
43 cout<<"--<<affichage de passage par adresse>>"<<endl;
44 cout<<"informations etud02 !"<<endl;
45 cout<<"nom2 :"<<p->nom<<endl;
46 cout<<"prenom2 :"<<p->prenom<<endl;
47 cout<<"date de naissance2 :"<<p->annee_naissance<<endl;
48 cout<<"moyenne2 :"<<(*p).moyenne<<endl;//(*pe). un autre facon
49 cout<<"rang2 :"<<p[0].rang<<endl;}
50 int main(){etudiant etudiant1;etudiant *p;//programme pricipal
51 p=new etudiant;
52 etudiant1=init_etudparvaleur(etudiant1);
53 *p=init_etudparadresse(p);
54 affiche_etudparvaleur(etudiant1);
55 affiche_etudparadresse(p);
56 return 0;

Vous aimerez peut-être aussi