Projet : Système de Gestion de Bibliothèque Complète
Difficulté : ★★★★☆ (Difficile)
Durée estimée : 4-5 heures
Description
Développez un système complet de gestion de bibliothèque avec gestion des livres,
membres, emprunts/retours, pénalités de retard, réservations, historique complet et
système de recommandations basé sur les lectures précédentes.
Structures de données à utiliser
• Dictionnaires complexes : Livres, membres, emprunts, réservations
• Listes : Historique, file d'attente des réservations
• Ensembles : Genres, auteurs, mots-clés
• Tuples : Catégories de membres avec privilèges
• Fichiers : JSON (sauvegarde), CSV (exports), TXT (rapports)
Menu principal
═══════════════════════════════════
GESTION DE BIBLIOTHÈQUE
═══════════════════════════════════
--- GESTION DES LIVRES ---
1. Ajouter un livre
2. Rechercher un livre
3. Afficher tous les livres
4. Modifier un livre
5. Supprimer un livre
--- GESTION DES MEMBRES ---
6. Inscrire un membre
7. Afficher les membres
8. Modifier un membre
9. Historique d'un membre
--- EMPRUNTS ET RETOURS ---
10. Emprunter un livre
11. Retourner un livre
12. Prolonger un emprunt
13. Emprunts en cours
14. Livres en retard
15. Calculer pénalités
--- RÉSERVATIONS ---
16. Réserver un livre
17. Annuler une réservation
18. File d'attente
--- STATISTIQUES ET RAPPORTS ---
19. Statistiques globales
20. Top 10 livres populaires
21. Membres les plus actifs
22. Recommandations personnalisées
23. Rapport mensuel (TXT)
--- IMPORT/EXPORT ---
24. Exporter catalogue (CSV)
25. Importer livres (CSV)
26. Backup complet (JSON)
27. Restaurer backup
0. Quitter et sauvegarder
Votre choix :
Fonctionnalités détaillées
Gestion des Livres
1. Ajouter un livre
• ISBN (unique), titre, auteur(s), genre, année, éditeur
• Nombre d'exemplaires, localisation (rayon)
• Mots-clés pour recherche avancée
2. Rechercher un livre
• Par ISBN, titre, auteur, genre, mots-clés
• Recherche partielle (insensible à la casse)
• Afficher disponibilité en temps réel
Gestion des Membres
6. Inscrire un membre
• Informations : nom, prénom, email, téléphone, adresse
• Type de membre : Standard (3 livres max) / Premium (5 livres max)
• Date d'inscription, numéro de carte unique
9. Historique d'un membre
• Tous les emprunts passés avec dates
• Nombre total de livres empruntés
• Genres préférés, pénalités payées
Emprunts et Retours
10. Emprunter un livre
• Vérifier : livre disponible, limite d'emprunts non atteinte, pas de pénalités
impayées
• Durée d'emprunt : 14 jours (Standard) / 21 jours (Premium)
• Enregistrer date d'emprunt et date de retour prévue
12. Prolonger un emprunt
• Prolongation possible 1 fois (7 jours supplémentaires)
• Impossible si livre réservé par un autre membre
15. Calculer pénalités
• 0.50€ par jour de retard
• Bloquer emprunts si pénalités > 10€
Réservations
16. Réserver un livre
• Possible uniquement si livre actuellement emprunté
• File d'attente FIFO (First In First Out)
• Notification automatique quand livre disponible (affichage)
18. File d'attente
• Afficher pour chaque livre la liste des membres en attente
Statistiques et Recommandations
19. Statistiques globales
• Nombre total de livres / membres / emprunts en cours
• Taux d'occupation (livres empruntés / total)
• Total des pénalités collectées
22. Recommandations personnalisées
• Analyser l'historique du membre
• Identifier genres et auteurs préférés
• Suggérer 5 livres similaires disponibles
Structures de données
# Livre
{
'isbn': '978-2070612758',
'titre': 'Le Petit Prince',
'auteurs': ['Antoine de Saint-Exupéry'],
'genre': 'Roman',
'annee': 1943,
'editeur': 'Gallimard',
'exemplaires_total': 3,
'exemplaires_disponibles': 1,
'rayon': 'A3',
'mots_cles': ['enfance', 'voyage', 'philosophie'],
'nb_emprunts': 47
}
# Emprunt
{
'id': 'EMP001',
'membre_id': 'M001',
'isbn': '978-2070612758',
'date_emprunt': '2024-01-15',
'date_retour_prevue': '2024-01-29',
'date_retour_effective': None,
'prolonge': False,
'penalite': 0.0
}
# Membre
{
'id': 'M001',
'nom': 'Dupont',
'prenom': 'Marie',
'email': '[Link]@[Link]',
'telephone': '0612345678',
'date_inscription': '2023-09-15',
'date_naissance': '1995-03-22',
'adresse': '15 rue des Lilas, 75001 Paris',
'type': 'Standard', # ou 'Premium', 'Etudiant'
'statut': 'Actif', # ou 'Inactif', 'Suspendu'
'emprunts_en_cours': ['EMP001'],
'historique_emprunts': ['EMP045', 'EMP032', 'EMP001'],
'nb_emprunts_total': 12,
'penalites_total': 5.50,
'limite_emprunts': 5, # nombre max d'emprunts simultanés
'commentaires': ''
}