#include <stdio.
h>
#include <stdlib.h>
#include <string.h>
// Structure de la personne
typedef struct {
char nom[32];
char telephone[16];
} Personne;
// Structure du carnet
typedef struct {
Personne tab[20];
int nb_personne;
} Carnet;
// Fonction pour allouer dynamiquement une nouvelle personne
Personne* renvoie(char n, char tel) {
Personne* new_personne = (Personne*)malloc(sizeof(Personne));
if (new_personne != NULL) {
strcpy(new_personne->nom, &n);
strcpy(new_personne->telephone, &tel);
printf("Allocation réussie\n");
return new_personne;
} else {
printf("Allocation échouée! Pas assez d'espace\n");
return NULL;
}
}
// Fonction pour afficher une personne
void affiche(Personne* per) {
if (per != NULL) {
printf("Nom : %s\n", per->nom);
printf("Tel : %s\n", per->telephone);
} else {
printf("La personne est NULL\n");
}
}
// Fonction pour ajouter une personne au carnet
void ajoute(Carnet* carnet, Personne* nouveau) {
if (carnet->nb_personne < 20) {
carnet->tab[carnet->nb_personne] = *nouveau;
carnet->nb_personne++;
printf("Personne ajoutée avec succès !\n");
} else {
printf("Personne NON ajoutée ! La liste est pleine\n");
}
}
// Fonction pour afficher le carnet
void affiche_carnet(Carnet* carnet) {
int i;
if (carnet->nb_personne > 0) {
for (i = 0; i < carnet->nb_personne; i++) {
printf("---------Personne--(%d)---------: \n", i + 1);
affiche(&(carnet->tab[i]));
}
} else {
printf("Le carnet est vide\n");
}
}
// Fonction pour saisir plusieurs personnes et les ajouter au carnet
void saisie_personnes(Carnet* carnet) {
Personne* p1 = renvoie('A', '111111');
Personne* p2 = renvoie('B', '222222');
Personne* p3 = renvoie('C', '333333');
Personne* p4 = renvoie('D', '444444');
Personne* p5 = renvoie('E', '555555');
ajoute(carnet, p1);
ajoute(carnet, p2);
ajoute(carnet, p3);
ajoute(carnet, p4);
ajoute(carnet, p5);
affiche_carnet(carnet);
}
int main() {
Carnet carnet; // Création d'un carnet
carnet.nb_personne = 0; // Initialisation du nombre de personnes dans le
carnet
saisie_personnes(&carnet);
return 0;
}