Année Académique 2024 - 2025
TP9 – SEMESTRE 2
Niveau : LICENCE Filières : Tronc Commun
Note à l’étudiant
Les données de cet énoncé seront enregistrées dans une base de données. Vous
utiliserez pleinement les principes de la POO pour réaliser les programmes
demandés.
EXERCICE : Gestion d’une médiathèque
Une université veut améliorer la gestion de sa médiathèque. Après analyse des
tâches à mener dans le projet, l’on vous demande de réaliser un système de gestion
des emprunts. Les interviews avec le gérant de la médiathèque ont permis de
résumer les différents besoins sous forme de phrase suivante :
La médiathèque enregistre chaque abonné en gardant les informations comme :
matricule de la carte d’abonné, nom, prénoms, sexe, date d’abonnement
(premier abonnement à la médiathèque).
Les ressources empruntées à la médiathèque sont de toutes sortes : livres
(roman, bande dessinée, articles…), films, cassettes audio ou cassettes vidéo.
Chaque ressource est enregistrée en plusieurs exemplaires dans la
médiathèque. Ainsi pour enregistrer chaque exemplaire, le gérant enregistre la
référence de la ressource, le numéro de l’exemplaire, le titre de la ressource, la
description de la ressource, le type de la ressource (livre / film / audio).
Le gérant enregistre pour chaque emprunt d’une ressource les informations
suivantes : la référence (numéro d’identification) de la ressource, le numéro
d’exemplaire, la date d’emprunt, le matricule de la carte de l’abonné et la date de
retour de la ressource empruntée.
Dans la médiathèque, quand un abonné ne trouve pas d’exemplaire d’une
ressource, il peut faire une réservation. Ainsi dès qu’un exemplaire de la
ressource est à nouveau disponible, le gérant remet immédiatement cet
Page 1 sur 3
exemplaire à l’auteur de la première réservation effectuée sur cette ressource.
Une réservation est semblable à un emprunt.
Pour une réservation, le gestionnaire enregistre la référence de la ressource, la
date de la réservation, le matricule de la carte d’abonné et l’état de la réservation
qui par défaut prend la valeur « Non servi ».
Une fois qu’un abonné aura effectué un retour d’un exemplaire de la ressource
réservée, le gestionnaire se charge de remettre l’exemplaire retourné à l’abonné dont
la date de réservation est la plus ancienne. L’état de la réservation de cet abonné
passera donc dans l’état « Servi ».
L’état de la réservation permet donc au gérant de savoir si oui ou non l’abonné ayant
fait la réservation a déjà été servi.
Travail à faire :
1. En utilisant les principes de la programmation orienté objet, faites les
déclarations requises en langage Python.
Dans vos déclarations, utilisez le mode de protection adéquat sur les informations :
matricule de la carte d’abonné, référence de la ressource, état de la réservation. Ces
informations ne doivent en aucun cas être « public ».
2. Proposez un menu de fonctionnalité dans votre application graphique, pour le
gestionnaire de la médiathèque.
Attention : Les fonctionnalités que vous proposerez doivent être pertinentes pour le
gestionnaire dans son travail (la gestion des emprunts dans son service).
Afin de mieux appréhender les tâches du gestionnaire, voici un exemple de scénarios
qui se présente dans sa médiathèque :
a. Deux nouveaux étudiants sont inscrits à la médiathèque : Paul TOTO et Pierre
TOTO
b. Paul emprunte à la médiathèque un exemplaire du livre « Les algorithmes avec
Python » (les retours des ressources se font après deux semaines depuis le jour
de l’emprunt).
c. Pierre veut emprunter le film « Opération Fortune : Ruse de Guerre », mais plus
aucun exemplaire n’est disponible. Il fait donc une réservation. Pour ce film, l’on
compte déjà deux réservations faites avant celle de Pierre. La première faite par
« Elodie » et la seconde faite par « Gaston ».
Page 2 sur 3
d. Enfin, un retour d’un exemplaire du film « Opération Fortune : Ruse de Guerre »
est effectuée deux jours après la demande de Pierre ; par conséquent au moins
une réservation sera satisfaite !
Rappels :
Utilisez le principe de l’héritage et du polymorphisme dans vos déclarations pour
améliorer la performance du futur système
N.B: Utilisez le module tkinter ou un module alternatif en Python pour réaliser
l’application graphique exigée
En appliquant le principe de l’encapsulation, tous les attributs seront publics sauf
les informations suivantes : matricule de la carte d’abonné, référence de la
ressource, état de la réservation.
Les dates peuvent être déclarées comme de type Date
Lors de l’implémentation du scénario, vous pouvez définir des valeurs arbitraires
seulement pour les informations manquantes. (Exemple : Les références des
ressources n’ont pas été défini, vous pourrez donc leur attribuer des valeurs de
votre choix)
La lecture de vos programmes doit être facilitée par une bonne indentation et par
une bonne utilisation des commentaires.
Utiliser le SGBD de votre choix pour la persistance des données.
Livrables:
Une vidéo démonstrative de l’application en utilisation (utiliser le scénario ci-
dessus)
Code source de votre programme
N.B: Utilisez le module tkinter ou un module alternatif en Python pour réaliser
l’application graphique exigée.
Un manuel de présentation en PDF nommée
NOM_PRENOMS_Manuel_Presentation qui présente les interfaces réalisées.
Un manuel technique en PDF nommée NOM_PRENOMS_Manuel_Technique qui
décrit la structure de votre base de données.
Le script SQL de création de la base de données à utiliser avec votre application.
Un rapport de TP bien au format PDF nommé : NOM_PRENOMS_RAPPORT-TP9
Page 3 sur 3