TP 1

On s'intéresse à un programme permettant de gérer un annuaire de personne avec plusieurs informations. Utilisez le squelette fournie dans le fichier tp1_PrenomNom.c en changeant le nom du fichier pour inclure votre nom.

    Dates

  1. Définir le type Date permettant de représenter une date avec jour, mois et année.
  2. Écrire une fonction lire_date qui prend en paramètre un pointeur sur une structure Date et permet l'initialiser et de lire une date au clavier.
  3. Écrire une fonction affiche_date qui affiche une date passée en paramètre.
  4. Ajouter une fonction compare_date prenant en paramètre deux dates, qui renvoie -1 si la première est plus ancienne, 1 si c'est la deuxième, 0 si elles sont égales.
  5. Personne

  6. Définir le type Personne, avec nom, prenom, date_naissance, numero de téléphone
  7. Écrire une fonction lire_personne qui permet de lire les données d’une personne au clavier.
  8. Écrire une fonction affiche_personne qui affiche une personne p passée en paramètre. Tester.
  9. Listes chaînées

    Le principe d'une liste chaînée est le suivant : une structure "cellule" possède deux champs, le premier étant un élément de la liste et le second un pointeur vers la cellule suivante. Une deuxième structure "liste" possède un pointeur vers le premier élément de la liste et un entier qui stocke le nombre d'élément de la liste. Ainsi, depuis une instance de la structure liste, on peut accéder au premier élément, puis naviguer de pointeur en pointeur pour parcourir la liste. Nous allons utiliser cette structure de données pour créer un annuaire.

  10. Créez les structures nécessaires pour obtenir une liste de personnes dans une structure qu'on appelera un annuaire.
  11. Créez une fonction init_annuaire permettant d'initialiser un annuaire vide.
  12. Ajoutez la fonction remplir_annuaire qui permet à l'utilisateur d'ajouter autant de personne qu'il le souhaite dans l'annuaire. L'utilisateur doit indiquer en parmaètre de la fonction combien de personnes il souhaite ajouter. Si vous ne savez pas comment utiliser scanf avec une chaîne de caractère, regardez sur internet. ATTENTION : un annuaire est nécessairement trié par ordre alphabétique. Utilisez pour cela la fonction strcmp.
  13. Implémentez la fonction affiche_annuaire.
  14. Créez une fonction supprimer_nom qui permet de supprimer une personne de l'annuaire à partir de son nom.
  15. Créez la fonction recherche qui permet de rechercher si un élément est présent dans la liste. La fonction affichera toutes les informations de la personne si elle est présente dans l'annuaire, ou la phrase "Personne à ce nom dans l'annuaire" sinon. Si plusieurs contacts ont le même nom, il faut tous les afficher. ATTENTION : évitez les traitements inutiles.
  16. Écrire une fonction modifier_num qui permette à l'utilisateur de modifier le numéro de téléphone d'une personne à partir de son nom.
  17. Ajouter une fonction supprimer_annuaire permettant de supprimer complètement un annuaire et de libérer la mémoire.