Садржај
2 Класе и објекти
2.1 Основни појмови о класама и објектима
3 Генеричке класе
4 Наслеђивање и полиморфизам
5 Примери пројеката са решењима
5.1 Различита кретања
5.2 Квиз
5.4 Приказ рада алгоритама сортирања

Групе класа – задаци

1. Имитирање програмског пакета ГеоГебра

Искористите библиотеку AnalitickaGeometrija дату у лекцији и направите графичку апликацију која омогућава приказивање геометријских конструкција, уз могућност прилагођавања целе конструкције накнадној измени полазних података, као у програмском пакету ГеоГебра. Овај пакет поред поменуте, има и многе друге могућности, али оне нису тема овог задатка.

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

Написати графичку апликацију која подржава креирање слика састављених од слојева. Свака слика садржи један или више слојева, који се приказују један преко другог. Ради једноставности, нека се слој састоји само од правоугаоника, којих може да буде 0 или више. Апликација треба да омогући извлачење слоја на врх или на дно слике, тј. његово постављање изнад или испод осталих слојева. Слично томе, правоугаоник може да се извуче на врх или на дно слоја, тј. да се постави испод или изнад свих осталих правоугаоника у том слоју.

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

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

../_images/layered_image.png

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

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

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

3. Позориште

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


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

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

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

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

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

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


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

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

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

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

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

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

  • да се закаже,

  • да се изведе, и

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


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

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


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

Глумац може:

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

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

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

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

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

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

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

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

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

4. Ресторан

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

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


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

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

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

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

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

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

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

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

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