Przedmiot: Platformy Programistyczne .NET i Java
Data: 29 maja 2025
Autor: Piotr Kosior
Celem laboratorium było stworzenie aplikacji konsolowej w języku Java, która rozwiązuje nieograniczony problem plecakowy przy użyciu algorytmu zachłannego (Dantzig, 1957). Projekt miał na celu porównanie możliwości języka Java względem technologii .NET, a także zapoznanie się z podstawami programowania obiektowego, testowania i obsługi Maven.
Projekt zawiera następujące klasy:
Main– uruchamia aplikację i prezentuje wyniki.Problem– reprezentuje instancję problemu plecakowego (lista przedmiotów, generacja danych).Item– klasa opisująca przedmiot (waga, wartość).Result– klasa reprezentująca wynik rozwiązania (lista wybranych przedmiotów, łączna wartość i waga).ProblemTest– testy jednostkowe stworzone przy użyciu JUnit.
Zaimplementowany algorytm zachłanny działa według następującego schematu:
- Oblicza stosunek wartość/waga dla każdego przedmiotu.
- Sortuje przedmioty malejąco według tego stosunku.
- Umieszcza w plecaku tyle sztuk najbardziej opłacalnego przedmiotu, ile się zmieści.
- Przechodzi do kolejnego przedmiotu i powtarza proces do wyczerpania pojemności plecaka.
Zostały zaimplementowane cztery testy jednostkowe:
- Poprawność liczby wygenerowanych przedmiotów.
- Poprawność sumy wag i wartości dla znanej instancji.
- Zwrócenie pustego rozwiązania, gdy żaden przedmiot nie spełnia ograniczeń.
- Sprawdzenie, czy wylosowane wartości mieszczą się w zadanym przedziale (1–10).
Wymagania:
- JDK 17+
- Maven
Kroki:
- Otwórz projekt w IntelliJ IDEA lub innym IDE obsługującym Maven.
- Uruchom
Main.java. - (Opcjonalnie) Uruchom
ProblemTest.java, aby wykonać testy jednostkowe.
Projekt pozwolił na:
- Praktyczne zapoznanie się z Javą, Mavenem i JUnit.
- Zrozumienie implementacji algorytmów aproksymacyjnych.
- Rozwój umiejętności związanych z obiektowym podejściem do projektowania aplikacji.