Loading...
kalina_ilieva avatar kalina_ilieva 4 Точки

Проблем с Encapsulation - P.01.Class Box Data

Здравейте колеги

Judge ми дава 75/100, а уж правя всичко, както е в упражнението. Някой може ли да ми помогне?

Box - https://pastebin.com/ugMhNh8S

StartUp - https://pastebin.com/VxnRjk1n

Втори тест гърми.

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

Калина

Тагове:
0
C# OOP Advanced
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

Everything is correct in your solution, so I think that Judge just has a problem with your helper method => private void ValidateSide(double value, string side). When using the standard property- setup for Width, Heigh and Length, then the solution gets 100%.

Modified Box-class :

public class Box
    {
        private const double SIDE_MIN_VALUE = 0;
        private const string INVALID_SIDE_MESSEGE = "{0} cannot be zero or negative.";
        private double length;
        private double width;
        private double height;

        public Box(double length, double width, double height)
        {
            this.Lenght = length;
            this.Width = width;
            this.Height = height;
        }

        //public double Lenght
        //{
        //    get => this.length;
        //    private set
        //    {
        //        this.ValidateSide(value, nameof(this.Lenght));
        //        this.length = value;
        //    }
        //}

        private double Lenght
        {
            get
            {
                return this.length;
            }
            set
            {
                if (value <= 0)
                {
                    throw new ArgumentException("Length cannot be zero or negative.");
                }
                this.length = value;
            }
        }

        //public double Width
        //{
        //    get => this.width;
        //    private set
        //    {
        //        this.ValidateSide(value, nameof(this.Width));
        //        this.width = value;
        //    }
        //}

        private double Width
        {
            get
            {
                return this.width;
            }
            set
            {
                if (value <= 0)
                {
                    throw new ArgumentException("Width cannot be zero or negative.");
                }
                this.width = value;
            }
        }

        //public double Height
        //{
        //    get => this.height;
        //    private set
        //    {
        //        this.ValidateSide(value, nameof(this.Height));
        //        this.height = value;
        //    }
        //}

        private double Height
        {
            get
            {
                return this.height;
            }
            set
            {
                if (value <= 0)
                {
                    throw new ArgumentException("Height cannot be zero or negative.");
                }
                this.height = value;
            }
        }

        //private void ValidateSide(double value, string side)
        //{
        //    if (value <= SIDE_MIN_VALUE)
        //    {
        //        throw new ArgumentException(String.Format(INVALID_SIDE_MESSEGE, side));
        //    }
        //}

        public double SurfaceArea()
        {
            double area = 2 * (this.Lenght * this.Width) +
                2 * (this.Lenght * this.Height) +
                2 * (this.Width * this.Height);
            return area;
        }

        public double LateralSurfaceArea()
        {
            double lateralSurfaceArea = (2 * this.Lenght * this.Height) +
                ( 2 * this.Width * this.Height);
            return lateralSurfaceArea;
        }
        public double Volume()
        {
            double volume = this.Width * this.Lenght * this.Height;
            return volume;
        }
    }

0
kalina_ilieva avatar kalina_ilieva 4 Точки

Hi Axiomatik,

thank you very much for the answer. Following your recommendation I correct the code and now it is OK :)

Kalina

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.