Menu
Coddy logo textTech

Système d'emprunt

Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy — leçon 103 sur 110.

challenge icon

Défi

Facile

Dans la leçon précédente, vous avez créé les classes Book et User avec des propriétés de base. Il est maintenant temps de construire un véritable système d'emprunt avec une classe Library qui gère l'ensemble du processus d'emprunt.

Vous allez créer un nouveau fichier et mettre à jour vos fichiers existants pour implémenter la logique d'emprunt :

  • book.dart : Conservez votre classe Book existante avec isbn, title, author, isAvailable et toString().
  • user.dart : Conservez votre classe User existante avec id, name, borrowedBooks et toString().
  • library.dart : Créez une nouvelle classe Library qui gère les livres et les utilisateurs. Elle doit avoir deux listes : une pour books et une pour users. Incluez des méthodes pour :
    • addBook(Book book) - ajoute un livre à la collection de la bibliothèque
    • registerUser(User user) - ajoute un utilisateur à la bibliothèque
    • borrowBook(String isbn, String userId) - trouve le livre et l'utilisateur, puis si le livre existe, est disponible, et que l'utilisateur existe, marque le livre comme indisponible, l'ajoute aux livres empruntés par l'utilisateur, et affiche userId borrowed "title". Si le livre n'existe pas, affiche Book not found. Si le livre n'est pas disponible, affiche Book not available. Si l'utilisateur n'existe pas, affiche User not found.
    • returnBook(String isbn, String userId) - trouve le livre et l'utilisateur, puis si les deux existent et que l'utilisateur possède ce livre, marque le livre comme disponible, le retire des livres empruntés par l'utilisateur, et affiche userId returned "title". Si le livre n'existe pas, affiche Book not found. Si l'utilisateur n'existe pas, affiche User not found.
  • main.dart : Importez tous vos fichiers et faites une démonstration du système d'emprunt. Créez une Library, ajoutez deux livres (978-0-13-468599-1, The Pragmatic Programmer, David Thomas et 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford), et enregistrez un utilisateur (U001, Alice Johnson). Ensuite :
    1. Empruntez le premier livre pour Alice
    2. Essayez d'emprunter à nouveau le même livre (cela devrait échouer)
    3. Empruntez le deuxième livre pour Alice
    4. Affichez Alice pour montrer son nombre de livres empruntés
    5. Rendez le premier livre
    6. Affichez à nouveau Alice pour montrer le nombre mis à jour

Résultat attendu :

U001 borrowed "The Pragmatic Programmer"
Book not available
U001 borrowed "JavaScript: The Good Parts"
User U001: Alice Johnson (2 books borrowed)
U001 returned "The Pragmatic Programmer"
User U001: Alice Johnson (1 books borrowed)

Essayez vous-même

import 'book.dart';
import 'user.dart';
import 'library.dart';

void main() {
  // TODO: Créer une instance de Library
  
  // TODO: Créer deux livres :
  // - Livre 1 : isbn '978-0-13-468599-1', title 'The Pragmatic Programmer', author 'David Thomas'
  // - Livre 2 : isbn '978-0-596-51774-8', title 'JavaScript: The Good Parts', author 'Douglas Crockford'
  
  // TODO: Ajouter les deux livres à la bibliothèque
  
  // TODO: Créer un utilisateur avec l'id 'U001' et le name 'Alice Johnson'
  
  // TODO: Enregistrer l'utilisateur auprès de la bibliothèque
  
  // TODO: Emprunter le premier livre pour Alice
  
  // TODO: Essayer d'emprunter à nouveau le même livre (devrait échouer avec 'Book not available')
  
  // TODO: Emprunter le deuxième livre pour Alice
  
  // TODO: Afficher Alice pour montrer son nombre d'emprunts
  
  // TODO: Retourner le premier livre
  
  // TODO: Afficher à nouveau Alice pour montrer le nombre mis à jour
}

Toutes les leçons de Programmation Orientée Objet