KOLOKWIUM Dany jest plik z informacjami o przesyłkach
Transkrypt
KOLOKWIUM Dany jest plik z informacjami o przesyłkach
KOLOKWIUM Dany jest plik z informacjami o przesyłkach pocztowych. Każda linia reprezentuje odrębną przesyłkę. Na obecną chwilę, przesyłki, które mogą wystąpić w tym pliku to list zwykły (do 2kg) i paczka. List zwykły jest zapisany jako linia tekstu w następujący sposób: list;100 gdzie "List" mówi, że chodzi o list zwykły, a 100, to masa listu w gramach, z dokładnością do grama. Analogicznie paczka jest zapisana jako: paczka;2300;0 gdzie 2300 to jej masa w gramach, a 0 oznacza, że paczka jest nieubezpieczona. Natomiast paczka;2300;100,00 oznacza paczkę ubezpieczoną, gdzie 100,00 (zł) (liczba rzeczywista > 0) oznacza wartość paczki do ubezpieczenia. Stworzyć strukturę klas do przechowywania tak zdefiniowanych przesyłek. Klasy te powinny dawać możliwość obliczenia ceny każdej z tych przesyłek*. Napisać program, który ma za zadanie wczytać na jedną listę przesyłki z powyższego pliku, posortować je według ceny oraz wypisać na standardowe wyjście tę posortowaną listę z informacją o typie przesyłek, ich parametrach i cenach. Wskazówka. Do użycia wbudowanych metod sortowania należy stworzyć odpowiedni komparator (można wykorzystać metodę Double.compare(...)). Na koniec program ma wypisać typy przesyłek, które wystąpiły w pliku (bez powtórek). Fragmenty kodu odpowiedzialne za sortowanie oraz wypisywanie list powinny być w pełni skalowalne jeśli chodzi o dodawanie nowych typów przesyłek, tzn. dodanie do programu obsługi nowego typu przesyłki nie powinno wiązać się z jakąkolwiek zmianą w tych fragmentach kodu. * Ceny przesyłek liczymy następująco: 1. List zwykły: a) 1,75 zł, gdy masa ≤ 300g, b) 3,70 zł, gdy 300g < masa ≤ 1000g, c) 6,30 zł, gdy 1000g < masa ≤ 2000g. 2. Paczka: a) 7,20 zł za każdy rozpoczęty kilogram masy paczki (wskazówka: można skorzystać z funkcji Math.ceil), b) Do ceny paczki ubezpieczonej doliczamy 3% wartości paczki. Dla chętnych na ocenę bdb: Na koniec program ma wypisać typy przesyłek, które wystąpiły w pliku (bez powtórek) wraz z sumaryczną ceną.