Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
P PVJCs2021
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Ing. Lukáš Hruška
  • PVJCs2021
  • Wiki
  • exam 3

Last edited by Ing. Lukáš Hruška Jan 24, 2022
Page history

exam 3

Skúška 24.1.2022

  • 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).

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

(30bodov)

Vytvorte si rozhranie

public interface IFileSystemComponent
{
    void DisplayInfo(); //implementovat v ulohe 2, podla potreby moze byt oznacena ako abstract
    void SetLevel(int level); //NEPOVINNE - na zjednodusenie prace, aby ste vedeli, na akej urovni sa nachadza
    string GetName();
    int GetSize();
}

Implementujte návrhový vzor composite - existujú dva spôsoby, ako ho implementovať. Podľa toho, ktorý ste si zvolili:

  • Vytvorte si buď triedu FileSystemComponent alebo triedy File a Directory; v oboch prípadoch sa bude rozširovať rozhranie IFileSystemComponent
  • pridajte nasledujúce metódy na vhodné miesto (závisí, ktorý spôsob robíte) v horeuvedených triedach:
void Add(IFileSystemComponent component);
void Remove(IFileSystemComponent component);
IEnumerable<IFileSystemComponent> GetChildNodes(); //vrati zoznam vnorenych uzlov

Úloha 2

(10 bodov)

Pridajte si triedu

public class OutputWriter
{
    public static OutputWriter GetInstance()
    {
        //magic
    }

    void WriteLine(string line)
    {
        //more magic
    }
}

a implementujte ju ako singleton. Vo funkcií WriteLine zabezpečte výpis na obrazovku.

Implementujte metódu DisplayInfo tak, aby ste dostali obdobný výpis (súbory si zvoľte vlastné - nech sú aspoň 3 úrovne hierarchie):

home/ (13k)
  user/ (13k)
    .bashrc (4k)
    .bash_history (9k)
mnt/ (9013k)
  memes/ (9001k)
    memes.zip (9001k)
  work/ (12k)
    Sokoban/ (12k)
      main.c (3k)
      MAKEFILE (1k)
      sokoban.c (7k)
      sokoban.h (1k)
Clone repository
  • assignment 1
  • assignment 2
  • cv10
  • cv2
  • cv3
  • cv4
  • cv5
  • cv7
  • cv8
  • cv9
  • exam 0
  • exam 1
  • exam 2
  • exam 3
  • exam 4
View All Pages