Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
S Sample_Solutions
  • 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
    • 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
  • OOP
  • Sample_Solutions
  • Wiki
  • Assignment part 2

Assignment part 2 · Changes

Page history
Create Assignment part 2 authored Nov 29, 2019 by Ing. Lukáš Hruška's avatar Ing. Lukáš Hruška
Hide whitespace changes
Inline Side-by-side
Showing with 72 additions and 0 deletions
+72 -0
  • Assignment---part-2.md Assignment---part-2.md +72 -0
  • No files found.
Assignment---part-2.md 0 → 100644
View page @ 3f65f350
# Zadanie Časť 2
## 0. PizzaLib
`abstract class Item` premenujte na `AbstractItem` (nezabudnite na refaktorizáciu kódu!)
pridajte rozhranie `Item`
nech toto rozhranie definuje verejné metódy, ktoré máte implementované v `AbstractItem` teda aspoň
```csharp
double GetAmount();
bool IsLow();
void Add(double amount);
void Remove(double amount);
```
(nech `AbstractItem` implementuje `Item`)
Pridajte si interface `IInventory, nech toto rozhranie obsahuje aspoň
```csharp
List<Item> GetItems();
Item GetItem(Predicate<Item> predicate);
void AddItem(Item item)
```
nech `Inventory` implementuje `IInventory`
(v prípade, že máte implementované aj iné verejné metódy, pridajte si ich do týchto rozhraní, zvážte, či sú potrebné - ak áno, určite to zníži zhodu pri kontrole orginality)
Nech `ISellable` obsahuje `void SetInventory(IInventory inventory)` ktorá slúži na nastavenie referencie na sklad, ktorý je následne využitý v `Order()`.
V rámci tried, ktoré zobrazujete na DataGridView budete potrebovať použiť properties, inak sa nič nezobrazí. Na tomto mieste je vhodné použiť vlastnosti (properties) bez členskej premennej a bez mutátora (set), príklad:
```csharp
private double outsideTemperature;
public bool IsColdOutside { get { return IsFreezing; } }
private bool IsFreezing()
{
return outsideTemperature < 273.16; //trojný bod vody
}
```
## 1. Sklad
Vytvorte si nový formulár, ktorého cieľom bude zobrazenie stavu a evidencia obsahu skladu. Na zobrazenie použite DataGridView.
1. Pri dvojkliku na DataGridView sa otvorí nový formulár, ktorý umožňuje modifikáciu existujúceho riadku, v prípade dvojkliku na prázdny riadok tento formulár umožní pridanie nového artiklu do skladu.
2. Pridajte možnosť filtrovania artiklu podľa názvu.
3. Pridajte RadioButton alebo CheckBox (podľa vlastnej voľby) pre voľbu filtru Všetky (ak používate checkbox, označí všetky ostatné automaticky) / Prísady / Ostatné. Ak pužívate aj iné kategórie pre tovar, tiež ich zobrazte)
4. aaa
Okno pre sklad zobrazte ako klasické okno (`Form.Show()`), okno pre artikel v sklade zobrazte ako modálne / diálogové okno (`Form.ShowDialog()`).
## 2. Objednávky
Vytvorte si triedu, ktorá bude reprezentovať objednávku pre určitý stôl.
Vytvorte si triedu, ktorá bude reprezentovať stoly v reštaurácií, nech táto trieda umožňuje prístup k jednotlivým stolom.
__poznámka: vhodné je tu použiť `Dictionary<Button, Table>`__
Nezabudnite dodržať oddelenie UI a programovej logiky - táto trieda poskytuje dáta, nepracuje s UI
Vytvorte si triedu zodpovednú za tlačenie bločkov, nech táto trieda implmenetuje návrhový vzor Singleton.
Na hlavný formulár pridajte tlačidlá reprezentujúce stoly. Po kliknutí na tlačidlo sa otvorí novy formulár, kde bude zobrazená objednávka, jej úprava, pridanie nových vecí a tlač bločku. V tomto formulári ošetrite aj výnimku, ktorá sa vyvolá pri nedostatku materiálu na sklade.
__Pozor! v prípade nedostatku surovín pri objednaní pizze sa žiadna surovina nesmie zo skladu stratiť - kontrolu vykonajte v rámci Pizza.Order()!__
Clone repository
  • Assignment part 1
  • Assignment part 2
  • Assignment part 3
  • Cv10
  • Cv11
  • Cv4
  • Cv5
  • Cv7
  • Cv8
  • Cv9
  • Requirements
  • Home