ОО1/Лаб 2 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

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

В1

Поставка домаћег задатка може се пронаћи на страници предмета.

Написати на језику C++ следеће класе (класе опремити оним конструкторима, деструктором и операторима доделе који су потребни за безбедно и ефикасно коришћење класа):

  • Цвет има назив, целобројну набавну и целобројну продајну цену, који се задају при стварању и могу да се дохвате. Могуће је израчунати зараду од продаје цвета. Могуће је упоредити два цвета на једнакост (cvet1==cvet2). Цветови су једнаки уколико су им једнаки називи. Могуће је исписати цвет у излазни ток (it<<cvet) тако што се исписује његов назив.
  • Букет садржи произвољан број цветова. Ствара се празан, након чега је цветове могуће додавати појединачно. Могуће је израчунати набавну и продајну цену букета. Могуће је израчунати зараду од продаје букета. Могуће је упоредити два букета (buket1>buket2) тако што се упоређују њихове продајне цене. Могуће је исписати букет у излазни ток (it<<buket) тако што се исписују сви различити цветови у букету одвојени зарезима и продајна цена букета у облику(цветови)продајна_ценаRSD.
  • Време се састоји из сата и минута који се задају при стварању (подразумевано 00:00). Могуће је упоредити два времена (vreme1>vreme2). Могуће је исписати време у излазни ток (it<<vreme) у облику сати:минути, при чему се оба дела времена исписују на ширини од две цифре са водећом нулом по потреби.
  • Поруџбина се састоји из букета и времена доставе који се задају при стварању и могу да се дохвате. Могуће је израчунати зараду од достављене поруџбине као збир зараде од продаје букета и цене доставе. Цена доставе зависи од времена доставе и износи 100 динара уколико је време доставе између 09:00 и 16:59, односно 250 динара у супротном. Могуће је исписати поруџбину у излазни ток (it<<porudzbina) у формату време-букет.
  • Цвећара садржи произвољан број букета уређених растуће по продајној цени и целобројну зараду која је при стварању 1000. Ствара се празна, након чега је букете могуће додати појединачно. Додавање букета се игнорише уколико је проценат (у односу на набавну цену) од продаје букета мањи од 20%. При додавању букета у цвећару, зарада цвећаре се умањује за набавну цену букета. Могуће је продати букет са задате позиције. Продати букет се уклања из цвећаре, а потом се увећава зарада цвећаре за продајну цену букета. Цвећару је могуће обавестити о достави задате поруџбине и тада се зарада цвећаре увећава за зараду од достављене поруџбине.Могуће је исписати цвећару у излазни ток (it<<buket), тако што се у првом реду исписује зарада у облику zarada=зарадаRSD, а потом се букети исписују у појединачним редовима.
  • Достављач цвећа се ствара задавањем цвећаре за коју је ангажован и садржи одређен број поруџбина, уређених растуће по времену доставе, чији је максималан број задат при стварању. Ствара се празан, након чега је поруџбине могуће додати појединачно. Могуће је дохватити тренутни број поруџбина. Могуће је доставити поруџбину са најранијим временом доставе и тада се цвећара обавештава о достави поруџбине, која се потом уклања. Могуће је исписати достављача у излазни ток (it<<dostavljac) тако што се све недостављене поруџбине исписују у засебним редовима.

Написати главну функцију која прави цвећару са неколико букета и достављача са неколико поруџбина које редом доставља. Исписати цвећару након формирања и након доставе сваке поруџбине.


Напомене

Модификације су написане по сећању студената који их су радили.