Gestion d'une cave à vin.

Nous supposerons que l'utilisateur ne rentre que des entiers strictement positifs.

1) Définir le type vin basé sur une structure permettant de référencer les bouteilles d'un même vin d'une même année. Cette structure comprend le nom du vin sous forme d'une chaîne de caractères, son type sous forme d'une chaîne de caractères (rouge, blanc, rose, sur_lie, gris, verde, etc.), une année (un entier), et un nombre de bouteilles présentes dans la cave.

Ex :      muscadet sur_lie 2003 12
Beaune rouge 2005 7

Nous avons 12 bouteilles de muscadet sur lie de 2003 et 7 bouteilles de Beaune rouge de 2005

2) Définir le type cave comme un tableau de 50 vins. Le nombre de vins différents présent dans la cave sera géré avec un champ compteur.

3) Ecrire la procédure saisie_vin(E/S a : vin) qui saisit un vin

4) Ecrire la procédure saisie_vin_cave(E/S une_cave : cave) qui saisit une rentrée en cave d'un  vin. Elle utilisera la procédure saisie_vin(E/S a : vin).

5) Ecrire une procédure affiche_cave(E une_cave : cave) pour afficher tous les vins présents en cave. On affichera le numéro de case qui contient le vin. Cela sera utile pour que l'utilisateur puisse supprimer un vin. On pourra écrire et utiliser la procédure afficher_vin( E a :vin).

6) Ecrire une procédure affiche_cave_annee(E une_cave : cave, E annee : Naturel) pour afficher tous les vins présents en cave d'une année donnée. On affichera le numéro de case qui contient le vin. Cela sera utile pour que l'utilisateur puisse supprimer un vin.

7) Ecrire la procédure supprimer_vin(E/S Une_cave :cave, E num Naturel) qui supprime le vin de la cave.

8) Ecrire la procédure boire(E/S une_cave : cave) qui permet de retirer des bouteilles de la cave (pour les boire). On demandera à l'utilisateur le numéro de vin qu'il veut ainsi que le nombre de bouteilles. On gèrera intelligemment le destockage du vin. La procédure boire utilise supprimer_vin selon les cas.