Cvičenie 10: Dedičnosť¶
V dnešných úlohách si precvičíme dedičnosť a rozhrania. Dnešné úlohy nie sú definované presne a dopodrobna. Je na vás, aby ste detaily týchto úloh navrhli tak, aby splnili účel tohto zadania a neprinášali do riešenia zbytočnú zložitosť navyše.
K navrhnutým triedam si vytvoríme aj diagram tried v nástroji Mermaid, podľa pravidiel, ktoré sme si vysvetľovali na predchádzajúcich hodinách teórie.
Správa tovaru v záložni¶
Zadanie úlohy:
- Navrhnite systém pre správu tovaru v záložni
- Pre vlastnosti jednotlivých tovarov navrhnite vhodné rozhrania
- Kategórie tovarov reprezentujte formov tried
- Vytvorte triedy pre sklad a pre chod záložne
Úloha 10.1: Základná trieda tovaru
Napíšte triedu Tovar s nasledovnými atribútmi:
- názov
- dátum príjmu
- stav
- trhova cena
- zalozna cena
- doba splatnosti
Pre atribúty vytvorte getter metódy a vytvorte konštruktor.
Vytvorte metódu main pre otestovanie funkčnosti.
Úloha 10.2: Rozhrania kategórii tovarov
Vytvorte rozhrania pre nasledovné kategórie tovarov:
MaDrahyKovs metódamigetRydzost,getMaterial,getVahaMaZnackuModels metódamigetZnacka,getModelStarozitnostVekoveObmedzenie
Úloha 10.3: Triedy tovarov
Vytvorte triedy pre nasledovné tovary:
Sperk- implementujeMaDrahyKovStarozitnySperk- dedi z driedySperk, implementujeStarozitnostMinca- implementujeMaDrahyKovElektronika- implementujeMaZnackuModelMobilnyTelefon- dedi z triedyElektronikaZbrane- implementujeMaZnackuModelaVekoveObmedzenie
Pre každú triedu naimplementujte aj toString.
Úloha 10.4: Sklad tovaru
Vytvorte triedu Sklad s nasledovnou funkcionalitou:
- pridanie tovaru
- odobranie tovaru
- vratenie zoznamu vsetkych veci v sklade
- celkovaHodnota
Vytvorte metódu main pre otestovanie funkčnosti.
Úloha 10.5: Záložňa
Vytvorte triedu Zalozna s konštruktorom a atribútmi:
- sklad
- pokladňa (double)
Vytvorte metódy:
- odkup tovaru (zmenší pokladňu a zvýši sklad)
- predaj tovaru
- splatenie tovaru - ako predaj, ale použije zaloznu cenu plus úrok
Vytvorte príklad použitia vyššie uvedených tried. Na sklade aby ste mali aspoň 10 tovarov.
Úloha 10.6: Diagram tried
Vytvorte diagram tried napr. v nástroji Mermaid pre triedy z predchádzajúcich úloh. V diagrame vhodne znázornite vzťahy medzi jednotlivými triedami.
Úloha 10.7: Textové ovládanie
Vytvorte triedu TextoveUI, ktoré bude poskytovať textové ovládanie pre prácu so
záložňou, teda umožní predaj, odkup a splatenie
Vytvorte hlavný vstup do programu.
Úloha 10.8: Trieda Historia
Vytvorte triedu Historia, ktorá bude uchovávať históriu udalostí v záložni. Bude mať nasledovné metódy:
novyZaznam- zapíše nový záznamlastZaznamy- vráti n posledných záznamov
Upravte triedu Sklad a Zalozna tak, aby sa pri zmenéch zapísala udalosť do histórie.
Upravte triedu TextoveUI tak, aby v nej bola možnosť vypísať posledné záznamy z histórie.
Úloha 10.9: Analytika
Vytvorte triedu Analytika s nasledovnými metódami:
predatelnyTovar- zoznam tovarov, ktorá sú po dobe splatnostinajdrahsiTovarnajstarsiTovarpriemernaCenaposlednePredane
Metódy naimplementujte a napíšte príklady použitia týchto metód.