ОО1/Лаб 3 2021

Извор: SI Wiki
< ОО1
Датум измене: 3. фебруар 2021. у 02:19; аутор: KockaAdmiralac (разговор | доприноси) (Loše sam se ovoga setio)
Пређи на навигацију Пређи на претрагу

В1

Поставка задатка без модификација се може наћи на страници предмета. Испод су дате модификације:

  • (20 поена) Трансакција се ствара са задатим рачуном са кога се врши пренос (racun1), рачуном на који се преноси (racun2), износом за пренос и датумом трансакције. Сви подаци који се задају приликом стварања могу да се дохвате. Трансакција садржи још и информацију о томе да ли је успешна. Приликом стварања трансакције врши се пренос задатог износа са рачуна racun1 на рачун racun2 и поставља информација да је трансакција успешна. Могуће је трансакцију прогласити неуспешном (~transakcija) и дохватити информацију да ли је успешна (*transakcija). Трансакција се у излазни ток исписује (it<<transakcija) у облику Т:racun1->racun2:износ-датум-успех.
  • (25 поена) Динарски рачун је банковни рачун чија је ознака валуте RSD. Уколико се пренос врши на задати рачун који је девизни, потребно је извршити конверзију задатог износа из валуте RSD у валуту EUR и на тај конвертовани износ додати девизном рачуну. Девизни рачун је банковни рачун чија је ознака валуте EUR. Девизни рачун садржи средњи курс по коме може да се врши конверзија валуте EUR у RSD и обрнуто. Средњи курс је исти за све рачуне, може да се дохвати и може да му се постави нова вредност. Уколико се пренос врши на задати рачун који је динарски, потребно је извршити конверзију задатог износа из валуте EUR у валуту RSD и тај конвертовани износ додати динарском рачуну.
  • (10 поена) Листа садржи произвољан број података неког типа. Може да се дода један елемент у листу, као и да се дохвати број елемената листе. Може да се постави на први елемент, да се прелази на следећи елемент у односу на текући, да се испита да ли постоји текући елемент и да се дохвати податак у текућем елементу уз могућност промене. Могуће је избацити текући елемент из листе. Грешка је ако не постоји текући елемент у моменту покушаја дохватања и избацивања.
  • (10 поена) Клијент је особа која садржи листу банковних рачуна. Ствара се без рачуна, а рачуни могу накнадно да се додају. Могуће је дохватити рачун са задатим бројем рачуна, грешка је ако нема таквог рачуна. Клијент се излазни ток исписује (it<<klijent) тако што се прво испише особа, а затим у засебним редовима њени рачуни.
  • (25 поена) Евиденција банке је листа клијената и садржи листу њихових трансакција. Ствара се празна са задатим називом банке. Могуће је додати нову трансакцију која ће бити створена у меморији за динамичку доделу; грешка је ако бар један власник од два рачуна трансакције није у листи клијената. Могуће је дохватити све успешне трансакције које су се догодиле на задати датум. Приликом нестајања евиденције треба обрисати и све трансакције. Евиденција се у излазни ток исписује (it<<evidencija) тако што се прво испише назив банке, а у засебним редовима њени клијенти.

(5 поена) Написати главну функцију која направи једну особу, један девизни и један динарски рачун чији је она власник. Затим дода неке износе на те рачуне, направи једну успешну трансакцију преноса са једног на други рачун и испише трансакцију. (5 поена) Направити једног клијента, један девизни и један динарски рачун чији је власник клијент. Затим клијенту додати те рачуне, а рачунима додати неки износ и направити једну трансакцију преноса између та два рачуна. Направити евиденцију, додати јој претходно направљену трансакцију и исписати евиденцију.

В2

Поставка задатка без модификација се може наћи на страници предмета. Испод су дате модификације:

  • Јело је листа намирница. Ствара се са задатим називом који је могуће дохватити. Могуће је израчунати нутритивну вредност и калорије једног јела као збир нутритнивних вредности односно калорија свих намирница. Јело се у излазни ток исписује (it<<jelo) тако што се прво испише назив а затим у сваком следећем реду по намирница коју садржи.
  • Посно јело је јело које је посно. Грешка је уколико се у посно јело покуша додати намирница која није посна.
  • Дијетално јело је јело које не садржи више од 18 грама масти. Грешка је уколико се у дијетално јело дода намирница која ово ограничење нарушава.
  • Вежба садржи текстуални назив вежбе и целобројни број калорија који се потроши за један сат вежбе са којима се ствара. Сва поља је могуће дохватити. Вежба се у излазни тог исписује (it<<vezba) у облику V:назив-број калорија.
  • Тренинг се ствара са трајањем и вежбом. Може да се дохвати број потрошених калорија током тренинга. Тренинг се у излазни ток исписује (it<<trening) у облику T:број потрошених калорија.
  • Особа се ствара са ствара са називом особе и килажом. Особа садржи листу тренинга и листу јела у које је могуће накнадно додати тренинге и јела (osoba += trening, osoba += jelo). Грешка је уколико се додавањем тренинга падне испод 2000kcal. Могуће је променити килажу особе на крају дана у односу на тренинге и јела тог дана.

В5

Поставка задатка без модификација се може наћи на страници предмета. Испод су дате модификације:

  • Превоз се ствара са задатом дестинацијом и реалном ценом карте у оба смера. Могуће је дохватити дестинацију и цену превоза, подразумевано једнаку цени карте. Могуће је дохватити тип превоза.
  • Аутобус је превоз чији је тип AUTOBUS. Авион је превоз чији је тип AVION и садржи аеро таксу са којом се ствара. Аеро такса се додаје на цену превоза авиона.
  • Листа садржи произвољан број података неког типа. Може да се дода један елемент на крај листе. Може да се постави на први елемент листе, да се прелази на следећи елемент у односу на текући, да се испита да ли постоји текући елемент и да се дохвати податак у текућем елементу. Грешка је ако не постоји текући елемент приликом дохватања. Листу је могуће испразнити. Листу није могуће копирати ни на који начин.
  • Полиса осигурања се ствара са задатим типом полисе (ZDRAVSTVENO, ODUSTANAK). Сва поља могу да се дохвате. Полиса се у излазни ток исписује (it<<putnik) у облику P:тип.
  • Путник се ствара са текстуалним именом путника, преферираним типом смештаја, дестинацијом и бројем звездица смештаја, као и логичким вредностима које одређују да ли хоће полису осигурања за сваку врсту полисе. Путник се у излазни ток исписује (it<<putnik) у облику: P:име.
  • Туристички аранжман је аранжман који се додатно ствара са процентом марже. У туристички аранжман могу да се накнадно додају полисе осигурања, по једна за сваки тип (није било речено у тексту, али туристички аранжман је власник полисе). Грешка је уколико се покуша додавање типа полисе који је већ додат. Цена туристичког аранжмана се израчунава тако што се на цену обичног аранжамана дода по 1000 за сваку полису осигурања која је обухваћена а затим се помножи с процентом марже.
  • Туристичка агенција се ствара с процентом марже и садржи листу доступних дестинација, превоза и смештаја у које се накнадно могу додавати дестинације, превози и смештаји (agencija += destinacija, agencija += prevoz, agencija += smestaj). Могуће је за задатог путника и почетак и крај путовања направити туристички аранжман који задовољава преференце путника (није наглашено у задатку, али ово подразумева и додавање полиса) а грешка је уколико се преференце путника не могу задовољити.

Направити главну функцију која направи неколико дестинација, смештаја, превоза, датума, полиса и једног путника и све их испише. Затим направи агенцију, дода дестинације, смештаје и превозе у њу, направи туристички аранжман преко агенције за путника и испише га.