Sari la conținut
Zece la Info
Probleme

Sistemul RezervareHotel (Camera + Rezervare + Hotel)

Facultate 2000 ms 64 MB#oop#clasa#sistem#hotel

Scrieti TREI clase:

  1. Camera - capacitate intregintreg, disponibila (bool, initial adevarat):
  • constructor(capacitate); getCapacitate(); esteDisponibila(); seteazaDisponibila(bool val)
  1. Rezervare - o inregistrare istorica: idCamera, numeClient (fara spatii), nrNopti:
  • constructor(idCamera, numeClient, nrNopti); getIdCamera(); getNumeClient(); getNrNopti()
  1. 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

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.