Помощ за домашно (GSM)


1

Здравейте,

Закъсах на първата домашна работа и ще съм благодарен, ако някой може да ме побутне малко.

Та, проблемът, който имам е следният: направил съм си клас Battery, в който хвърлям два exception-а (чрез тях си ограничавам режимите на работа на батерията на телефона до определени времена), но въпреки това когато премина определената граница, то нищо не става, тоест програмата си върви вместо да гърми… Нямам идея какво съм омазал.

Може би има и много други проблеми в кода, но всичко ми е адски трудно, защото преди Академията не съм и сънувал за подобна материя (до сега съм бил журналист и преводач), но реших да пробвам да се преквалифицирам. Така че съжалявам, ако видите ужасяващи глупости в кода L. Ето и линк към него: https://github.com/bbakev/CSharp-OOP-Homework/tree/master/GSMMain

Благодаря предварително!




в C# OOP от bbakev (132 точки)


Отговори



1
Така написано в сетърите не проверяваш стойността, която е дадена. В смисъл че ако дадеш battery.MaxHoursIdle = 1000, в сетъра няма да провери като стойност 1000 дали е > от 500. Стойността, която пристояваш в сетъра се получава като value. Тоест смени if (maxHoursIdle > 500) с if (value > 500) и същото направи за maxHoursTalk и вече, когато дадеш грешна стойност би трябвало да ти хвърля съответния exception.

от mbelev (2312 точки)


0
Eeeeeeee, БЛАГОДАРЯ МНОГО!!!! Точно бях на ръба да изкъря нещо!

от bbakev (132 точки)


1

Тука нещата в ООП с домашното станаха доста сериозни за тия дето не ни е много ясно обектното програмиране. Аз също съм много затруднен и ако някой не го мързи да запише видео с обяснение към домашното ще мъ бъда адски благодарен. В момента мн съжалявам, че не кандидатствах за присъствено за да мога да се възползвам от малко помощ в академията...

Погледнах твойто домашно и не изглежда по зле от моето, така че и това си повод за оптимизъм. Ето го и моя код.




0
 if (maxHoursIdle > 500)
трябва да бъде
 if (value > 500)

от val12mo (256 точки)