Sunteți pe pagina 1din 2

Domeniu: Bilete de tren

Fișier CSV: train_tickets.csv

<csv>
ID,RUTA,STATIE_PLECARE,STATIE_SOSIRE,ORA_PLECARE,ORA_SOSIRE,CLASA,TIP_BILET,P
RET,STATUS
1,Bucuresti-Cluj,Bucuresti,Cluj,05:00,13:00,1,Adult,150.00,Disponibil
2,Cluj-Brasov,Cluj,Brasov,09:30,13:30,2,Copil,75.00,Vandut
3,Timisoara-Iasi,Timisoara,Iasi,07:45,20:00,1,Adult,200.00,Disponibil
4,Sibiu-Constanta,Sibiu,Constanta,22:00,06:00,2,Adult,180.00,Vandut
5,Iasi-Bucuresti,Iasi,Bucuresti,10:00,18:00,1,Student,100.00,Disponibil
6,Brasov-Sibiu,Brasov,Sibiu,14:00,17:00,2,Adult,90.00,Disponibil
7,Constanta-Cluj,Constanta,Cluj,19:00,05:00,1,Adult,220.00,Vandut
8,Bucuresti-Timisoara,Bucuresti,Timisoara,12:00,20:00,2,Student,130.00,Disponibil
9,Cluj-Sibiu,Cluj,Sibiu,11:00,15:00,1,Adult,110.00,Disponibil
10,Sibiu-Timisoara,Sibiu,Timisoara,08:00,12:00,2,Copil,60.00,Vandut
11,Iasi-Brasov,Iasi,Brasov,13:00,21:00,1,Adult,170.00,Disponibil
12,Brasov-Constanta,Brasov,Constanta,16:00,22:00,2,Adult,150.00,Vandut
13,Timisoara-Bucuresti,Timisoara,Bucuresti,03:00,11:00,1,Student,120.00,Disponibil
14,Constanta-Iasi,Constanta,Iasi,15:00,23:00,2,Adult,195.00,Vandut
15,Bucuresti-Brasov,Bucuresti,Brasov,06:00,09:00,1,Adult,80.00,Disponibil </csv>

Sarcina 1: Din fișierul train_tickets.csv, citiți o listă de bilete de tren. Asigurați-vă că


fiecare bilet este pentru o rută valabilă și că orele de plecare și sosire sunt coerente.
Dacă un bilet are oră de sosire înainte de ora de plecare, excludeți-l din listă.

Nota: Fiecare bilet de tren va reprenzenta un obiect de tip Ticket, care va contine toate
atributele din fisierul csv. De asemenea, va contine si 2 constructori, unul cu parametrii si
unul fara (cel fara va trebui sa initializeze atributele interne cu valori prestabilite de voi).
Fiecare obiect de tip Ticket se va adauga intr-un ArrayList.

Sarcina 2: Afișați lista care a fost citită anterior. Asigurați-vă că în fișierul TrainTickets.java
există o metodă toString() care a fost suprascrisă, deoarece aceasta va fi utilizată pentru
a afișa elementele listei.

Nota: In aceasta functie va trebui sa afisati datele sub formatul urmator:

Ticket: {Ruta=<ruta_bilet>, Ora_plecare =<ora_plecare>, Ora_sosire=<ora_sosire>,


Clasa_bilet =<clasa_bilet>, Pret=<pret_bilet>, Status=<status_conferinta> }.
Sarcina 3: Implementați un Sorter care va gestiona lista de bilete de tren astfel încât
biletele să fie afișate pe ecran, sortate după preț, în ordine descrescătoare.

Nota: Se va crea o clasa SortByTax care implementeaza interfata Comparator si se va


crea functia public int compare care va lua ca parametri 2 obiecte de tipul Ticket si, pe
baza obiectelor, se va implementa sortarea. Salvati lista de bilete, sortata, intr-o alta lista
noua.

Sarcina 4: Grupați lista de bilete de tren într-o colecție, astfel încât biletele să fie afișate
pe ecran grupate după STATUS. Rețineți că biletele grupate trebuie, de asemenea,
sortate în ordine descrescătoare după preț, așa cum cere sarcina anterioară.

Nota: Se va folosi HashMap<String, ArrayList<Ticket>>.

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