Scrieti TREI clase care modeleaza o biblioteca simpla:
- Carte - memoreaza titlul (fara spatii) si daca este disponibila (initial DA):
- constructor(titlu)
- getTitlu(), esteDisponibila(), seteazaDisponibila(bool val)
- Membru - memoreaza numele (fara spatii) unui membru al bibliotecii:
- constructor(nume)
- getNume()
- Biblioteca - orchestreaza colectiile de carti si membri (memorate intern, adaugate dinamic):
- constructor fara parametri
- adaugaCarte(titlu) - creeaza o noua Carte si returneaza id-ul ei (0, 1, 2, ... in ordinea adaugarii)
- adaugaMembru(nume) - creeaza un nou Membru si returneaza id-ul lui (0, 1, 2, ...)
- imprumuta(idMembru, idCarte) - daca id-urile sunt valide si cartea e disponibila, o marcheaza indisponibila, retine ca a fost imprumutata de idMembru si returneaza adevarat; altfel returneaza fals fara nicio modificare
- returneaza(idMembru, idCarte) - daca cartea e curent indisponibila SI a fost imprumutata exact de idMembru, o marcheaza disponibila si returneaza adevarat; altfel (carte disponibila deja, sau imprumutata de alt membru) returneaza fals fara nicio modificare
- cartiDisponibile() - returneaza numarul de carti curent disponibile
- numarImprumuturi(idMembru) - returneaza cate carti are curent imprumutate membrul idMembru
- Date de intrare
- Codul vostru este integrat intr-un program de test care citeste comenzi si apeleaza metodele voastre.
- Date de iesire
- Fiecare comanda produce o linie de output.
- Restrictii
- Cel mult 50 de carti si 50 de membri intr-un test.
Exemple
Exemplul 1
Intrare
6 ADDCARTE Ion ADDCARTE Baltagul ADDMEMBRU Popescu IMPRUMUTA 0 0 DISPONIBILE NRIMPRUMUT 0
Iesire
0 1 0 1 1 1

