Scrieti TREI clase:
- Camera - capacitate , disponibila (bool, initial adevarat):
- constructor(capacitate); getCapacitate(); esteDisponibila(); seteazaDisponibila(bool val)
- Rezervare - o inregistrare istorica: idCamera, numeClient (fara spatii), nrNopti:
- constructor(idCamera, numeClient, nrNopti); getIdCamera(); getNumeClient(); getNrNopti()
- Hotel - orchestreaza camerele si PASTREAZA UN ISTORIC PERMANENT al tuturor rezervarilor (istoricul NU se sterge niciodata, nici cand o camera e eliberata):
- constructor fara parametri
- adaugaCamera(capacitate) - returneaza id-ul camerei
- rezerva(idCamera, numeClient, nrNopti) - daca id-ul e valid SI camera e disponibila: o marcheaza indisponibila, ADAUGA o Rezervare in istoric si returneaza adevarat; altfel returneaza fals si NU adauga nimic in istoric
- elibereaza(idCamera) - daca id-ul e valid SI camera e indisponibila: o marcheaza disponibila (istoricul ramane neschimbat) si returneaza adevarat; altfel returneaza fals
- camereLibere() - returneaza numarul de camere curent disponibile
- venitTotal(pretPeNoapte) - returneaza suma (nrNopti*pretPeNoapte) pentru TOATE rezervarile din istoric, inclusiv cele ale camerelor deja eliberate
- numarRezervariCamera(idCamera) - returneaza de cate ori apare acea camera in istoric (in total, indiferent daca e curent libera sau ocupata)
- 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 20 camere, 100 rezervari in istoric.
Exemple
Exemplul 1
Intrare
4 ADDCAMERA 2 REZERVA 0 Popescu 3 LIBERE VENIT 100
Iesire
0 1 0 300

