Skúška 29.1.2020
- Je povolené používať svoj (už existujúci) kód a tiež internet na vyhľadanie informácii týkajúcich sa syntaxe jazyka C#, metód a pod. Nie je povolené komunikovať cez Internet (ani inak) s použitím mailu, chatu, Facebooku a pod. Porušenie tohto zákazu je dôvodom pre vylúčenie zo skúšky s hodnotením 0 bodov. Nie je povolená žiadna forma plagiátorstva (čiastkové riešenia problémov môžete použiť, v takomto prípade uveďte do komentárov URL).
- V prípade, že bude odhalený pokus o podvod, všetci zúčastnení na podvode budú vylúčení zo skúšky s hodnotením 0 bodov.
- Ak sú v zadaní uvedené názvy tried, premenných a metód, používajte presne tie mená, ktoré sú uvedené v zadaní.
- Dodržanie bodov uvedených v podmienkach akceptácie zadania – rovnaké podmienky platili pri zápočte.
- Uznané bude len riešenie, ktoré je možné skompilovať a spustiť na testovacom počítači (na ktorom sa budú spúšťať všetky zadania).
- Hotové zadanie nahrajte na Hades - nezabudnite pred zabalením dať clean solution (a vymazať skrytý priečinok .vs)
Na vypracovanie zadania máte 60 minút. Použite konzolovú aplikáciu. Body sa prideľujú iba ak je študent schopný obhájiť svoj kód, nestačí, že to je napísané.
Ak používate kód prebraný z internetu, je nutné uviesť zdroj.
Úloha 1
(25 bodov)
Vytvorte si rozhrania:
public interface IProduct
{
public string ToString();
}
public interface IFactory
{
IProduct GetText();
}
Vytvorte si triedy pre rôzne artikle, ktoré sa môžu vyskytovať v obchode (pozrite si priložený súbor).
Vytvorte si abstraktnú triedu AbstractFactory
:
public abstract class AbstractFactory
{
public abstract IProduct GetProduct(string name, double price, double amount);
}
Vytvorte si potrebné factory triedy a implementujte návrhový vzor abstract factory.
Úloha 2
(10 bodov)
Pridajte si triedu FactoryProvider
a zabezpečte, aby sa stále zvolila správna factory.
Úloha 3
(15 bodov)
Vytvorte si rozhranie
public interface ITextProcessor
{
IEnumerable<string> GetText();
}
a triedu CsvProcessor
, ktorá implementuje ITextProcessor
. V tejto triede načítajte súbor. Následne na vhodnom mieste spracujte záznamy a vytvorte zodpovedajúce produkty.
Úloha 4
(5 bodov)
Zabezpečte, aby sa do konzoly vypísali všetky načítané produkty a základné informácie o nich.
Vypíšte 2 štatistiky o nákupe - napríklad celková cena, počet rôznych artiklov, atď... (pozor - v súbore price
uvádza cenu za jednotkové množstvo)
Ďalšie body
Dodržanie zapúzdrenia, coding guidelines - 5bodov;