Kolekcje

Należy zawsze zadbać o użycie właściwych, tzn. najbardziej efektywnych, rodzajów kolekcji do każdego z zadań.

Zadanie 14 (3p)

W nieskończonej pętli, za pośrednictwem okienka dialogowego, dostarcza się do kolekcji dane kolejnego studenta w postaci:

nazwisko    imię    numerIndeksu    średnia

Liczba studentów jest dowolna. Po zakończeniu wprowadzania informacji o studentach, program ma wyświetlić na konsolę odpowiednie wyniki w zależności od polecenia wydanego przez użytkownika (w tym samym okienku dialogowym):

1. 
average - średnią ocen wszystkich studentów,
2. 
surname - listę unikalnych nazwisk studentów,
3. 
name - listę unikalnych imion studentów,
4. 
id - listę numerów indeksu studentów,
5. 
all - posortowaną listę wszystkich studentów, według kryteriów uporządkowania: najpierw numery indeksu są porównywane, potem nazwiska, dalej imiona a na końcu średnie ocen.

Wyjście z programu następuje po naciśnięciu przycisku
"Cancel".

Zadanie 15 (5p)

Stworzyć klasę Dictionary reprezentującą proste słowniki pojęć oraz umożliwiającą szybkie wykonanie operacji na nich. Dane do słownika są pobrane z pliku tekstowego, w którym każdy poprawny wiesz jest postaci: hasło = definicja, przy czym jedno hasło może mieć kilka różnych definicji. Klasa Dictionary powinna posiadać między innymi konstruktor i metody podane poniżej:

a. konstruktor - tworzy słownik czytając plik wejściowy, zawierący hasła z definicjami. Niepoprawne (składniowo) wiersze pliku wejściowego są ignorowane podczas czytania.
b. lookup - dla danego hasła podaje listę dostępnych, ponumerowanych definicji. Lista ta jest posortowana według porządku leksykograficznego definicji.
c.
add - dodaje do słownika hasło z definicją (o ile nie było ich wcześniej w słowniku).
d.
delete - usuwa ze słownika podane hasło z definicją, wskazaną np. przez numer porządkowy (patrz. punkt b.).
e.
update - aktualizuje słownik, zamieniając starą definicję na nową dla podanego hasła.
f.
save - zapisuje aktualny stan słownika do pliku wyjściowego.