4IT101 Programování v Javě - cvičící Tomáš Michalička

Aktuální cvičení

Projekt ke cvičení 12.12. je zde.

Kontakt

Bodování

Úkol Počet bodů Poznámka
Domácí úkoly 20 4 domácí úkoly po 5 bodech
Průběžné testy (teorie) 10 2 testy v Insis po 5 bodech
Test - programování 10 Doporučená příprava na test
Semestrální práce 30 Podrobnosti na stránkách předmětu.
Závěrečný test 30 Podrobnosti na stránkách předmětu.

V případě aktivity na cvičeních je možné získat bonusové body.

Harmonogram

Týden Poznámka
2. týden Zadání 1. domácího úkolu
3. týden 1. teoretický test
4. týden Odevzdání 1. domácího úkolu, zadání 2. domácího úkolu
6. týden Odevzdání 2. domácího úkolu, zadání 3. domácího úkolu
7. týden Programovací test
8. týden Odevzdání 3. domácího úkolu, zadání 4. domácího úkolu
9. týden Zadání 4. domácího úkolu
10. týden 2. teoretický test, odevzdání 4. domácího úkolu
11. týden Odevzdání 4. domácího úkolu

Zadání domácích úkolů

1. domácí úkol (Zoo)

Stáhněte si projekt zde.

Pokyny

  1. Doplňte gettery a settery do třídy Majitel.
  2. Vytvořte minimálně 2 třídy, které budou implementovat interface Zvire (všechny metody z interface budou implementované dle dokumentace).
  3. U každé třídy z bodu 2 přepište metodu toString(), která bude vracet řetězec v následujícím tvaru (ve složených zavorkách jsou proměnné): "Zvire {jmeno_zvirete} je stare {vek_zvirete} a je vlastneho majitelem jmenem {jmeno_majitele} {prijemni_majitele}."
  4. Ve třídě Zoo v metodě vyrobZvirata vytvořte minimálně 4 instance tříd z bodu 2. Každá instance bude mít nastaven věk a majitele. Instance pak přidejte do seznamu podle vzoru v komentáři metody.

Vyhodnocení

"Best of"

2. domácí úkol (Eshop)

Úkol vypracujte zcela samostatně.

Pokyny

  1. Vytvořte interface Zbozi, který bude obsahovat následující metody (parametry a návratové typy metod doplňte dle potřeby):
    1. getCena
    2. getNazev
  2. Vytvořte alespoň 2 třídy implemetující interface Zbozi (například Kosile a Svetr).
  3. Vytvořte třídu Kosik, která bude obsahovat následující metody:
    1. void vyprazdniKosik() - metoda vyprázní košík
    2. void vloz(Zbozi zbozi) - metoda vloží zboží do košíku
    3. int pocetKusu(String nazev) - metoda vrátí počet kusů zbozí v košíku, které má daný název
    4. double spocitejCenu() - metoda sečte cenu za všechny položky v košíku
    5. void vypisKosik() - metoda vypíše na konzoli názvy všech položek v košíku
  4. Napište unit test pro metody spocitejCenu() a pocetKusu(String nazev) - v košíku musí být minimálně jedna instance obou tříd implementujících interface Zbozi
Požadované vlastnosti projektu
  1. Cena zboží může být kladné desetinné číslo.
  2. Velikost košíku je omezena pouze pamětí JVM. Teoreticky do něj tak musí být možné vložit tisíce kusů zboží.

3. domácí úkol (Zadání semestrální práce)

Ve 3. domácím úkolu nebudete nic programovat. Projděte si požadavky na semestrální práci. Následně připravte zadání vlastní semestrální práce, které bude obsahovat:

  1. Příběh jak hra začíná, tj. uvedení do příběhu, co se stalo a co je hráčovým úkolem. Tento text pak budete hráči zobrazovat při spuštění hry.
  2. Plánek hry (obrázek), jaké prostory bude hra obsahovat a jak jsou propojeny.
  3. Popis toho, co bude muset hráč udělat, aby hru vyhrál. Případně také, co se stane, když některé úkoly nesplní (špatné konce hry).
  4. Seznam příkazů, které bude moci hráč při hře používat.

Odevzdejte jako soubor ve formátu doc, docx nebo pdf.

4. domácí úkol (Analýza logů)

Vaším úkolem je vytvořit jednoduchý program, který bude umožňovat analýzu logů. Soubor s testovacím logem si můžete stáhnout zde.

Program se bude spouštět přes příkazovou řádku s následujícími příkazy:

Program nesmí být závislý na OS. Do odevzdávárny vkládejte jar soubory obsahující i zdrojové kódy tříd. Bez zdrojových kódů nebude odevzdání úkolu platné.