Sari la conținut
Zece la Info
Probleme

Sistemul Biblioteca (Carte + Membru + Biblioteca)

Grea 2000 ms 64 MB#oop#clasa#sistem#compunere

Scrieti TREI clase care modeleaza o biblioteca simpla:

  1. Carte - memoreaza titlul (fara spatii) si daca este disponibila (initial DA):
  • constructor(titlu)
  • getTitlu(), esteDisponibila(), seteazaDisponibila(bool val)
  1. Membru - memoreaza numele (fara spatii) unui membru al bibliotecii:
  • constructor(nume)
  • getNume()
  1. 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

Vrei să rezolvi problema?

Creează-ți un cont gratuit ca să scrii cod în editor, să trimiți soluții la evaluator și să vezi indicațiile.