Написать метод установки/считывания полей - 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());
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д