Faculté Electronique et Informatique                                                                                                                                           USTHB 2018/2019

Département Informatique

Module ALGO (L2)

TP

 

On se propose d’écrire un programme en C qui gère une bibliotheque. Pour cela on utilisera la structure de données montrée ici-bas. On utilisera une table de 26 entrées dont chaque entrée contiendra la tête et la queue de la liste bidirectionnelle correspondante. La première entrée contiendra la tête et la queue de la liste des livres dont le titre commence par ‘a’, la deuxième entrée contiendra la tête et la queue de la liste des livres dont le titre commence par ‘b’, la troisième celle des livres dont le titre commence par ‘c’ et ainsi de suite. Les listes des livres sont triées par ordre croissant suivant le titre du livre. Titre/Auteur sont des pointeurs vers des chaines de caractères dont l’espace est alloué dynamiquement. Chaque livre a aussi comme attributs NbTot le nombre total de copies du livre initialement disponibles, NbDisp le nombre courant de copies du livre disponibles, un pointeur comme tete de la liste des emprunteurs et 2 autres pointeurs tete et queue de la liste bidirectionnelle qui represente la file d’attente des emprunteurs.

 

 

Le programme principal doit tout d’abord appeler une fonction qui crée cette structure de données à partir d’un fichier texte. Ensuite le programme principal affichera de manière répétitive un menu offrant à l’utilisateur de choisir les fonctionnalités suivantes:

  1. Afficher la liste de tous les livres sur écran. L’affichage se fera par liste de 4 caractères à la fois et une fois cela fait le programme demandera à l’utilisateur s’il veut continuer l’affichage de la liste des livres pour les 4 prochains caractères.

  2. Rechercher un livre et afficher toutes ses informations.

  3. Ajouter une copie d’un livre existant.

  4. Ajouter un nouveau livre

  5. Emprunter un Livre.

  6. Rendre un Livre.

  7. Quitter le programme. Avant de quitter définitivement le programme il faudra libérer tous les espaces alloués dynamiquement,

Noter que un emprunteur est identifie par un nom et un prenom.

Il est important de bien analyser le problème et de le décomposer en modules (fonctions). Ne pas oublier de traiter tous les cas d’erreurs.

 

Le TP doit être réalisé en binôme. Un rapport expliquant les traitements effectués (le rapport doit être clairement rédigé) doit être rendu. Le rapport, ainsi que le CD/usb flash disk contenant le programme (source et exécutable) doivent être remis.