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 créer 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 les books et une pour les 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) - recherche 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, affichez Book not found. Si le livre n'est pas disponible, affichez Book not available. Si l'utilisateur n'existe pas, affichez User not found.
    • returnBook(String isbn, String userId) - recherche 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, affichez Book not found. Si l'utilisateur n'existe pas, affichez 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 inscrivez un utilisateur (U001, Alice Johnson). Ensuite :
    1. Empruntez le premier livre pour Alice
    2. Essayez d'emprunter à nouveau le même livre (l'opération doit échouer)
    3. Empruntez le deuxième livre pour Alice
    4. Affichez Alice pour voir le nombre de livres qu'elle a empruntés
    5. Retournez le premier livre
    6. Affichez à nouveau Alice pour voir le nombre mis à jour

Sortie attendue :

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

Entraînez-vous par vous-même : Compilateur Dart en ligne