Садржај

Повезане класе - задаци

1. Слика са слојевима

1. Слика са слојевима

Слика може да садржи 0 или више слојева, а сваки слој садржи 0 или више правоугаоника. Слој може да се извуче на врх или на дно слике, тј. да се постави изнад или испод осталих слојева. Слично томе, правоугаоник може да се извуче на врх или на дно слоја.

Написати класе Image, Layer, Rectangle, тако да следећи кôд може да се изврши.

Подразумева се да се овај кôд извршава у овиру Windows Forms апликације. Извршавањем датог кôда треба да се добију редом ове слике:

../_images/layered_image.png

Резултат извршавања функције за тестирање.

Упутство: анализом функције за тестирање може да се закључи како треба да изгледа јавни део класа Image, Layer, Rectangle, тј. њихов интерфејс.

Један такав интерфејс може да се добије кликом на дугме испод.

2. Позориште

2. Позориште

Написати класе Pozoriste, Predstava, Izvodjenje, Glumac, које омогућавају једноставну симулацију рада позоришта, у складу са описом који следи.


Позориште има репертоар представа и листу глумаца (у овом моделу нема других запослених).

Позориште може:

  • да запосли глумца

  • да отпусти глумца, ако овај нема активних представа

  • да дода представу у реперторар

  • да врати преглед актуелних представа (види пример за детаље)


Представа има (поред осталог) назив и број потребних глумаца, које треба навести као параметре конструктора. Представа може:

  • да да информацију да ли је активна

  • да ангажује глумца

  • да ослободи глумца, ако није активна

  • да се активира, ако има довољно ангажованих глумаца

  • да се деактивира

  • да се закаже

  • да се изведе

  • да врати преглед заказаних извођења и броја преосталих карата (види пример за детаље)


Извођење има датум, време, број купљених карата и број слободних места.

Извођење може да прода захтевани број карата, ако их има на располагању.


Глумац има име и максималан број представа на којима може истовремено да игра.

Глумац може:

  • да одговори на питање да ли је слободан (да ли може да прихвати ангажовање на новој представи)

  • да буде ангажован, ако је слободан

  • да буде ослобођен ангажовања

  • да евидентира извођење представе на којој је ангажован

  • да врати текстуалну репрезентацију, која садржи име и број одиграних представа (види пример за детаље)

Класе треба да буду написане тако да следећи кôд може да се изврши.

Извршавањем датог кôда треба да се добијe следећи резултат:

Упутство: анализом функције за тестирање може да се закључи како треба да изгледа јавни део класа Pozoriste, Predstava, Izvodjenje, Glumac, тј. њихов интерфејс.

Један такав интерфејс може да се добије кликом на дугме испод.

3. Ресторан

3. Ресторан

Написати класе Restoran, Sto, Porudzbina, које омогућавају једноставну симулацију рада ресторана, у складу са описом који следи.

Поред ових класа, потребно је написати и метод Main класе Program, за испробавање рада осталих класа.


Ресторан садржи столове, сто поруџбине, а поруџбина ставке менија, које имају назив и цену.

Поруџбина може да буде активна и у том слуачју може да се допуњава. Поруџбина се деактивира плаћањем.

Само последња поруџбина датог стола може да буде активна, што значи да сто може да има највише једну активну поруџбину. Сто може да буде слободан или заузет. Само заузет сто може (а не мора) да има активну поруџбину. Ако сто нема активну поруџбину, он може да је креира на захтев. Сто уме да пружи информације колико дуго је био заузет и колико је зарадио у одређеном периоду.

Ресторан може да се отвори, односно затвори. Након отварања сви столови су слободни. Пре затварања све поруџбине морају да се наплате, а столови да се ослободе. Ресторан може да да разне врсте информација и извештаја, као што су:

  • број тренутно слободних столова ,

  • преглед зараде по столовима за дати период,

  • преглед заузетости по столовима за дати период (за сваки сто проценат времена током којег је тај сто био заузет).

У овом задатку је остављен већи степен слободе у погледу смишљања интерфејса класа. Задатак може да се ради у пару или мањој групи, али при томе не треба да сваки члан пара или групе ради на свим деловима програма, него чланови треба заједно да се договоре око интерфејса свих класа, а затим да поделе посао. Након поделе, сваку класу (укључујући и класу Program) треба самостално да напише један члан пара или групе, при чему један члан може да напише и више класа.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+