2/3
● Commencer par vous assurer de la bonne compréhension des fonctions données dans tree.c et
list.c.
● Faites les modifications pas à pas. Modifiez les fonction de list.c de manière à ce que la structure
de liste contienne des chaines de caractères plutôt que des entiers. Ensuite créez une structure de
données représentant un album (un titre plus une liste de chansons) puis modifiez tree.c pour que
l'arbre contienne des albums et non des entiers. Assurez vous que chaque étape terminée ne
comporte pas d'erreur avant d'aller plus loin... (utilisez valgrind)
Conseils de qualité logicielle (ces paramètres seront utilisé lors de l'évaluation de votre travail)
● Pensez aux cas rares (arbres ou listes vides par exemple), ces cas ne doivent pas faire planter
votre programme.
● Commentez intelligement votre programme.
● Utilisez l'option de compilation “-Wall” (pour indiquer tous les warning), cela vous evitera bien
des erreurs...
● Utilisez valgrind à chaque étapes et sur des exemples differents pour bien vous assurer de
l'absence d'erreur d'utilisation de pointeurs, et de fuite mémoire (oublis de désallocation mémoire
en fin de programme). Voir plus bas dans ce document pour plus d'information sur l'utilisation de
valgrind.
Ce que doit faire le programme
Le programme doit lire un fichier texte contenant les informations de la base de données, et
construire l'arbre équilibré correspondant en mémoire. Ce fichier doit avoir le format suivant :
#nom d'album 1
nom de chanson 1
nom de chanson 2
etc..
#nom d'album2
nom de chanson 1
nom de chanson 2
etc...
Les noms d'album sont précédés d'un # et la liste de chansons correspondantes suit et ainsi de suite
jusqu'à la fin du fichier.
Je vous laisse le soin d'éditer un tel fichier, avec vos albums préférés.
Pour ouvrir ce fichier vous utiliserez les fonctions fopen , fgets , fclose pour respectivement ouvrir,
lire, fermer un fichier. Utilisez la commande man dans un terminal pour avoir le prototype exact de
ces fonctions (ou n'importe quel livre sur le langage C vous renseignera).
Vous ferez ensuite un systême de menu simplifié en utilisant l'entrée standard (via la fonction
scanf). L'utilisateur devra pouvoir :
● Afficher tout le contenu de l'arbre (titres et chansons de tous les albums en mémoire)
● Rechercher un Album par son titre (dire si il est présent ou non, afficher, les titres des chansons
correspondantes).
● Ajouter un album en mémoire (dans l'arbre)
● Sortir du programme (n'ouliez pas de désallouer la mémoire utilisée.)
Informations pratiques
● Il s'agit d'un travail personnel.
●
Vous rendrez votre travail via mail à [email protected] (attention, seul le 1er envoi fait foi, les