Tp7.c
2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <stdio.h>
#include <string.h>
#define ContigueLength 512
#define NbChar 32
typedef struct{
int jour, mois,annee;
}Date;
typedef struct{
char nom[NbChar], prenom[NbChar], tel[NbChar];
Date date;
}Personne;
typedef struct{
Personne listePers[ContigueLength];
int dernier;
}Annuaire;
void lireDate(Date *date){
scanf("%d%d%d",&date->jour,&date->mois, &date->annee);
}
void afficheDate(Date date){
printf("Jour: %d | Mois: %d | Annee: %d\n",date.jour, date.mois, date.annee);
}
int lirePersonne(Personne *pers){
if(scanf("%s",pers->nom)!=EOF){
scanf("%s",pers->prenom);
lireDate(&pers->date);
scanf("%s",pers->tel);
return 1;
}else {
return 0;
}
//if(scanf("%s")==EOF);
}
void affichePers(Personne p){
printf("Nom: %s | Prenom: %s | Tel: %s\n",p.nom, p.prenom, p.tel);
afficheDate(p.date);
}
void creerAnnuaire(Annuaire *annuaire){
annuaire->dernier=-1;
//tq lecture d'une nouvelle personne est possible -> ajoute pers et +1 à annuaire.dernier
while((annuaire->dernier < ContigueLength) && (lirePersonne(&annuaire->listePers[(annuaire->dernier)+1])!=0)){
annuaire->dernier+=1;
}
}
void afficheAnnuaire(Annuaire annuaire){
int i;
for(i = 0; i <= annuaire.dernier; i++){
affichePers(annuaire.listePers[i]);
}
}
int compareDate(Date d1, Date d2){
if(d1.annee == d2.annee){
if(d1.mois == d2.mois){
if(d1.jour == d2.jour){
return 0;
}else if(d1.jour < d2.jour){
return -1;
}
}else if(d1.mois < d2.mois){
return -1;
}
}else if(d1.annee < d2.annee){
return -1;
}
return 1;
}
int main(){
/* Date d;
lireDate( &d);
afficheDate(d);
Personne p;
lirePersonne(&p);
affichePers(p);*/
Annuaire annuaire;
creerAnnuaire(&annuaire);
afficheAnnuaire(annuaire);
return 1;
}