Садржај

Енкапсулација - задаци

1. Температура

Написати класу Temperatura поштујући следећу спецификацију.

Класа има само једно приватно поље реалног типа, у коме памти температуру изражену у степенима Целзијуса.

Конструктор има један реалан параметар, а то је температура у степенима Целзијуса.

Класа има три својства реалног типа, која могу да се корсите и за читање и за писање:

  • Својство C за температуру изражену у степенима Целзијуса,

  • Својство K за температуру изражену у степенима Келвина,

  • Својство F за температуру изражену у степенима Фаренхајта.


Искористите написану класу да прикажете табелу са вредностима температуре у степенима Целзијуса од -50 до +70 са кораком 5, уз одговарајуће вредности у степенима Фаренхајта.

Могуће решење за класу:

2. Време

Написати класу Vreme поштујући следећу спецификацију.

Класа има само једно целобројно поље, у коме памти број секунди протеклих од поноћи (најчешће последње).

Конструктор има три целобројна параметра, а то су број сати, минута и секунди. Од ових параметара, последњи или последња два могу да се изоставе, а тада се за њих подразумева вредност 0.

Класа има и својства Total, D, H, M, S, помоћу којих се редом добија укупан број секунди (цео неозначен број), број протеклих дана (цео неозначен број), сати (0+23), минута (0-59) и секунди (0-59). Сва својства се користе само за читање.

Написати и метод ToString, који враћа запис времена у формату HH:MM:SS. У случају да је протекао цео дан или више, формат је HH:MM:SS+D, где D представља број протеклих дана.


Искористите написану класу да решите задатак Чекање из Петљине онлајн збирке.

Могуће решење за класу:

Напомена: Писањем речи override у декларацији метода ToString постижемо да за објекат t типа Vreme не морамо да пишемо

Console.WriteLine(t.ToString());

већ је довољно

Console.WriteLine(t);

О речи override и њеном значењу ће бити више речи у другом делу овог курса.

3. Лифт

Написати класу Lift поштујући следећу спецификацију.

Класа има целобројна поља (неозначени цели бројеви) nosivost, masaULiftu, sprat и реално поље rad. Поље rad садржи информацију о укупном извршеном раду лифта при превозу људи, односно терета, од почетка рада.

Конструктор има само један целобројни (uint) параметар, носивост лифта. Подразумева се да је сваки нови лифт приликом настанка празан, у приземљу и још није извршио никакав рад.

Класа има два својства за читање: целобројно својство Sprat и реално својство Rad, помоћу којих се очитавају редом текући спрат (положај лифта) и укупан извршен рад од стављања лифта у погон. Ове вредности се читају из одговарајућих приватних поља.

Од јавних метода, класа има:

  • метод void Ulaz(uint m), који имплементира улазак масе m у лифт,

  • метод void Izlaz(uint m), који имплементира излазак масе m из лифта,

  • метод void Komanda(uint noviSprat), који имплементира прелазак лифта на задати спрат.

При имплементацији метода Ulaz треба водити рачуна о преоптерећењу, а код метода Izlaz о немогућем захтеву. Ако би се позивом метода добила недозвољена или немогућа (негативна) маса у лифту, метод треба да баци изузетак.

Приликом промене спрата, лифт врши рад који се (само за потребе овог задатка) рачуна по следећој формули: за кретање на горе, новоизвршени рад је једнак производу масе у лифту и броја пређених спратова, а за кретање на доле ова вредност се множи са 0.5.


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

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

Могуће решење за класу:

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