Sunteți pe pagina 1din 3

Semestrul I

Laborator 6 -7
săptămâna 4.11.2019 – 9.11.2019
săptămâna 11.11.2019 – 16.11.2019

OBIECTIVE:

- Excepţii
- Utilizarea colecţiilor

- Tipuri generice
- Compararea obiectelor

1. La problema – gestionare bancă – din laboratorul 5 adăugaţi următoarele:


• Interfaţa Raport care conţine metoda generare(). Clasa RaportSituatieCurentaConturi –
care va returna informaţii despre suma care se află în momentul curent în fiecare cont, tip de
cont (RON, EUR) şi suma totală
• Clasa RaportDobanzi – care va returna informaţii despre tipurile de dobânzi ataşate fiecărui
cont
• Realizaţi un program pentru a genera rapoartele

2. Să se realizeze un program care conţine următoarele clase şi interfeţe:


• clasa Persoana care are atributele nume, prenume, înălţimea, vârsta şi metode de obţinere şi
setare a valorilor atributelor, să se definească constructori, o metodă de afişare
• interfaţa Print care declară metoda void print();
• clasa Student care extinde clasa Persoana şi implementează interfaţa Print; în plus va avea
variabilele membre anul de studiu (int) şi număr an studii (static);
• clasa Angajat care extinde clasa Persoana şi implementează interfaţa Print; se vor adăuga
atribute şi metode specifice.
Să se implementeze următoarele operaţii:
a. crearea unui şir de persoane şi afişarea lui
b. sortarea şirului de persoane după vârstă
c. sortarea şirului de persoane după nume şi dacă au acelaşi nume după prenume
d. printarea persoanelor din şir care sunt studenţi
e. tratarea excepţiilor care pot apărea

3. Să se scrie o clasă Revista care are următoarele proprietăţi: nume, preţ, tip (lunară, bilunară,
anuală). Să se realizeze un program care:
• Defineşte clasa Revista
• Creează o clasă de test care conţine un şir de Reviste
• Sortează şirul de reviste în funcţie de tip folosind o clasă anonimă
• Sortează şirul de reviste în funcţie de preţ şi nume folosind o clasă anonimă

4. Scrieţi o clasă ce păstrează într-un ArrayList un şir de persoane (nume, prenume, vârsta,
profesia). Scrieţi metode pentru următoarele operaţii:
1
a. Adăugarea unei persoane
b. Afişarea tuturor persoanelor din listă
c. Eliminarea unei persoane din listă
d. Folosind un iterator număraţi câţi studenţi sunt în listă, câte persoane au vârsta mai mică
decât 25 ani şi câţi programatori sunt în listă.
e. Să se creeze un map care are ca şi cheie profesia şi ca valoare lista de persoane care au
acea profesie. Afişaţi map-ul.
f. Sortaţi lista de persoane în funcţie de vârstă şi dacă două persoane au aceeaşi vârstă în
funcţie de nume.

5. Comparaţi timpul necesar execuţiei operaţiilor: add, get, remove, s.a.m.d. pentru colecţii de tip
ArrayList şi LinkedList (având mai mult de 10000 elemente), folosind metoda, clasei System,
nanoTime ().

6. Modificaţi aplicaţia – gestionare banca – din laboratoarele 5/6 astfel încât să se folosească
colecţii în loc de tablouri de obiecte. Adăugaţi următoarele cerinţe:
a. Fiecare cont va reţine data ultimei accesări (un obiect de tip java.util.Date)
b. Adăugarea unui raport RaportZilnic care va afişa alfabetic persoanele care accesează
contul în ziua curentă

7. Realizați un program care să respecte următoarele cerințe


a. Creati clasa Angajat cu proprietățile: nume, an angajare, ultimele studii absolvite,
salariu. Pentru ea adaugați constructori, metode de set/get a proprietăților clasei și o
metodă care permite afișarea detaliilor despre angajați.
b. Creați clasa pereche (clasa generică) care are ca atribute membri perechi. Pentru ea
adaugați constructori, metode de set/get a proprietăților clasei și o metodă care permite
afișarea detaliilor despre pereche.
c. Creați două colecții de tip pereche: una cu perechi de tip angajat și una cu perechi de tip
intreg. Definiți o metodă care permite aflarea numărului perechilor care se repetă în
colecții
d. Sortați colectia de angajați în functie de numele membrilor perechi
e. Sortați colectia de angajați în functie salariu mediu pe pereche
f. Creați un map care să conțina tipul studiilor si cate persoane din colectia de perechi au
urmat aceste studii. Afisati mapul sub următoarea formă:
i. Postuniversitare ***
ii. Licenta **********
iii. Masterat ***
iv. Doctorale *
v. ...
g. Căutați în colecția de perechi de intregi, perechea cu media maximă
h. Derivați din clasa Angajat clasele Muncior si Functionar. Creati o lista de angajati, una
de muncitori si una de functionari. Folosind wildcards pentru generics definiti o metoda
care să se poată apela cu cele 3 tipuri de clase și care să calculeze salariul mediu al
elementelor listei.

2
TEMA: TERMEN 23.11.2019

1. Fie clasa Pereche (parteneri de dans) care are proprietăţile numePartener1, numePartener2.
a. Să se creeze un şir de perechi.
b. Să se adauge, să se şteargă elemente din listă.
c. Să se sorteze lista după primul/ultimul partener
d. Să se verifice corectitudinea perechii (dacă ambele valori sunt nenule), în caz de eroare
să se arunce o excepţie.
e. Să se modifice clasa Pereche astfel încât pe lângă tipul String să poată fi folosită şi
pentru clasa Persoană definită la exerciţiul 1 din laborator.

2. Creaţi o listă cu toate propoziţiile unui text care este pasat ca parametru pe linia de comandă.
a. Pentru fiecare propoziţie afişaţi cuvintele distincte
b. Pentru întreg textul realizaţi o statistică care conţine lungimea fiecărui cuvânt şi numărul
de cuvinte care au această lungime (Ex. Ana are mere. Statistica va fi: 3:2, 4:1)
c. Eliminaţi din lista de cuvinte, cuvintele care conţin subşirul ’re’. Afişaţi lista astfel
obţinută.
d. Sortaţi propoziţiile după numărul de cuvinte distincte pe care îl conţin astfel încât
propoziţiile cu cele mai multe cuvinte distincte să fie primele. Tipăriţi colecţia astfel
obţinută.

3. Fie clasa Student care are ca atribute numele studentului, grupa din care face parte şi un şir de
note obţinute la diferite materii. Să se realizeze un program care gestionează studenţii dintr-o
grupă.
a. Programul va permite adăugarea, eliminarea de studenţi dintr-o grupă
b. Calcularea mediei generale a unui student
c. Identificarea studenţilor care nu au promovat examene
d. Sortarea studenţilor în funcţie de nume, media generală
e. Evidenţierea studenţilor care au prea puţine examene luate pentru a promova anul
Trataţi excepţiile care pot apărea. Adăugaţi, dacă este nevoie, şi alte clase în afară de clasa
Student pentru rezolvarea problemei. Se vor folosi colecții.

S-ar putea să vă placă și