Termin oddania | Punkty |
---|---|
11.04.2021 | 10 |
Przekroczenie terminu o n zajęć wiąże się z karą:
- punkty uzyskania za realizację zadania są dzielone przez 2n.
Twoja firma dostała zlecenie na stworzenie oprogramowania dla dużego sklepu internetowego JavaMarkt. Jedną z podstawowych funkcjonalności będzie oprogramowanie koszyka zakupów, który potrafiłby uwzględniać różne promocje, rabaty oraz oferty specjalne, takie jak:
- jeśli wartość zamówienia jest większa niż 300 zł klient otrzymuje 5% zniżki na zakupione towary
- jeśli klient kupi 2 produkty to 3 najtańszy otrzymuje gratis
- jeśli wartość zamówienia przekracza wartość 200 zł klient otrzymuje firmowy kubek gratis
- jednorazowy kupon rabatowy 30% na wybrany produkt oraz wiele innych jeszcze nieznanych na tym etapie implementacji.
Towary w koszyku powinny być posegregowane malejąco według ceny, a potem według kolejności alfabetycznej nazw produktów.
Twoim zadaniem jest zaimplementowanie logiki, operującej na obiektach typu Product
,
która umożliwiałaby:
- Wyszukiwanie najtańszego/najdroższego produktu w zadanej kolekcji produktów
- Wyszukiwanie n najtańszych/najdrożyszych produktów w zadanej kolekcji produktów
- Sortowanie kolekcji produktów po cenie jak i po nazwie
- Wyliczanie sumy cen wszystkich zadanych produktów
- Wyświetlanie w konsoli informacji o wszystkich produktach w zadanej kolekcji produktów
- Aplikowanie opisanych powyżej rodzajów promocji na zadanej kolekcji produktów
Specyfikacja klasy Product
:
- pola w klasie:
- kod produktu (code) - String
- nazwa produktu (name) - String
- cena produktu (price) – double
- cena produktu po uwzględnieniu promocji (discountPrice) - double
W tym zadaniu użyj tablicy produktów jako kolekcji, na której będziesz operował.
Projekt powinien również zawierać odpowiednie testy jednostkowe do implementowanej funkcjonalności.