Sari la conținut
Zece la Info
Probleme

Clasele Data si Angajat (compunere)

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

Scrieti DOUA clase:

  1. Clasa Data, care memoreaza o data calendaristica (zi, luna, an - toate numere intregi), cu:
  • constructor cu trei parametri: zi, luna, an
  • getZi(), getLuna(), getAn()
  • diferentaAni(Data altaData) - returneaza numarul de ani IMPLINITI intre data curenta si altaData (presupusa mai tarzie sau egala); un an nu se considera implinit daca luna+ziua din altaData nu au ajuns inca la luna+ziua din data curenta (ex: intre 10.05.2015 si 09.05.2020 sunt 4 ani impliniti, nu 5)
  1. Clasa Angajat, care memoreaza numele (fara spatii), salariul (numar intreg) si data angajarii - data angajarii trebuie memorata ca un OBIECT Data (nu ca 3 campuri separate), cu:
  • constructor cu 5 parametri: nume, salariu, zi, luna, an (ultimele 3 folosite pentru a construi obiectul Data intern)
  • getNume(), getSalariu()
  • getDataAngajarii() - returneaza obiectul Data memorat intern
  • vechimeAni(Data dataCurenta) - returneaza vechimea in ani a angajatului, calculata prin delegare catre metoda diferentaAni a obiectului Data intern
  • majoreazaSalariu(int procent) - creste salariul cu procent% (calcul in intregi, trunchiat), fara valoare de returnare
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
1 <= zi <= 31, 1 <= luna <= 12, an intreg pozitiv, 0 <= salariu <= 1.000.000.000, 0 <= procent <= 100

Exemple

Exemplul 1

Intrare

3
NEW Popescu 3000 10 5 2015
SALARIU
DATAANGAJARE

Iesire

OK
3000
10 5 2015

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.