0% found this document useful (0 votes)
23 views13 pages

Guide Pas A Pas Bibliotheque Java

Uploaded by

bintinazraa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views13 pages

Guide Pas A Pas Bibliotheque Java

Uploaded by

bintinazraa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Guide Pas-à-Pas : Système de Gestion de Bibliothèque en Java

1. Mise en Place du Projet

Créer la Structure des Répertoires du Projet :


Créer des packages :
- modèles pour les classes principales (Livre, Utilisateur, etc.).
- services pour les fonctionnalités de gestion de la bibliothèque.
- utils pour les classes ou méthodes utilitaires si nécessaire.

Configurer la Classe Principale :


Créer une classe principale dans le package racine pour gérer le point d'entrée de
l'application.

2. Définir la Classe Abstraite Book


Package : modèles

Code : Java

package models;

public abstract class Book {

private String title;

private String author;

private String ISBN;

private boolean isAvailable;

public Book(String title, String author, String ISBN) {

this.title = title;

this.author = author;

this.ISBN = ISBN;

this.isAvailable = true; // Default: available

Page 1 / 13
public String getTitle() {

return title;

public String getAuthor() {

return author;

public String getISBN() {

return ISBN;

public boolean isAvailable() {

return isAvailable;

public void setAvailable(boolean available) {

isAvailable = available;

public abstract double calculateLateFees(int daysLate);

@Override

public String toString() {

return "Book{" +

Page 2 / 13
"title='" + title + '\'' +

", author='" + author + '\'' +

", ISBN='" + ISBN + '\'' +

", isAvailable=" + isAvailable +

'}';

3. Créer des Sous-classes de Book


Package : modèles

Exemples : Java

package models;

public class FictionBook extends Book {

public FictionBook(String title, String author, String ISBN) {

super(title, author, ISBN);

@Override

public double calculateLateFees(int daysLate) {

return daysLate * 1.5; // Fiction: $1.5 per day

public class NonFictionBook extends Book {

public NonFictionBook(String title, String author, String ISBN) {

super(title, author, ISBN);

Page 3 / 13
}

@Override

public double calculateLateFees(int daysLate) {

return daysLate * 2.0; // Non-Fiction: $2 per day

4. Définir la Classe User


Package : modèles

Code : Java

package models;

import java.util.ArrayList;

public class User {

private String name;

private String userType; // e.g., Member, Librarian

private ArrayList<Book> borrowedBooks;

public User(String name, String userType) {

this.name = name;

this.userType = userType;

this.borrowedBooks = new ArrayList<>();

public String getName() {

Page 4 / 13
return name;

public String getUserType() {

return userType;

public ArrayList<Book> getBorrowedBooks() {

return borrowedBooks;

public void borrowBook(Book book) {

if (book.isAvailable()) {

borrowedBooks.add(book);

book.setAvailable(false);

System.out.println(name + " borrowed " + book.getTitle());

} else {

System.out.println(book.getTitle() + " is not available.");

public void returnBook(Book book) {

if (borrowedBooks.contains(book)) {

borrowedBooks.remove(book);

book.setAvailable(true);

System.out.println(name + " returned " + book.getTitle());

Page 5 / 13
} else {

System.out.println("Book not found in " + name + "'s borrowed list.");

@Override

public String toString() {

return "User{" +

"name='" + name + '\'' +

", userType='" + userType + '\'' +

", borrowedBooks=" + borrowedBooks +

'}';

5. Créer la Classe Library


Package: services

Code : Java

package services;

import models.Book;

import models.User;

import java.util.ArrayList;

public class Library {

private ArrayList<Book> books;

Page 6 / 13
private ArrayList<User> users;

public Library() {

this.books = new ArrayList<>();

this.users = new ArrayList<>();

public void addBook(Book book) {

books.add(book);

System.out.println(book.getTitle() + " added to the library.");

public void addUser(User user) {

users.add(user);

System.out.println(user.getName() + " registered as a user.");

public void displayAvailableBooks() {

System.out.println("Available Books:");

for (Book book : books) {

if (book.isAvailable()) {

System.out.println(book);

Page 7 / 13
public User findUser(String name) {

for (User user : users) {

if (user.getName().equalsIgnoreCase(name)) {

return user;

return null;

6. Implémenter la Classe Main


Package: root package

Code : Java

import models.FictionBook;

import models.NonFictionBook;

import models.User;

import services.Library;

public class Main {

public static void main(String[] args) {

Library library = new Library();

// Adding Books

library.addBook(new FictionBook("The Great Gatsby", "F. Scott Fitzgerald", "12345"));

library.addBook(new NonFictionBook("Sapiens", "Yuval Noah Harari", "67890"));

Page 8 / 13
// Adding Users

User user1 = new User("Alice", "Member");

User user2 = new User("Bob", "Member");

library.addUser(user1);

library.addUser(user2);

// Display Books

library.displayAvailableBooks();

// Borrow and Return Books

user1.borrowBook(library.findUser("Alice").getBorrowedBooks().get(0));

library.displayAvailableBooks();

user1.returnBook(library.findUser("Alice").getBorrowedBooks().get(0));

library.displayAvailableBooks();

7. Définir l’interface Autorisable

package models;

public interface Autorisable {

boolean hasPermission(String action);

8. Implémenter l’interface Autorisable dans la classe User

package models;

Page 9 / 13
import java.util.ArrayList;

public class User implements Autorisable {

private String name;

private String userType; // e.g., "Member", "Librarian"

private ArrayList<Book> borrowedBooks;

public User(String name, String userType) {

this.name = name;

this.userType = userType;

this.borrowedBooks = new ArrayList<>();

public String getName() {

return name;

public String getUserType() {

return userType;

public ArrayList<Book> getBorrowedBooks() {

return borrowedBooks;

@Override

Page 10 / 13
public boolean hasPermission(String action) {

if (userType.equalsIgnoreCase("Librarian")) {

// Librarians have permission for all actions

return true;

} else if (userType.equalsIgnoreCase("Member")) {

// Members can only borrow and return books

return action.equalsIgnoreCase("borrow") || action.equalsIgnoreCase("return");

// Default: No permission

return false;

9. Augmenter la classe Library pour intégrer les permissions

package services;

import models.Book;

import models.User;

import java.util.ArrayList;

public class Library {

private ArrayList<Book> books;

private ArrayList<User> users;

Page 11 / 13
public Library() {

this.books = new ArrayList<>();

this.users = new ArrayList<>();

public void addBook(Book book, User user) {

if (user.hasPermission("addBook")) {

books.add(book);

System.out.println(book.getTitle() + " added to the library by " + user.getName());

} else {

System.out.println(user.getName() + " does not have permission to add books.");

public void borrowBook(User user, Book book) {

if (user.hasPermission("borrow") && book.isAvailable()) {

user.borrowBook(book);

} else {

System.out.println(user.getName() + " cannot borrow the book.");

10. Démontrer l’usage de l’interface Autorisable et les vérifications de permission

import models.*;

Page 12 / 13
import services.*;

public class Main {

public static void main(String[] args) {

Library library = new Library();

// Create books

Book book1 = new FictionBook("The Hobbit", "J.R.R. Tolkien", "12345");

Book book2 = new NonFictionBook("Sapiens", "Yuval Noah Harari", "67890");

// Create users

User librarian = new User("Alice", "Librarian");

User member = new User("Bob", "Member");

// Add books

library.addBook(book1, librarian); // Success

library.addBook(book2, member); // Permission denied

// Borrow books

library.borrowBook(member, book1); // Success

library.borrowBook(librarian, book2); // Success (librarians have all permissions)

Page 13 / 13

You might also like