PRAPRO.rst

Pracownia Programowania

Projekt

Projekt z tematów 1-4

Zadanie:

Napisz program, który wczyta z plików json (lub xml) listę słów danego języka. Następnie dla każdego wpisanego przez użytkownika słowa wypisze z jakiego języka ono pochodzi (uwaga! to samo słowo może występować w wielu językach), lub że nie ma takiego słowa w bazie.

Program powinien też umożliwiać dodanie własnego języka i listy słów i zapisanie go do pliku json (lub xml). Przy kolejnym uruchomieniu plik taki powinien być brany pod uwagę przez program.

Na wyjściu programu powinniśmy zachować do pliku PDF ile podano słów i z jakich języków pochodziły podane słowa. Wykorzystaj dowolną bibliotekę Javy do tworzenia plików jako pdf, by zapisać w nim statystyki. Format pliku jest dowolny, ma zawierać podane wyżej informacje, może zawierać też dodatkowe elementy.

Napisz testy dla metod wyszukujących słowa (najlepiej żeby klasa przyjmowała na wejściu kolekcję słowników, a metoda słowo do wyszukania). Uwaga! Testy nie powinny korzystać z plików json jako przypadków testowych, stwórz w testach mini słowniki na ich potrzeby ręcznie w kodzie i na ich przykłądzie wywołuj metode którą chcesz przetestować.

Wykorzystaj strumienie oraz co najmniej dwie struktury danych (set, map, list, stack, etc.).

Ocena:

Testy 20% Strumienie 20% Serializacja i Deserializacja 20% Biblioteka PDF 20% Działanie zgodne ze specyfikacją 20%

Example of Json file structure:

{
        "words": [
                "a",
                "abandon",
                "ability",
                "able",
                "abortion",
                "about",
                "above",
                "abroad",
                "absence",
                "absolute",
                "absolutely",
                "absorb",
                "abuse",
                "academic",
                "accept",
                "access",
                "accident",
                "accompany",
                "accomplish",
                "according",
                "account",
                "accurate",
                "accuse",
                "achieve",
                "achievement",
                "acid",
                "acknowledge",
                "acquire",
                "across",
                "act",
                "action",
                "active",
                "activity",
                "actor",
                "actress",
                "actual",
                "actually",
                "ad",
                "adapt",
                "add",
                "addition",
                "additional"
        ],
        "language": "English"
}

Zmiany:

13-10-2021 Dodano uwagę o niestosowaniu plików json w przypadku testów jednostkowych.