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.