Projet de Programmation en Langage C
module I22, mai 2007.

Au final, il s'agit d'écrire une commande :
./genea nom  prenom fichier
qui affiche la généalogie d'une personne. 
    L'objectif pédagogique est d'approfondir les notions de pointeur, liste chainée et fichier texte et gestion des ensembles représentés par des listes chainées. Vous disposez de 6 séances de  3H pour implanter votre code.  Les types, procédure et fonctions sont décrites dans le sujet [ projet_I22.pdf ]. Les plus rapides pourront utiliser la commande dot pour produire une généalogie sous forme graphique. Vous consulterez le .man de dot comprendre comment transformer un fichier .dot en une image de format quelconque.
[ graphe.dot ] [ graphe.ps ]

    Vous trouverez dans cette page des éléments pour vous aider à démarrer votre projet : un fichier Makefile, un fichier de données data.txt, et deux sources preprojet.c (donnée à titre indicatif) et projet.c. Commencez par faire une copie de ces quatre fichiers dans un répertoire vide, puis lancez la commande make.  Vérifiez la présence de nouveaux fichiers...

    La commande projet.exe pend un nom de fichier en  argument et construit l'ensemble de toutes les personnes définies dans ce fichier.  Le programme termine par l'affichage de l'ensemble dans un format text.  Prenez le temps de faire quelques essais...

Cliquez sur L'image pour obtenir la représentation complète de l'ensemble des personnes du fichier data.txt. L'image illustre les liens qui sont construits dynamiquement sur le tas (zone mémoire) au moyen de la fonction void* malloc() pour implanter la structure d'ensemble. L'ensemble est matérialisé par le chainage rouge, chaque cellule pointe vers une personne, et chaque personne pointe vers des parents.
Les figures ci-dessus, sont obtenues par la commande preprojet.exe fichier -e. Le deuxième argument permet d'afficher  le graphe dans le langage de la (superbe) commande dot (projet graphviz) de sorte à construire une représentation graphique. Le fichier postscript  data.ps est l'image construite à partir du fichier data.txt par l'intermédiaire de la commande make.

Ph. Langevin, mai 2007.