From 41d36548d2d71f2729f65eef85628d270483a1ae Mon Sep 17 00:00:00 2001 From: "delphine.thevenot" Date: Wed, 24 Sep 2025 10:44:11 +0200 Subject: [PATCH] =?UTF-8?q?m=C3=A0j=20pour=20version=20initialeV2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mycompany/bibliotheque/Bibliotheque.java | 32 +++++++++++++++++ .../com/mycompany/bibliotheque/Emprunt.java | 23 ++++++++++++ .../com/mycompany/bibliotheque/Livre.java | 14 +++++++- .../mycompany/bibliotheque/Utilisateur.java | 35 +++++++++++++++++++ .../com/mycompany/bibliotheque/LivreTest.java | 4 +-- 5 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/mycompany/bibliotheque/Bibliotheque.java create mode 100644 src/main/java/com/mycompany/bibliotheque/Emprunt.java create mode 100644 src/main/java/com/mycompany/bibliotheque/Utilisateur.java diff --git a/src/main/java/com/mycompany/bibliotheque/Bibliotheque.java b/src/main/java/com/mycompany/bibliotheque/Bibliotheque.java new file mode 100644 index 0000000..ebd2f43 --- /dev/null +++ b/src/main/java/com/mycompany/bibliotheque/Bibliotheque.java @@ -0,0 +1,32 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.mycompany.bibliotheque; + +import java.util.Scanner; + +/** + *1 + * @author dthev + */ +public class Bibliotheque { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + Livre l1 = new Livre("Le secret des secrets","Dan Brown","9782709668385",false); + Utilisateur u1 = new Utilisateur("Alice"); + + System.out.println("Bienvenue dans la bibliothèque !"); + System.out.println("1. Afficher un livre"); + System.out.println("2. Emprunter un livre"); + System.out.println("Votre choix : "); + int choix = sc.nextInt(); + if (choix == 1) { + System.out.println("Livre : " + l1.getTitre()); + } else if (choix == 2) { + boolean ok = Emprunt.effectuerEmprunt(u1, l1); + System.out.println(ok ? "Emprunt réussi !" : "Échec de l'emprunt."); + } + } + +} diff --git a/src/main/java/com/mycompany/bibliotheque/Emprunt.java b/src/main/java/com/mycompany/bibliotheque/Emprunt.java new file mode 100644 index 0000000..3ae65cb --- /dev/null +++ b/src/main/java/com/mycompany/bibliotheque/Emprunt.java @@ -0,0 +1,23 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.mycompany.bibliotheque; + +/** + * + * @author dthev + */ +public class Emprunt { + // TODO: logique métier d'emprunt + public static boolean effectuerEmprunt(Utilisateur u, Livre l) { + if (l.isEmprunte()) { + return false; // déjà emprunté + } + if (u.getEmprunts().size() >= 3) { + return false; // trop de livres empruntés + } + l.setEmprunte(true); + return u.emprunterLivre(l); + } +} diff --git a/src/main/java/com/mycompany/bibliotheque/Livre.java b/src/main/java/com/mycompany/bibliotheque/Livre.java index c936bb7..5344ad4 100644 --- a/src/main/java/com/mycompany/bibliotheque/Livre.java +++ b/src/main/java/com/mycompany/bibliotheque/Livre.java @@ -13,13 +13,16 @@ public class Livre { private String titre; private String auteur; private String isbn; // ISBN sous forme de chaîne + private Boolean emprunte; - public Livre(String titre, String auteur, String isbn) { + public Livre(String titre, String auteur, String isbn, Boolean emprunte) { this.titre = titre; this.auteur = auteur; this.isbn = isbn; + this.emprunte = emprunte; } + //getters et setters public String getTitre() { return titre; } @@ -44,6 +47,15 @@ public class Livre { this.isbn = isbn; } + public boolean isEmprunte() { + return emprunte; + } + + public void setEmprunte(boolean emprunte) { + this.emprunte = emprunte; + } + + } diff --git a/src/main/java/com/mycompany/bibliotheque/Utilisateur.java b/src/main/java/com/mycompany/bibliotheque/Utilisateur.java new file mode 100644 index 0000000..9250ff3 --- /dev/null +++ b/src/main/java/com/mycompany/bibliotheque/Utilisateur.java @@ -0,0 +1,35 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.mycompany.bibliotheque; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * @author dthev + */ +public class Utilisateur { + private String nom; + private List emprunts; + + public Utilisateur(String nom) { + this.nom = nom; + this.emprunts = new ArrayList<>(); + } + + public String getNom() { + return nom; + } + + public List getEmprunts() { + return emprunts; + } + + // TODO: ajouter un emprunt si l'utilisateur a moins de 3 livres + public boolean emprunterLivre(Livre livre) { + return false; // à compléter + } +} diff --git a/src/test/java/com/mycompany/bibliotheque/LivreTest.java b/src/test/java/com/mycompany/bibliotheque/LivreTest.java index 4d4aca4..38e063d 100644 --- a/src/test/java/com/mycompany/bibliotheque/LivreTest.java +++ b/src/test/java/com/mycompany/bibliotheque/LivreTest.java @@ -10,8 +10,8 @@ import static org.junit.Assert.*; public class LivreTest { @Test - public void testBookCreation() { - Livre b = new Livre("1984", "George Orwell", "1234567890123"); + public void testCreationLivre() { + Livre b = new Livre("1984", "George Orwell", "1234567890123",false); assertEquals("1984", b.getTitre()); assertEquals("George Orwell", b.getAuteur()); assertEquals("1234567890123", b.getIsbn());