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