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