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

exam 3 · Changes

Page history
Create exam 3 authored Jan 24, 2022 by Ing. Lukáš Hruška's avatar Ing. Lukáš Hruška
Show whitespace changes
Inline Side-by-side
Showing with 81 additions and 0 deletions
+81 -0
  • exam-3.md exam-3.md +81 -0
  • No files found.
exam-3.md 0 → 100644
View page @ d069b899
# 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
```csharp
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:
```csharp
void Add(IFileSystemComponent component);
void Remove(IFileSystemComponent component);
IEnumerable<IFileSystemComponent> GetChildNodes(); //vrati zoznam vnorenych uzlov
```
## Úloha 2
(10 bodov)
Pridajte si triedu
```csharp
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__):
```text
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