Votre programme devra assurer la gestion d'une bibliothèque de volumes.
Le premier type de n½ud en est un pour les volumes et est composé d'une cote, d'un titre, d'un auteur, d'un sujet, d'une année, d'un nom, d'une date et de 6 pointeurs.
Le 2e type de n½ud en est un pour les réservations et est composé d'un nom et d'un pointeur.
Il y a trois grandes structures de données à programmer :
Rayons : Multi-liste de n½uds de volumes. Elle est donc doublement chaînée sur les cotes ET sur les titres ET sur les auteurs. Elle est donc « triplement » triée. Elle a des pointeurs de début, des pointeurs de fin et n'est pas circulaire.
Prêts : Liste linéaire, simplement chaînée, triée sur la cote avec seulement un pointeur de début. Elle est également formée de n½uds de volumes (1 pointeur sur 6 servira).
Il n'y a pas de pointeur de fin et cette liste n'est pas circulaire.
Réservations : Vecteur de 10 enregistrements chacun décrivant une file d'attente. Chaque enregistrement sera formé d'une cote et des pointeurs de début et de fin de la file correspondante. Les files seront formées de n½uds de réservation.
Ce n'est pas une multi-files.
Vous devez gérer le menu suivant :
1) Achat d'un volume
2) Afficher les volumes sur les rayons (6 ordres)
3) Afficher les volumes prêtés, et la quantité
4) Afficher les réservations
5) Prêt
6) Réservation
7) Retour
8) Destruction d'un volume
9) FIN
1) Faire new et remplir le n½ud, sauf pour le nom et la date.
a. Mettre dans la multi-liste.
b. Refuser les doublons (cote).
2) Afficher dans les 6 sens de chaînage.
3) Afficher également la cote.
4) C'est évidemment les cotes et les noms qui nous intéressent.
5) Lire la cote.
a. Si elle n'existe pas, erreur.
b. Si elle existe, retirer de la multi-liste.
i. Ajouter le nom de l'emprunteur et la date de retour.
ii. Mettre dans la liste de prêts (un seul des 6 pointeurs servira).
6) Lire la cote.
a. Refuser s'il y a déjà 10 autres cotes de réservation.
b. Si on peut ajouter :
i. Faire new
ii. Lire le nom de la personne
iii. Ajouter dans la bonne file
7) Lire la cote (et cas d'erreur).
a. Si le volume est en réservation :
i. Le laisser dans la liste de prêts.
ii. Retirer le n½ud de la réservation.
iii. Mettre à jour le nom et la date.
iv. Détruire le n½ud de réservation.
b. Si le volume n'est pas en réservation :
i. Le retirer de la liste de prêts.
ii. L'insérer dans la multi-liste.
8) Lire la cote.
a. Si elle n'existe pas, erreur.
b. Sinon, retirer des rayons et détruire le n½ud.
