Неправильный вывод значений - C#
Формулировка задачи:
Не удается сделать правильно вывод , помогите
Прога выводит правильно название и крепость алкоголя , а вот остальное для всех 3-ех напитков одинаково выдает (количество , цену , цену за все).
using System; namespace MyEquations { abstract class Liquid // Основной класс { public string name; // Название алкоголя public void NameShow() // Вывод названия алкоголя { Console.WriteLine("Alcohol name: " + name); } } class Alcohol : Liquid // Наследуемый класс { public string vol; // Крепость алкоголя. public Alcohol(string vol, string name, double gab) { this.name = name; this.vol = vol; // Приравнивание } public void VolShow() // Вывод крепости алкоголя после названия { Console.WriteLine("Alcohol volume: " + vol); } } public interface iTwoNumbers { sbyte N1 { get; set; } sbyte N2 { get; set; } void Solve(); void WriteAnswer(string ToWrite); } public abstract class TTwoNumbers : iTwoNumbers { sbyte n1; public sbyte N1 { get { return n1; } set { n1 = value; } } sbyte n2; public sbyte N2 { get { return n2; } set { n2 = value; } } public TTwoNumbers() { N1 = 0; N2 = 0; } public TTwoNumbers(sbyte N1, sbyte N2) { this.N1 = N1; this.N2 = N2; } public abstract void Solve(); public void WriteAnswer(string result) { Console.WriteLine(result); } } class TEquation : TTwoNumbers { sbyte a { get { return N1; } set { N1 = value; } } sbyte b { get { return N2; } set { N2 = value; } } public TEquation(sbyte P1, sbyte P2) : base(P1, P2) { } public override void Solve() { Console.WriteLine("Bottles count: {0}\nPrice for bottle: {1}", a, b); double x = a * b; Console.WriteLine("Price for all bottles: " + x, "$"); Console.WriteLine("-------------------"); } } class TSquareEquation : TEquation { sbyte a { get; set; } sbyte b { get { return N1; } set { N1 = value; } } sbyte c { get { return N2; } set { N2 = value; } } public TSquareEquation(sbyte P1, sbyte P2, sbyte P3) : base(P2, P3) { a = P1; } public override void Solve() { Console.WriteLine(": Square Equation: ({0}x*x)+({1})x+({2})=0", a, b, c); short D = (short)(b * b - 4 * a * c); if (D >= 0) { double x1 = (-b + Math.Sqrt(D)) / (2 * a); double x2 = (-b - Math.Sqrt(D)) / (2 * a); WriteAnswer("Result: x1=" + x1.ToString("F3") + ", x2=" + x2.ToString("F3")); } else WriteAnswer("No Answer! D=" + D.ToString()); } } class Program { static void Main(string[] args) { byte CollectionSize = 3; byte i; Random random = new Random(); sbyte p1, p2, p3; TEquation[] Collection = new TEquation[CollectionSize]; for (i = 0; i < CollectionSize; i++) { p1 = (sbyte)random.Next(0, 100); p2 = (sbyte)random.Next(0, 50); p3 = (sbyte)random.Next(-10, 10); Collection[i] = (i < CollectionSize / 1 ? new TEquation(p1, p2) : new TSquareEquation(p1, p2, p3)); } foreach (TEquation Equation in Collection) { Alcohol drink = new Alcohol("", "", 0); drink.name = "Jin"; drink.vol = "35%"; drink.NameShow(); drink.VolShow(); Equation.Solve(); Alcohol drink2 = new Alcohol("", "", 0); drink.name = "Whiskey"; drink.vol = "40%"; drink.NameShow(); drink.VolShow(); Equation.Solve(); Alcohol drink3 = new Alcohol("", "", 0); drink.name = "Cesu Alus"; drink.vol = "4.5%"; drink.NameShow(); drink.VolShow(); Equation.Solve(); Console.WriteLine(); i = 0; Console.ReadLine(); } } } }
Решение задачи: «Неправильный вывод значений»
textual
Листинг программы
foreach (TEquation Equation in Collection) { Alcohol drink = new Alcohol("", "", 0); drink.name = "Jin"; drink.vol = "35%"; drink.NameShow(); drink.VolShow(); Equation.Solve(); Console.WriteLine(); i = 0; } Console.ReadLine();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д