Třída Sklad (obsahuje název, nosnost skladu v kg a vhodnou strukturu na uchovávání údajů o množství uskladněného zboží) - název skladu je řetězec, nemá žádný další než jen informativní význam. Nosnost skladu uvedená v kg se projeví tak, že pokusíme-li se do skladu uložit zboží o větší hmotnosti, než je aktuální volná nosnost skladu, je vyvolána výjimka PrilisTezkeException (viz níže). Obsazováním skladu se volná nosnost samozřejmě snižuje o hmotnost uloženého zboží.
Metody třídy Sklad:
double naskladni(DruhZbozi zbozi, double jednotek) - naskladní příslušný počet jednotek daného zboží (je-li volná kapacita) a vrátí počet naskladněných jednotek.
double vyskladni(DruhZbozi zbozi, double jednotek) - vyskladní příslušný počet jednotek daného zboží (je-li ho tam tolik) a vrátí počet skutečně vyskladněných jednotek. Není-li ve skladu alespoň požadovaný počet jednotek zboží, vyskladní tolik, kolik tam je.
double presun(DruhZbozi zbozi, double jednotek, Sklad kam) - přesune zadaný počet jednotek zboží z jednoho skladu do druhého. Při nedostatku zboží nebo přetížení skladu se chová podobně jako vyskladnění z jednoho a naskladnění do druhého skladu.
Třída DruhZbozi (název, jednotková hmotnost)
Třída PrilisTezkeException (DruhZbozi, počet jednotek, volná nosnost ve skladu) - výjimka, která se vytvoří, pokusíme-li se naskladnit zboží nad volnou nosnost.
Třída Demo - tato třída je již hotová, musí beze změny pracovat s vámi navrženými třídami.