Ввод и чтение данных через метод - C#

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

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

делал прогу с готовым массивом в ней. теперь надо сделать через метод

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace zadanie2_1
{
    class Program
    {
        static void Main(string[] args)
        {
            bool f = true;// для сравнвания 
            Pokupka[] prod = new Pokupka[6];//
            prod[0] = new Pokupka("limon", 4, 6);
            prod[1] = new Pokupka("limon", 4, 2);
            // SuperPokupka[] prod = new SuperPokupka[2];  далее объекты нового класса
            prod[2] = new SuperPokupka("limon", 4, 8);
            prod[3] = new SuperPokupka("limon", 4, 10);
            // SuperPokupka[] prod = new UltraPokupka[2]; далее объекты нового класса
            prod[4] = new UltraPokupka Chtenie();
            prod[5] = new UltraPokupka();
 
            foreach (var element in prod)
            {
               element.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();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace zadanie2_1
{
    class Pokupka
    {
        private string name;// название покупки
        private double cena;//цена
        private int kol;// количество
 
        public Pokupka(string newName, double newCena, int newKol)//конструктор
        {
            Cena = newCena;
            Name = newName;
            Kol = newKol;
        }
 
        public Pokupka()//констр по умолч
        {
        }
 
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
 
        public double Cena
        {
            get
            {
                return cena;
            }
            set
            {
                cena = value;
            }
        }
 
        public int Kol
        {
            get
            {
                return kol;
            }
            set
            {
                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:");
              string  Cena = System.Console.ReadLine();
                System.Console.WriteLine("Enter kol:");
              string  Kol = System.Console.ReadLine();      
        }
 
        public override string ToString()//метод для вывода, больше переопределять не надо
        {
            return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
        }
        /*    public override bool Equals(object input) можно и так
            {
                Pokupka tempPokupka = (Pokupka)input;
                  if (Cena == tempPokupka.Cena && Name == tempPokupka.Name) 
            return true;
                else
                return false;
            }
         */
        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;
        }
    }
}
данные в массив в коде вводить не нужно как у меня. иначе будет 2 раза перезаписываться

Решение задачи: «Ввод и чтение данных через метод»

textual
Листинг программы
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;
            }
        }

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


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

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

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