Сравнить объекты через Equals() - C#

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

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

Equals( ) – сравнивает две продажи (считаются равными, если совпадают название и цена). количество в учет не брать метод Equals( ) обозначен не правильно нужно реализовать в одном общем цикле вывод всех записей нахождение макс и являются ли все покупки равными (да/нет) через метод Equals( ). и после цикла вывести значение (да/нет). зачеркнутое сделано
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace zadanie2_1
  6. {
  7. class UltraPokupka : Pokupka
  8. {
  9. int k=10;
  10. public UltraPokupka(string newName, double newCena, int newKol)
  11. {
  12. Cena = newCena;
  13. Name = newName;
  14. Kol = newKol;
  15. }
  16. public override double GetCost()
  17. {
  18. if (Kol >= k)
  19. { return (Cena * Kol * (1 - 0.10)); }
  20. else
  21. { return (Cena * Kol); }
  22. }
  23. public override string ToString()
  24. {
  25. return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
  26. }
  27. }
  28. }
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace zadanie2_1
  6. {
  7. class SuperPokupka : Pokupka
  8. {
  9. public SuperPokupka(string newName, double newCena, int newKol)
  10. {
  11. Cena = newCena;
  12. Name = newName;
  13. Kol = newKol;
  14. }
  15. public override double GetCost()
  16. {
  17. return ((Cena-1) * Kol);
  18. }
  19. public override string ToString()
  20. {
  21. return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
  22. }
  23. }
  24. }
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace zadanie2_1
  6. {
  7. class Pokupka
  8. {
  9. private string name;
  10. private double cena;
  11. private int kol;
  12. public Pokupka(string newName, double newCena, int newKol)
  13. {
  14. Cena = newCena;
  15. Name = newName;
  16. Kol = newKol;
  17. }
  18. public Pokupka()
  19. {
  20. }
  21. public string Name
  22. {
  23. get
  24. {
  25. return name;
  26. }
  27. set
  28. {
  29. name = value;
  30. }
  31. }
  32. public double Cena
  33. {
  34. get
  35. {
  36. return cena;
  37. }
  38. set
  39. {
  40. cena = value;
  41. }
  42. }
  43. public int Kol
  44. {
  45. get
  46. {
  47. return kol;
  48. }
  49. set
  50. {
  51. kol = value;
  52. }
  53. }
  54. public virtual double GetCost()
  55. {
  56. return (Cena * Kol);
  57. }
  58. public override string ToString()
  59. {
  60. return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
  61. }
  62. // public override bool Equals()
  63. // {
  64. // if (Cena == Cena && Name == Name) return true;
  65. // else
  66. // return false;
  67. // }
  68. }
  69. }
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace zadanie2_1
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. Pokupka[] prod = new Pokupka[6];
  12. prod[0] = new Pokupka("limon", 4, 6);
  13. prod[1] = new Pokupka("limon", 4, 2);
  14. // SuperPokupka[] prod = new SuperPokupka[2];
  15. prod[2] = new SuperPokupka("limon", 4, 8);
  16. prod[3] = new SuperPokupka("limon", 4, 10);
  17. // SuperPokupka[] prod = new UltraPokupka[2];
  18. prod[4] = new UltraPokupka("limon", 4, 5);
  19. prod[5] = new UltraPokupka("limon", 4, 20);
  20.  
  21. Pokupka maxP = prod[0];
  22. for (int i = 0; i < prod.Length; i++)
  23. {
  24. Console.WriteLine(prod[i]);
  25. if (maxP.GetCost() < prod[i].GetCost())
  26. {
  27. maxP = prod[i];
  28. }
  29. };
  30. // for (int i = 0; i < prod.Length; i++)
  31. // {
  32. // prod[i].Equals(prod[i+1]);
  33. // };
  34. Console.WriteLine();
  35. Console.WriteLine(" макс. покупкa : {0}", maxP);
  36. Console.ReadKey();
  37. }
  38. }
  39. }

Решение задачи: «Сравнить объекты через Equals()»

textual
Листинг программы
  1. int k = 0;
  2. int g = 0;
  3. for (int i = 0; i < prod.Length; i++)
  4.             {
  5.                 Console.WriteLine(prod[i]);
  6.  
  7.                 if (maxP.GetCost() < prod[i].GetCost())
  8.                 {
  9.                     maxP = prod[i];
  10.                 }
  11.                 if (prod[k].Equals(prod[k + 1]) == true)
  12.                 { g = g + 1; }
  13.                 else
  14.                 { }
  15.             };
  16.             if (g == 6)
  17.             { Console.WriteLine("да"); }
  18.             else { Console.WriteLine("нет"); }

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


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

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

13   голосов , оценка 3.846 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы