Exercice langage C : Répertoire téléphonique
Rédigé par GC Team, Publié le 23 Février 2012, Mise à jour le Lundi, 07 Novembre 2022 15:00On veut gérer un répertoire téléphonique (contenant les noms et numéros de téléphones de personnes).
- définir un type de structure PERS qui contient deux champs : le nom d'une personne et son numéro de téléphone
- écrire une fonction saisir_personne qui permet de saisir une personne (une structure de type PERS)
- écrire une fonction saisir_repertoire qui permet de saisir un tableau de personnes
- écrire une fonction afficher_repertoire qui permet d'afficher le contenu du répertoire
- écrire une fonction chercher_personne qui permet de chercher un numéro d'une personne donnée dans le répertoire
- écrire une fonction main qui saisit un répertoire téléphonique et propose le dialogue suivant :
- 1- afficher le contenu du répertoire
- 2- chercher le numéro de téléphone d'une personne
- 3- quitter le Programme
#include
#include
struct personne
{
char nom[20]; /* Le nom de la personne */
char numero[11]; /* le numero de telephone */
};
typedef struct personne PERS;
void saisir_personne(PERS *pp);
void saisir_repertoire(PERS rep[], int nb);
void afficher_repertoire(PERS rep[], int nb);
char *chercher_personne(PERS rep[], int nb, char *nom);
int main()
{
PERS monRep[5];
int choix;
char nom[20], *pnum;
saisir_repertoire(monRep, 5);
do
{
do
{
printf("\nMenu:\n");
printf("1-afficher le contenu du répertoire\n");
printf("2-chercher le numéro d'une personne\n");
printf("3-quitter le programme\n");
printf("Votre choix : ");
scanf("%d", &choix);
}
while (choix < 1 || choix > 3);
switch (choix)
{
case 1 : afficher_repertoire(monRep, 5);
break;
case 2 : printf("nom a rechercher : ");
scanf("%s", nom);
pnum = chercher_personne(monRep, 5, nom);
if (pnum == NULL)
{
printf(" Personne inexistante\n");
}
else
{
printf("--> Numero de %s: %s\n", nom, pnum);
}
break;
default : break;
}
}
while (choix != 3);
return 0;
}
void saisir_personne(PERS *pp)
{
printf("Nom : "); scanf("%s", pp->nom);
printf("Numero : "); scanf("%s", pp->numero);
}
void saisir_repertoire(PERS rep[], int nb)
{
int i;
printf("Saisie du repertoire de %d personnes :\n", nb);
for (i=0; i<nb; i++)
{
saisir_personne(&rep[i]);
}
}
void afficher_repertoire(PERS rep[], int nb)
{
int i;
printf("Affichage du repertoire\n");
printf("%20s ...... Numero\n", "Nom");
for (i=0; i<nb; i++)
{
printf("%20s ...... %s\n", rep[i].nom, rep[i].numero);
}
}
char *chercher_personne(PERS rep[], int nb, char *nom)
{
int i;
for (i=0; i<nb; i++)
{
if (strcmp(nom, rep[i].nom) == 0)
{
return rep[i].numero;
}
}
return NULL;
}