Skip to content

Cvičenie 11: Polročný projekt

Na tomto cvičení sa rozdelíte do skupín po 3 a vyberiete si jedno zo zadaní.

Pokyny

Na vypracovanie zadania máte 2 týždne. Po odovzdaní svoj projekt odprezentujete na hodine. Za projekt budete ohodnotení známkou.

Odovzdanie projektu po termíne znamená zníženie známky z projektu. Nesplnenie niektorých častí zadania znamená zníženie známky. Minimálne požiadavky:

  • Java Projekt na GitHube
  • Dokumentácia v Markdowne, README.md súbor
  • Program spustiteľný v IntelliJ IDEA
  • Program má textové menu, pomocou ktorého vieme ovládať jeho funkcionality a generovať výpisy
  • Každý aspoň 3 netriviálne commity v troch rôznych dňoch (Jeden študent má mať aspoň 3 dni kedy urobil netriviálny commit na GitHub)
  • Výsledná prezentácia vo forme PDF alebo PPT
  • UML Class Diagram (diagram tried) v Mermaid, plus vložený do prezentácie
  • Flow chart vybranej časti logiky programu (vývojový diagram) v Mermaid, plus vložený do prezentácie

Rozdelenenie zodpovednosti

V rámci trojčlennej skupiny si medzi seba rozdeľte nasledovné zodpovednosti (Nie každé zadanie vyžaduje všetky zodpovednosti):

  • Modelovanie hlavnej logiky programu do tried a metód
  • Ošetrenie vstupných hodnôt, krajné a špeciálne prípady
  • Vstup a výstup do súboru a sťahovanie z internetu, formát a syntax súborov
  • Užívateľské rozhranie - Práca s konzolou, menu programu
  • UML Diagram tried, Vývojový diagram vybranej časti logiky programu
  • Dokumentácia v markdowne, README.md, GitHub
  • Vzorové vstupné alebo testovacie dáta

Úloha do konca tohto cvičenia

Do konca tohto cvičenia je potrebné rozdeliť sa do skupín, vybrať si zadanie, určiť predbežné rozdelenie zodpovednosti a vytvoriť repozitár na GitHube

Zadanie 1 - Textová adventúra

Toto zadanie je pre študentov, s ktorými mám aj OPGP.

  • Textová adventúra, zobrazí popis miesnosti, predmety v miestnosti a predmety v inventári
  • Akcie: Pohyb medzi miestnosťami (go vychod), použitie predmetu z inventára (use maceta), vzatie predmetu z miestnosti do inventára (take kluc)
  • Hra musí vedieť pracovať s mapou v .json súbore hra12.json
  • Vytvoriť vlastnú mapu s aspoň 5 miestnosťami, 2 koncami a 3 predmetmi, ktoré budú mať využitie

Zadanie 2 - Knižnica

Program na správu knižnice, kde pomocou textového užívateľského rozhrania je možné pracovať s inventárom kníh.

Funkcionality:

  • Pomocou tried namodelovať knižnicu, inventár kníh a knihu
  • Možnosť pridať knihu, vyradiť knihu
  • Možnosť vypožičať knihu, vrátiť knihu
  • Analytika: Výpis všetkých kníh
  • Výpis vypožičaných kníh, alebo kníh po výpožičnej dobe

  • Možnosť zoradiť knihy podľa kategórie (beletria, dobrodružné, detské, ...)

Zadanie 3 - Lekáreň

Program na správu lekárne, kde pomocou textového užívateľského rozhrania je možné pracovať so skladom s liekmi.

Funkcionality:

  • Pomocou tried namodelovať lekáreň, sklad liekov, liek
  • Každý liek má názov, účinnú látku, dátum expirácie a cenu
  • Ovládanie: Naskladniť liek, predať liek pacientovi
  • Možnosť vyradiť lieky po expiracii
  • Analytika: Vypísat všetky lieky, vypísat lieky po expirácii
  • Možnosť zoradiť výpis podľa kategórii. (účinná latka)

Zadanie 4 - PC Servis

Program na správu PC Servisu, kde pomocou textového užívateľského rozhrania je možné pracovať s PC komponentami.

Funkcionality:

  • Pomocou tried namodelovať servis, sklad komponentov a PC zostavu.
  • PC komponenty - kategórie CPU, RAM, SSD, GPU, MB, ZDROJ, CASE
  • Každý komponent má názov, cenu, kategóriu.
  • Možnosť manuálne vytvoriť PC zostavu
  • Možnosť automaticky vytvoriť zostavu do určitej sumy
  • Možnosž predať zostavu - odstránenie komponentov so skladu
  • Analytika: Výpis zostavy.
  • Analytika: Výpis inventára podľa kategórií

Zadanie 5 - Analýza ceny zlata

Program na analýzu ceny zlata. Práca s .csv súborom.

Funkcionality:

  • Načitať dáta z https://datahub.io/core/gold-prices alebo z iného aktuálnejšieho zdroja
  • Pomocou tried namodelovať dataset a položky
  • Výpis mesačných cien v danom roku.
  • Výpis priemeru a mediánu v danom roku.
  • Výpis maxima (hodnota a dátum). Výpis maxima v danom roku.
  • Vypis majetku ku dnešnému dňu na základe toho, kedy ste zlato kúpili (zadáte napríklad, že ste kúpili 10oz zlata v 2010-10 a vypočíta aktuálnu hodnotu majetku)

Zadanie 6 - Nutričná kalkulačka

Program na nutričnú kalkulačku, pomocou ktorej si viete zostaviť jedálniček a ohodnotiť jeho vhodnosť

Funkcionality:

  • Pomocou tried namodelovať nutričnú kalkukačku, katalóg jedál, jedlo, jedálniček.
  • Jedlo má názov, kcal, bielkoviny, tuky, uhľohydráty
  • Možnosť vytvoriť denný jedálniček a vypočítať príjem kalórií a nutrientov
  • Možnosť ohodnotiť jedálniček podľa porovnania s ideálnym denným príjmom kalórií a makronutrientov pre daný typ osoby (pohlavie, vek, aktivita)

Zadanie 7 - TODO aplikácia

Program na správu poznámok - TODO aplikácia.

Funkcionality:

  • Možnosť spravovať viacero TODO
  • Každé TODO ma názov a položky
  • Položka má názov, popis, flag či je splnená a či nie a optional deadline (dokedy je potrebné položku splniž).
  • Pomocou tried vhodne namodelovať vyššie uvedené koncepty.
  • Analytika: Vypis názvov TODO. Výpis položiek v danom TODO.
  • Analytika: Zoradiť položky podľa názvu, deadline, pričom splnené dať na koniec.
  • Moznosť vytvoriť a vymazať TODO a položky
  • Možnosť označiť položku ako splnenú.

Zadanie 8 - Analýza filmov

Toto zadanie je pre študentov, s ktorými mám aj OPGP.

Funkcionality:

  • Analýza filmov ako sme robili na OPGP v Pythone
  • Načítať filmy z JSON súboru https://raw.githubusercontent.com/prust/wikipedia-movie-data/master/movies.json
  • Pomocou tried vhodne namodelovať databázu a film.
  • Vyhľadávanie podľa herca, alebo názvu filmu
  • Výpis filmov v danom žánri v danom roku.
  • Výpis stránkovať, teda po určitom počte riadkov počkať na stlačenie klávesy a potom pokračovať ďalšou "stranou"

Zadanie 9 - Mesačný rozpočet

Program na správu mesačného rozpočtu. Práca so súborom.

Funkcionality:

  • Pomocou tried vhodne namodelovať mesačný rozpočet a položky
  • Mesacny rozpočet obsahuje položky
  • Položka má názov a kategóriu
  • Možnosť pridať a ubrať položky. Ku každej položke v rozpočte uviesť cenu
  • Analytika: Výpočet celkových výdavkov, výpis položiek podľa ceny a kategórie.
  • Uloženie rozpočtu do súboru a načítanie rozpočtu zo súboru CSV alebo JSON.
  • Aspoň 5 súborov s rôznymi rozpočtami (slobodný muž, slobodná žena, dôchodca, rodina, poslanec).

Zadanie 10 - Inflácia

Program na analýzu inflácie. Práca so súborom.

Funkcionality:

  • Infláciu načítať z .csv zo stránky https://datahub.io/core/inflation
  • Vhodne namodelovať pomocou tried dataset a položku (krajina, inflácia).
  • Možnosť zobraziť inflácie pre krajinu alebo inflácie všetkých krajin za určitý rok
  • Možnosť vypísať rebríček krajín podľa inflácie na základe zadaného časového obdobia
  • Výpis stránkovať, teda po určitom počte riadkov počkať na stlačenie klávesy a potom pokračovať ďalšou "stranou"