Académique Documents
Professionnel Documents
Culture Documents
TP3 : médiathèque
Dans ce TP, on se propose de construire un logiciel permettant de gérer une base de don-
nées de DVD, CD audios et livres. Une fois dans la base de données, un medium (DVD, CD
ou livre) peut être prêté à un ami, dans ce cas, l’utilisateur veut connaître le nom de cet ami et
pouvoir lister les livres qu’il a prêté. Il s’agit bien sûr d’un exercice qui permet d’appréhen-
der facilement le concept d’héritage : face à un tel problème il serait plus pertinent d’utiliser
une véritable base de donnée (type sqlite, mySQL, Oracle, etc.).
Les opérations demandées par votre client sont les suivantes :
— ajouter un médium (livre, CD, DVD) en précisant son titre, son auteur, sa date de
parution et ses caractéristiques propres (nombre de pages et éditeur pour un livre,
durée et nombre de morceaux pour un cd, durée pour un DVD) ;
— lister tous les médias (tous supports confondus) produits par un auteur donné (atten-
tion, un même auteur peut avoir produit, par exemple, un CD et un DVD) ;
— supprimer un medium identifié par un titre et un auteur ;
— supprimer tous les médias produits par un auteur donné ;
1. Pour faire une archive tar.gz : tar cvzf mon_archive.tar.gz mon_repertoire
ROB4 – POO 1 TP
— noter un médium identifié par son titre et son auteur comme prêté à un ami dont le
nom est précisé ;
— compter le nombre de medias prêtés.
Il n’est pas demandé d’interface utilisateur, sauf dans la toute dernière partie du sujet.
Les opérations doivent dans un premier lieu simplement être implémentées par des mé-
thodes (d’une classe Mediatheque par exemple), qui seront testées par des tests.
Proposez un diagramme de classes pour modéliser ce logiciel. Vous devez exploiter l’hé-
ritage et préciser toutes les méthodes et attributs qui vous semble utiles pour répondre au
cahier des charges. Afin de stocker les objets dans la médiathèque, vous devez utiliser un
attribut de type ArrayList (voir TP précédent).
2 Programmation (9 points)
Après avoir fait valider votre modélisation par l’enseignant, programmez le logiciel en
Java.
Attention : toutes les classes concrètes (non-abstraites) doivent être accompagnées de
tests (tests unitaires JUnit ou fonction main avec des tests).
3 Extension (2 points)
Modifiez votre modélisation et votre code pour ajouter un médium « article de maga-
zine » avec comme caractéristique propre (en plus de celles communes à tous les médias) le
nom du magazine, le numéro du magazine et l’intervalle des pages.
Afin de compléter notre logiciel, on veut pouvoir entrer dans le terminal chaque medium
que l’on ajoute à la bibliothèque. Pour lire une chaîne de caractères, on peut utiliser le code
suivant :
/ / en en−t e t e de f i c h i e r
import j a v a . u t i l . * ;
// ....
/ / dans v o t r e code
Scanner sc = new Scanner ( System . i n ) ;
System . o u t . p r i n t l n ( "entier ?" ) ;
i n t x = sc . n e x t I n t ( ) ;
System . o u t . p r i n t l n ( "chaine ?" ) ;
i n t y = sc . n e x t ( ) ;
Modifiez votre modélisation puis votre code pour pouvoir entrer des médias de cette ma-
nière. Attention, n’oubliez pas de faire en sorte que toutes les données spécifiques à chaque
médium soient entrées. Essayez de proposer une solution élégante « dans l’esprit de la pro-
grammation objet » qui nécessite le minimum de modifications lors de l’ajout de nouveaux
types de médias.
ROB4 – POO 2 TP