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ą.

Podobne dokumenty