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

Last edited by Ing. Lukáš Hruška Nov 29, 2019
Page history

Assignment part 2

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ň

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ň

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:

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