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

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.
Напишите и кратак програм којим се демонстрира употреба класе (испробавају се све функционалности класе), а затим искористите написану класу да решите следећи задатак:
написати програм који учитава податке о коришћењу лифта (уласци у лифт, изласци из лифта, кретање) и на крају исписује извештај о извршеном раду.
Могуће решење за класу: