Skúška 15.1.2020
- Je povolené používať 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é mená pre premenné a metódy 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 WPF. Body sa prideľujú iba ak je študent schopný obhájiť svoj kód, nestačí, že to je napísané.
Úloha 1
(20bodov)
Vytvorte si rozhranie:
public interface IDataProvider
{
IEnumerable<JsonData> GetData();
}
Vytvorte si dve triedy:
-
DataProvider
ktorá implementuje toto rozhranie, v konštruktore bude jeden parameter - cesta k súboru.-
GetText()
vráti rozparsovaný obsah tohoto súboru.
-
-
JsonData
na ktorú budú mapované dáta zo súboru (pozor, zvyklosti nazývania hodnôt v JSON-e nezodpovedajú tým v C# - zabezpečte mapovanie)
Implementujte načítanie a parsovanie dát - na spracovanie Jsonu môžete použit externú knižnicu (napr. Newtonsoft.Json / Json.NET).
Úloha 2
(25bodov)
Vytvorte si rozhranie INumberConverter
public interface INumberConverter
{
public string ConvertToString(int value, string format);
}
abstraktnú triedu AbstractNumberConverter
a triedy BinaryNumberConverter, HexNumberConverter, UnknownFormatConverter
a implementujte návrhový vzor chain of responsibility (zvážte, ktoré triedy majú čo implementovať a od čoho dediť):
- Na konverziu do iných číselných sústav môžete použiť
Convert.ToString(value, base)
kde base je číselná sústava. - Zabezpečte, aby sa čísla vypísali v štandardnom formáte (0xa9 / 0xA9 a 0b10101001 - medzery neriešte).
- v prípade, že sa vo vstupnom súbore objaví iný formát na konverziu, vráťte miesto hodnoty chybové hlásenie.
Úloha 3
(10bodov)
Pridajte si na obrazovku ovládacie prvky (Button, DataGrid
) a zabezpečte, aby sa po stlačení tlačidla prečítal súbor, vykonala konverzia a výsledky vypísali do DataGrid.
Zvážte potrebu pridania ďalších tried.
Ďalšie body
Dodržanie zapúzdrenia, coding guidelines - 5bodov;