Професионална програма
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 1243 Точки
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