Exercice 1 :

Tester l'exo2 du TD

Exercice 2 : Bibliothèque

Pour la gestion d'une bibliothèque, on vous demande d'écrire une application traitant des documents de nature diverse : des livres, qui peuvent être des romans ou des manuels, des revues, des dictionnaires, etc.

Tous les documents ont un numéro d'enregistrement (un entier) et un titre (une chaîne de caractères). Les livres ont, en plus, un auteur (une chaîne de caractères) et un nombre de pages (un entier). Les romans ont éventuellement un prix littéraire (une chaîne de caractères, par exemple : Goncourt, Médicis, Femina, etc.), tandis que les manuels, en plus d'un auteur, ont un niveau scolaire (un entier). Les revues ont un mois et une année (des entiers) et les dictionnaires ont une langue (une chaîne de caractères convenue, comme "anglais", "allemand", "espagnol", etc.).

Tous les divers objets en question ici (livres, revues, dictionnaires, romans, etc.) doivent pouvoir être manipulées en tant que documents.

Sur papier : proposez une hiérarchie pour les classes Document, Livre, Roman, Manuel, Revue, Dictionnaire. Dites dans quelle classe vous déclarez quel attribut. Sur machine : on n'implémentera que les classes Document, Livre et Roman.

Écrivez un constructeur (ou plusieurs, si cela vous semble nécessaire) pour les classes Document, Livre et Roman. Les documents doivent être automatiquement numérotés en commençant par le numéro 1. Vous utiliserez super(...) dans les constructeurs des classes filles.

Écrivez pour les classes Document, Livre et Roman une méthode toString() produisant une description sous forme de chaîne de caractères des objets. Pensez à utiliser super.toString() dans les classes filles.

La classe Bibliotheque : une bibliothèque sera représentée par un tableau de documents. Définissez une classe Bibliothèque, avec un tel tableau comme attribut et les méthodes et constructeurs :