Projet

Ce projet est à réaliser en binôme. Il est à rendre pour le 21 juin 2024 23h59. Votre fichier devra se nommer "nom1_nom2.zip" et être rendu dans un mail dont l'objet sera "[SE2A3][PA] Rendu projet". Aucun retard ne sera accepté. Aucune triche ne sera tolérée.

Une fonction non commentée ou non indentée ne sera pas prise en compte. Votre code devra impérativement compiler sans erreur et sans warnings. Fournissez un main qui test vos différentes fonctions, ainsi que des fichiers de test et un fichier readme.txt qui explique le fonctionnement de votre code et les difficultés rencontrés.

Vous prendrez garde à tester les cas d'erreur possible. Vous respecterez scrupuleusement les notations données. Vous optimiserez autant que possible vos algorithmes.

Principe

On souhaite gérer une collection d'album pour un passionnée de musique. Les albums sont classés par groupe, et pour chaque groupe ils sont classés par année de parution croissante. Pour chaque groupe, on connaitra uniquement le nom. Pour chaque album, on connaitra le nom du groupe, le nom de l'album, l'année de sortie et le nombre de chanson sur l'album.

On propose d'utiliser des structures de données pour représenter cette collection. Plus précisément, on définira un type construit "album". On utilisera un ABR pour stocker les groupes de façon ordonnée, et pour chaque groupe (c'est à dire pour chaque nœud de l'arbre), on aura une liste chaînée contenant les albums de ce groupe triés par année.

Spécification

Votre programme devra respecter les spécifications suivantes :

  • - vous définirez une structure pour représenter un album selon les spécifications données ci-dessus, et une structure pour un groupe permettant d'obtenir la structure finale souhaitée.
  • - Au moment d'entrer un album, toutes les opérations doivent être possibles : en ajouter un, en supprimer un, afficher la liste des album déjà entrés, ou effacer toute la liste.
  • - Votre programme ne déclenche aucune fuite mémoire.

Fonctionnalités

Le déroulement de votre programme devra être le suivant :

  1. Le programme demande la liste des albums. Quand le mot "fin" est entré, la saisie s'arrête.
  2. Affichage de la liste de tous les albums triés par groupe et par année.
  3. Affichage de la liste des groupes.