Написать метод установки/считывания полей - C#

Узнай цену своей работы

Формулировка задачи:

есть код. сначало был написан с массивом с параметрами надо переделать. написать метод

установки/считывания полей (можно использовать свойства, в т.ч. автоматические)

изучаю С# недавно и мой метод не работает. куча ошибок. вот код
namespace zadanie2_1
{
    class Program
    {
        static void Main(string[] args)
        {
            bool f = true;// для сравнвания 
            Pokupka[] prod = new Pokupka[6];//
            prod[0] = new Pokupka();
            prod[1] = new Pokupka();
            // SuperPokupka[] prod = new SuperPokupka[2];  далее объекты нового класса
            prod[2] = new SuperPokupka();
            prod[3] = new SuperPokupka();
            // SuperPokupka[] prod = new UltraPokupka[2]; далее объекты нового класса
            prod[4] = new UltraPokupka();
            prod[5] = new UltraPokupka("limon", 4, 10);
 
          //  foreach (var element in prod)
          //  {
          //     element.Chtenie();
          //  }
            for (int i = 0; i < prod.Length; i++)
            {
                prod[i].Chtenie();
            };

            Pokupka maxP = prod[0];// перемен. объект для нахождения макс покупки
 
            for (int i = 0; i < prod.Length; i++)
            {
                Console.WriteLine(prod[i]);//вывод массива
 
                if (maxP.GetCost() < prod[i].GetCost())// нахождение макс покупки
                {
                    maxP = prod[i];
                }
                f &= prod[0].Equals(prod[i]);    // сравниваем с первым все и через &= записывае значение в f, если хоть раз встретитя false то в f и останется false
            };
            Console.WriteLine();
            Console.WriteLine("Все покупки равные? Ответ:" + f);
            Console.WriteLine();
            Console.WriteLine(" макс. покупкa : " + maxP);
            Console.ReadKey();
        }
    }
}
namespace zadanie2_1
{
    class Pokupka
    {
        private string name="";// название покупки
        private double cena=0;//цена
        private int kol=0;// количество
 
        public Pokupka(string newName, double newCena, int newKol)//конструктор
        {
            Cena = newCena;
            Name = newName;
            Kol = newKol;
        }
 
        public Pokupka()//констр по умолч
        {
        }
 
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                if (name != "") name = value;
            }
        }
 
        public double Cena
        {
            get
            {
                return cena;
            }
            set
            {
                if (value >= 0) cena = value;
            }
        }
 
        public int Kol
        {
            get
            {
                return kol;
            }
            set
            {
                if (value >= 1) kol = value;
            }
        }
 
        public virtual double GetCost()//вычисл стоимость покупки
        {
            return (Cena * Kol);
        }
 
     public void Chtenie();
        {       
                System.Console.WriteLine("Enter name:");
              Name = System.Console.ReadLine();    
                System.Console.WriteLine("Enter cena:");
                 Cena = Convert.ToDouble(Console.ReadLine());
                System.Console.WriteLine("Enter kol:");
                 Kol = Convert.ToInt32(System.Console.ReadLine());               
        }
 
        public override string ToString()//метод для вывода, больше переопределять не надо
        {
            return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
        }
   
        public override bool Equals(object obj)//переопределяем метод для сравнивания по двум полям
        {
            var other = obj as Pokupka;
            if (other == null) return false;
 
            return name == other.name && Math.Abs(cena - other.cena) < 0.01;
        }
    }
}
namespace zadanie2_1
{
    class SuperPokupka : Pokupka
    {
 
        public SuperPokupka(string newName, double newCena, int newKol)
        {
            Cena = newCena;
            Name = newName;
            Kol = newKol;
        }
        public SuperPokupka()//констр по умолч
        {
        }
 
        public override double GetCost()//стоимость со скидкой
        {
            return ((Cena - 1) * Kol);
        }
    }
}
namespace zadanie2_1
{
    class UltraPokupka : Pokupka
    {
        int k = 10;// для скидки
 
        public UltraPokupka(string newName, double newCena, int newKol)
        {
            Cena = newCena;
            Name = newName;
            Kol = newKol;
        }
        public UltraPokupka()//констр по умолч
        {
        }
 
        public override double GetCost()//стоимость со скидкой если больше или равно k
        {
            if (Kol >= k)
            { return (Cena * Kol * (1 - 0.10)); }
            else
            { return (Cena * Kol); }
        }
        
    }
}

Решение задачи: «Написать метод установки/считывания полей»

textual
Листинг программы
        public void Chtenie()
        {
            Console.WriteLine("Enter name:");
            Name = Console.ReadLine();
            Console.WriteLine("Enter cena:");
            Cost = int.Parse(Console.ReadLine());
            Console.WriteLine("Enter kol:");
            Amount = int.Parse(Console.ReadLine());
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы