-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.cpp
155 lines (124 loc) · 5.54 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//
// Created by Ludivine Mauget on 09/01/2024.
//
#include "Bibliotheque.h"
#include "Adherent.h"
#include "Livre.h"
#include "Roman.h"
#include "Theatre.h"
#include "BD.h"
#include "Album.h"
#include <iostream>
using namespace std;
int main() {
Livre livre1("Victor Hugo", "Les Misérables", "Gallimard", "978-2-07-041699-3", "Tout public");
Livre livre2("François Villon", "Poésies", "Gallimard", "978-3-07-041699-3", "Tout public");
Livre livre3("Dante", "La Divine Comédie", "Gallimard", "978-4-07-041699-3", "Tout public");
BD bd1("Hergé", "Tintin", "Casterman", "978-2-203-00112-0", "Tout public", "Hergé");
BD bd2("Albert Uderzo", "Astérix", "Gallimard", "978-2-07-042277-2", "Tout public", "Goscinny");
Theatre theatre1("Molière", "Le Bourgeois Gentilhomme", "Gallimard", "978-2-07-11111-3", "Tout public",
"XVIIe siècle");
Roman roman1("Jules Verne", "Voyage au centre de la Terre", "Gallimard", "978-2-07-22222-3", "Tout public",
"Aventure");
Album album1("Bastien Vivès", "Le goût du chlore", "Casterman", "978-2-203-33333-1", "Tout public", "dessin");
cout <<"---Affichage de livre1---" << endl;
livre1.affiche();
cout <<"---Affichage de bd1---" << endl;
bd1.affiche();
Bibliotheque b1("Bibliothèque de l'Université de Lille", 2);
Bibliotheque b2("Bibliothèque de Aix-Marseille", 4);
Adherent a1("Mauget", "Ludivine", "Rue de la Paix", b1);
Adherent a2("Massif", "Damien", "Rue de la République", b2);
Adherent a1bis("Bernard", "Kévin", "Rue de la libération", b1);
// "La bibliothèque 1 achète livre 1 et bd1"
b1.acheterLivre(livre1); // 0
b1.acheterLivre(bd1); // 1
b1.acheterLivre(bd2); // 2
b2.acheterLivre(roman1); // 0
b2.acheterLivre(album1); // 1
cout << "---Affichage des livres de b1---" << endl;
b1.afficheLivres(); // categorie 0: livres
cout << "---Affichage des BD de b1---" << endl;
b1.afficheLivres(1); // categorie 1: BD
//Emprunt
cout << "---Emprunt d'un livre---" << endl;
cout << "---Affichage état avant emprunt :---" << endl;
cout << b1.getLivre(b1.getIndiceLivre("978-2-07-041699-3"))->getEtat() << endl;
a1.emprunterLivre(1); // bd1 ok
cout << "---Affichage état après emprunt :---" << endl;
cout << b1.getLivre(b1.getIndiceLivre(1))->getEtat() << endl;
cout << "---Emprunt d'un livre qui n'existe pas---" << endl;
a1.emprunterLivre(5); // pas de code 5
a2.emprunterLivre(0);
a2.emprunterLivre(1);
cout << "-------------------------" << endl;
// Affichage
b1.afficheBibliotheque();
cout << "-------------------------" << endl;
b2.afficheBibliotheque();
cout << "-------------------------" << endl;
a1.afficheAdherent();
cout << "-------------------------" << endl;
a2.afficheAdherent();
cout << "-------------------------" << endl;
// Rendre
a1.rendreLivre(1);
cout << "Test si un adhérent peut emprunter plus de livre qu'il ne peut" << endl;
a1.afficheAdherent();
a1.emprunterLivre(0);
a1.emprunterLivre(1);
a1.emprunterLivre(2);
cout << "-------------------------" << endl;
a1.afficheAdherent();
cout << " ---Test rendre livre---" << endl;
a1.rendreLivre(0);
a1.rendreLivre(1);
a1.afficheAdherent();
cout << "---On voit que les livres ont bien été rendus---" << endl;
cout<< "---Test si un adhérent peut emprunter un livre déjà emprunté---" << endl;
a1.emprunterLivre(0);
a1bis.emprunterLivre(0);
cout << "-------------------------" << endl;
a1.afficheAdherent();
cout << "-------------------------" << endl;
a1bis.afficheAdherent();
// Test LUDIVINE
a1.rendreLivre(0);
cout << "---Affichage bibliothèque avant emprunt :---" << endl;
b1.afficheBibliotheque();
cout << "-------------------------" << endl;
b2.afficheBibliotheque();
cout << "-------------------------" << endl;
cout << "---Affichage état avant emprunt :---" << endl;
cout << b1.getLivre(b1.getIndiceLivre("978-2-07-041699-3"))->getEtat() << endl;
cout << "-------------------------" << endl;
b2.emprunterLivre("978-2-07-041699-3", b1);
cout << "---Affichage état après emprunt :---" << endl;
cout << b1.getLivre(b1.getIndiceLivre("978-2-07-041699-3"))->getEtat() << endl;
cout << "-------------------------" << endl;
cout << "---Emprunt double d'un livre à une bibliotheque---" << endl;
b2.emprunterLivre("978-2-07-041699-3", b1);
cout << "---Affichage bibliothèque 1 après emprunt :---" << endl;
b1.afficheBibliotheque();
cout << "---Affichage bibliothèque 2 après emprunt :---" << endl;
b2.afficheBibliotheque();
cout << "-------------------------" << endl;
cout << "---Suppression d'un livre avec son code---" << endl;
cout << "-- Avant suppression : affichage de la liste des livres--" << endl;
b1.afficheLivres();
b1.supprimerLivre(b1.getLivre(b1.getIndiceLivre(0)));
cout << "-- Après suppression : affichage de la liste des livres--" << endl;
b1.afficheLivres();
cout << "-- Rajoute avec opérateur + --" << endl;
b1 + livre1;
b1.afficheLivres();
// Rendre livres prêtés non empruntés
cout << "---Rendre livres prêtés non empruntés---" << endl;
cout << "---Affichage bibliothèque 1 avant rendu---" << endl;
b2.afficheBibliotheque();
b2.rendreLivre("978-2-07-041699-3", b1);
// b2.rendreLivresPretesNonEmpruntes();
cout << "---Affichage bibliothèque 1 après rendu---" << endl;
b2.afficheBibliotheque();
return 0;
}