Неправильный вывод значений - C#

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

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

Не удается сделать правильно вывод , помогите Прога выводит правильно название и крепость алкоголя , а вот остальное для всех 3-ех напитков одинаково выдает (количество , цену , цену за все).
Листинг программы
  1. using System;
  2. namespace MyEquations
  3. {
  4. abstract class Liquid // Основной класс
  5. {
  6. public string name; // Название алкоголя
  7. public void NameShow() // Вывод названия алкоголя
  8. {
  9. Console.WriteLine("Alcohol name: " + name);
  10. }
  11. }
  12. class Alcohol : Liquid // Наследуемый класс
  13. {
  14. public string vol; // Крепость алкоголя.
  15.  
  16. public Alcohol(string vol, string name, double gab)
  17. {
  18. this.name = name;
  19. this.vol = vol;
  20. // Приравнивание
  21. }
  22. public void VolShow() // Вывод крепости алкоголя после названия
  23. {
  24. Console.WriteLine("Alcohol volume: " + vol);
  25. }
  26. }
  27. public interface iTwoNumbers
  28. {
  29. sbyte N1 { get; set; }
  30. sbyte N2 { get; set; }
  31. void Solve(); void WriteAnswer(string ToWrite);
  32. }
  33. public abstract class TTwoNumbers : iTwoNumbers
  34. {
  35. sbyte n1; public sbyte N1 { get { return n1; } set { n1 = value; } }
  36. sbyte n2; public sbyte N2 { get { return n2; } set { n2 = value; } }
  37. public TTwoNumbers() { N1 = 0; N2 = 0; }
  38. public TTwoNumbers(sbyte N1, sbyte N2) { this.N1 = N1; this.N2 = N2; }
  39. public abstract void Solve();
  40. public void WriteAnswer(string result) { Console.WriteLine(result); }
  41. }
  42. class TEquation : TTwoNumbers
  43. {
  44. sbyte a { get { return N1; } set { N1 = value; } }
  45. sbyte b { get { return N2; } set { N2 = value; } }
  46. public TEquation(sbyte P1, sbyte P2) : base(P1, P2) { }
  47. public override void Solve()
  48. {
  49. Console.WriteLine("Bottles count: {0}\nPrice for bottle: {1}", a, b);
  50. double x = a * b;
  51. Console.WriteLine("Price for all bottles: " + x, "$");
  52. Console.WriteLine("-------------------");
  53. }
  54. }
  55. class TSquareEquation : TEquation
  56. {
  57. sbyte a { get; set; }
  58. sbyte b { get { return N1; } set { N1 = value; } }
  59. sbyte c { get { return N2; } set { N2 = value; } }
  60. public TSquareEquation(sbyte P1, sbyte P2, sbyte P3) : base(P2, P3) { a = P1; }
  61. public override void Solve()
  62. {
  63. Console.WriteLine(": Square Equation: ({0}x*x)+({1})x+({2})=0", a, b, c);
  64. short D = (short)(b * b - 4 * a * c);
  65. if (D >= 0)
  66. {
  67. double x1 = (-b + Math.Sqrt(D)) / (2 * a);
  68. double x2 = (-b - Math.Sqrt(D)) / (2 * a);
  69. WriteAnswer("Result: x1=" + x1.ToString("F3") + ", x2=" + x2.ToString("F3"));
  70. }
  71. else WriteAnswer("No Answer! D=" + D.ToString());
  72. }
  73. }
  74. class Program
  75. {
  76. static void Main(string[] args)
  77. {
  78. byte CollectionSize = 3; byte i;
  79. Random random = new Random(); sbyte p1, p2, p3;
  80. TEquation[] Collection = new TEquation[CollectionSize];
  81. for (i = 0; i < CollectionSize; i++)
  82. {
  83. p1 = (sbyte)random.Next(0, 100);
  84. p2 = (sbyte)random.Next(0, 50);
  85. p3 = (sbyte)random.Next(-10, 10);
  86. Collection[i] = (i < CollectionSize / 1
  87. ? new TEquation(p1, p2)
  88. : new TSquareEquation(p1, p2, p3));
  89. }
  90. foreach (TEquation Equation in Collection)
  91. {
  92. Alcohol drink = new Alcohol("", "", 0);
  93. drink.name = "Jin";
  94. drink.vol = "35%";
  95. drink.NameShow();
  96. drink.VolShow();
  97. Equation.Solve();
  98.  
  99. Alcohol drink2 = new Alcohol("", "", 0);
  100. drink.name = "Whiskey";
  101. drink.vol = "40%";
  102. drink.NameShow();
  103. drink.VolShow();
  104. Equation.Solve();
  105. Alcohol drink3 = new Alcohol("", "", 0);
  106. drink.name = "Cesu Alus";
  107. drink.vol = "4.5%";
  108. drink.NameShow();
  109. drink.VolShow();
  110. Equation.Solve();
  111. Console.WriteLine(); i = 0;
  112. Console.ReadLine();
  113. }
  114. }
  115. }
  116. }

Решение задачи: «Неправильный вывод значений»

textual
Листинг программы
  1.  foreach (TEquation Equation in Collection)
  2.             {
  3.  
  4.                 Alcohol drink = new Alcohol("", "", 0);
  5.                 drink.name = "Jin";
  6.                 drink.vol = "35%";
  7.                 drink.NameShow();
  8.                 drink.VolShow();
  9.                 Equation.Solve();
  10.  
  11.  
  12.  
  13.                 Console.WriteLine(); i = 0;
  14.              
  15.             }
  16.             Console.ReadLine();

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


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

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

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

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

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

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