Vous êtes sur la page 1sur 20

Application Java de Gestion de

Bibliothèque :
Effectuer par Yahya SADIKI, Youness BASLAM :

Encadré par:

4IIR 10 G2

09 – 01 - 2024
Diagram de class:
Classes:

package Class;

public class utilisateur {


private static int id = 0;
private String nom;
private int age;
private String role;

private int nbrEmpruntsParutilisateur;

public utilisateur(String nom, int age, String role) {


id++;
id = id;
this.nom = nom;
this.age = age;
this.role = role;
this.nbrEmpruntsParutilisateur = 0;
}

public void modifiertilisateur(utilisateur utilisateur, String nom, int age, String role) {
id = id;
this.nom = nom;
this.age = age;
this.role = role;
}

public void supprimerutilisateur(utilisateur utilisateur) {


id = 0;
this.nom = null;
this.age = 0;
this.role = null;
this.nbrEmpruntsParutilisateur = 0;
}

public void afficherutilisateur() {


System.out.println(this);
}

public void incrementerNbrEmpruntsParutilisateur() {


nbrEmpruntsParutilisateur++;
}

public int id() {


return id;
}
public void setId(int id) {
utilisateur.id = id;
}

public String getnom() {


return nom;
}

public void setNom(String nom) {


this.nom = nom;
}

public int age() {


return age;
}

public void setAge(int age) {


this.age = age;
}

public String role() {


return role;
}

public void setRole(String role) {


this.role = role;
}
public int getNbrEmpruntsParutilisateur() {
return nbrEmpruntsParutilisateur;
}

@Override
public String toString() {
return "Utilisateur{" +
"id=" + id +
", nom='" + nom + '\'' +
", age='" + age + '\'' +
", role=" + role +
", nombre d'emprunts par user =" + nbrEmpruntsParutilisateur +
'}';
}
}

package Class;
public class livre {
private String titre;
private String auteur;
private int anneeDePublication;
private String genre;
private int nbrEmprunts;

public livre(String titre, String auteur, int anneeDePublication, String genre) {


this.titre = titre;
this.auteur = auteur;
this.anneeDePublication = anneeDePublication;
this.genre = genre;
}

public void incrementerNbrEmprunts() {


nbrEmprunts++;
}

@Override
public String toString() {
return "Class.Livre{" +
"titre='" + titre + '\'' +
", auteur='" + auteur + '\'' +
", anneeDePublication=" + anneeDePublication +
", genre='" + genre + '\'' +
", nbrEmprunts=" + nbrEmprunts +
'}';
}

public void afficherLivre() {


System.out.println(this);
}

public String titre() {


return titre;
}

public void setTitre(String titre) {


this.titre = titre;
}

public String auteur() {


return auteur;
}

public void setAuteur(String auteur) {


this.auteur = auteur;
}
public int anneeDePublication() {
return anneeDePublication;
}

public void setAnneeDePublication(int anneeDePublication) {


this.anneeDePublication = anneeDePublication;
}

public String genre() {


return genre;
}

public void setGenre(String genre) {


this.genre = genre;
}

public int getnbrEmprunts() {


return nbrEmprunts;
}

package Class;

import java.util.Calendar;
import java.util.Date;

public class emprunts {


private static int id = 0;
private final utilisateur Utilisateur;
private final livre livresEmpruntes;
private final Date dateEmprunt;
private Date dateRetourPrevue;
private Date dateRetourEffective;

public emprunts(utilisateur Utilisateur, livre livresEmpruntes, Date dateEmprunt, Date


dateRetourPrevue) {
id++;
this.Utilisateur = Utilisateur;
this.livresEmpruntes = livresEmpruntes;
this.dateEmprunt = dateEmprunt;
this.dateRetourPrevue = dateRetourPrevue;
livresEmpruntes.incrementerNbrEmprunts();
Utilisateur.incrementerNbrEmpruntsParutilisateur();
}

public void prolongerEmprunt(int joursAjouter) {


Calendar calendar = Calendar.getInstance();
calendar.setTime(dateRetourPrevue);
calendar.add(Calendar.DAY_OF_MONTH, joursAjouter);
dateRetourPrevue = calendar.getTime();
}

public int rendreLivre(Date dateRetour) {


Calendar dRetour = Calendar.getInstance();
dRetour.setTime(dateRetour);
int a = dRetour.get(Calendar.DAY_OF_MONTH) - dateRetourPrevue.getDate();
this.dateRetourEffective = dateRetour;
if (a > 0) {
return a;
} else {
return 0;
}

@Override
public String toString() {
return "Emprunts{" +
"id=" + id +
", Utilisateur=" + Utilisateur +
", livresEmpruntes=" + livresEmpruntes +
", dateEmprunt=" + dateEmprunt +
", dateRetourPrevue=" + dateRetourPrevue +
", dateRetourEffective=" + dateRetourEffective +
'}';
}

public void afficherEmprunts() {


System.out.println(this);
}

public int getId() {


return id;
}

public utilisateur getUtilisateur() {


return Utilisateur;
}
public String getNomUtilisateur() {
return utilisateur.class.getName();
}

public String getNomLivre() {


return livresEmpruntes.titre();
}

public livre getLivresEmpruntes() {


return livresEmpruntes;
}

public Date getDateEmprunt() {


return dateEmprunt;
}

public Date getDateRetourPrevue() {


return dateRetourPrevue;
}

public Date getDateRetourEffective() {


return dateRetourEffective;
}

public String getDateEmpruntDDMMYYYY() {


int year = dateEmprunt.getYear() + 1900;
return dateEmprunt.getDate() + "-" + dateEmprunt.getMonth() + "-" + year;
}

public String getDateRetourPrevueDDMMYYYY() {


int year = dateRetourPrevue.getYear() + 1900;
return dateRetourPrevue.getDate() + "-" + dateRetourPrevue.getMonth() + "-" + year;
}

public static void setId(int id) {


emprunts.id = id;
}

public void setDateRetourPrevue(Date dateRetourPrevue) {


this.dateRetourPrevue = dateRetourPrevue;
}

public void setDateRetourEffective(Date dateRetourEffective) {


this.dateRetourEffective = dateRetourEffective;

}
}

package Class;

import java.util.ArrayList;

public class bibliotheque {


private final ArrayList<livre> livres;
private final ArrayList<utilisateur> emprunteurs;
private final ArrayList<emprunts> emprunts;
private final String nom;
private final String adresse;

public bibliotheque(String nom, String adresse) {


this.nom = nom;
this.adresse = adresse;
livres = new ArrayList<livre>();
emprunteurs = new ArrayList<utilisateur>();
emprunts = new ArrayList<emprunts>();
}

public ArrayList<utilisateur> getAdmins() {


ArrayList<utilisateur> admins = new ArrayList<>();
for (utilisateur utilisateur : emprunteurs) {
if (utilisateur.role().equals("admin")) {
admins.add(utilisateur);
}
}
return admins;
}

public ArrayList<utilisateur> getAdherents() {


ArrayList<utilisateur> adherents = new ArrayList<>();
for (utilisateur utilisateur : emprunteurs) {
if (utilisateur.role().equals("adherent")) {
adherents.add(utilisateur);
}
}
return adherents;
}

public ArrayList<utilisateur> getBibliothecaires() {


ArrayList<utilisateur> bibliothecaires = new ArrayList<>();
for (utilisateur utilisateur : emprunteurs) {
if (utilisateur.role().equals("bibliothecaire")) {
bibliothecaires.add(utilisateur);
}
}
return bibliothecaires;
}

public void setEmprunts(ArrayList<emprunts> emprunts) {


this.emprunts.clear();
this.emprunts.addAll(emprunts);
}
public void ajouterEmprunteur(utilisateur utilisateur) {
emprunteurs.add(utilisateur);
}

public void ajouterLivre(livre livre) {


livres.add(livre);
}

public void supprimerLivre(livre livre) {


livres.remove(livre);
}

public void supprimerEmprunteur(utilisateur utilisateur) {


emprunteurs.remove(utilisateur);
}

public void ajouterEmprunt(emprunts emprunt) {


emprunts.add(emprunt);
}

public void supprimerEmprunt(emprunts emprunt) {


emprunts.remove(emprunt);
}

public void modifierLivre(livre livre, String titre, String auteur, int anneeDePublication, String genre) {
livre.setTitre(titre);
livre.setAuteur(auteur);
livre.setAnneeDePublication(anneeDePublication);
livre.setGenre(genre);
}

//return emprunt arraylist where isStatutEmprunt = false


public ArrayList<emprunts> getEmpruntsEnCours() {
ArrayList<emprunts> empruntsEnCours = new ArrayList<>();
for (emprunts emprunt : emprunts) {
empruntsEnCours.add(emprunt);
}
return empruntsEnCours;
}

public livre getLivreMaxEmprunts() {


livre livreMaxEmprunts = livres.get(0);
for (livre livre : livres) {
if (livre.getnbrEmprunts() > livreMaxEmprunts.getnbrEmprunts()) {
livreMaxEmprunts = livre;
}
}
return livreMaxEmprunts;
}

public utilisateur getEmprunteurMaxEmprunts() {


utilisateur emprunteurMaxEmprunts = emprunteurs.get(0);
for (utilisateur utilisateur : emprunteurs) {
if (utilisateur.getNbrEmpruntsParutilisateur() >
emprunteurMaxEmprunts.getNbrEmpruntsParutilisateur()) {
emprunteurMaxEmprunts = utilisateur;
}
}
return emprunteurMaxEmprunts;
}

public emprunts getEmpruntById(int id) {


for (emprunts emprunt : emprunts) {
if (emprunt.getId() == id) {
return emprunt;
}
}
return null;
}

public void afficherLivres() {


for (livre livre : livres) {
System.out.println(livre);
}
}

public void afficherEmprunts() {


for (emprunts emprunt : emprunts) {
System.out.println(emprunt);
}
}

public void setLivres(ArrayList<livre> livres) {


this.livres.clear();
this.livres.addAll(livres);
}
public ArrayList<livre> getLivres() {
return livres;
}

public ArrayList<utilisateur> getEmprunteurs() {


return emprunteurs;
}

public ArrayList<emprunts> getEmprunts() {


return emprunts;
}

public void bibliotequestats() {


System.out.println("Nombre de livres : " + livres.size());
if (!emprunts.isEmpty()) {
System.out.println("Livres les plus empruntés : " + emprunts.get(0).getLivresEmpruntes().titre());
} else {
System.out.println("Aucun livre emprunté pour le moment.");
}
}
}

package swing;

import Class.bibliotheque;
import Class.emprunts;
import Class.livre;
import Class.utilisateur;
import com.formdev.flatlaf.FlatDarkLaf;

import javax.swing.*;
import java.util.ArrayList;

public class mainTest {


public static ArrayList<livre> livres = new ArrayList<>();

public static ArrayList<emprunts> emprunts = new ArrayList<>();


public static ArrayList<emprunts> empruntsHistorique = new ArrayList<>();
public static bibliotheque b1 = new bibliotheque("Bibliotheque de l'Universite de Paris", "Paris");

public static void main(String[] args) {

try {
UIManager.setLookAndFeel(new FlatDarkLaf());
} catch (Exception e) {
System.out.println("Error setting native LAF: " + e);
}
b1.ajouterLivre(new livre("Livre 1", "Auteur 1", 1990, "policier"));
b1.ajouterLivre(new livre("Livre 2", "Auteur 2", 1991, "BD"));

b1.ajouterEmprunteur(new utilisateur("Utilisateur 1", 81, "adherent"));


b1.ajouterEmprunteur(new utilisateur("Utilisateur 2", 82, "adherent"));
b1.ajouterEmprunteur(new utilisateur("yahya", 83, "admin"));
Login login = new Login();
login.setVisible(true);
}
}

Interfaces:
1. Main:

Apres l’authentification, on affiche le menu d’application


2. Gestion des livres:
3. Gestion des emprunts:
4. Gestion des utilisateur:
5. Statistique bibliotheque:

Vous aimerez peut-être aussi