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