Base.c 1.71 KB
#include <stdio.h>
#define N 10
#define M 20

/* Lire une date au clavier et l'afficher */

typedef struct {
    int jour;
    int mois;
    int annee;
} Date;


typedef struct {
    char nom[N];
    char prenom[N];
    char numtel[N];
    Date datenaiss;
} Personne;

typedef struct {
    Personne espace[M];
    int dernier;
} Annuaire;

void lireDate(Date *daten){
    printf("Saisir le jour : ");
    scanf("%d", &daten -> jour);
    printf("Saisir le mois : ");
    scanf("%d", &daten -> mois);
    printf("Saisir l'année : ");
    scanf("%d", &daten -> annee);
}

int lirePersonne(Personne *ppers){
    printf("Saisir nom : ");
    if(scanf("%s", ppers -> nom) != EOF){
        printf("Saisir prénom : ");
        scanf("%s", ppers -> prenom);
        printf("Saisir numéro de tel : ");
        scanf("%s", ppers -> numtel);
        printf("Saisir Date de naissance : ");
        lireDate(&ppers -> datenaiss);
        return 1;
    }
    else return 0;
}


void AfficherDate(Date datex){
    printf("Date de naissance : ");
    printf("%d / %d / %d \n", datex.jour, datex.mois, datex.annee);
}

void AffichPersonne(Personne pers){
        
        printf("Nom : %s \n",pers.nom);
        printf("Prénom : %s \n",pers.prenom);
        printf("Numéro de téléphone : %s \n",pers.numtel);
        AfficherDate(pers.datenaiss);
}

void CreationAnnuaire(Annuaire *pannu){
    int i = -1; 
    while (lirePersonne(&(pannu -> espace[i+1]))!=0){
        i = i+1;
    }
    pannu ->dernier = i;
}

void AfficherAnnuaire(Annuaire annu){
    int i = 0;
    for(i=0;i<= annu.dernier ;i++){
        AffichPersonne(annu.espace[i]);
    }
}

int main(){
    Annuaire annu1;
    CreationAnnuaire(&annu1);
    AfficherAnnuaire(annu1);
    return 0;
}