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