Проблема с выводом программы

Требовалось создать текстовый файл с помощью объекта класса StreamWriter.

  • Занести в него 10 строк, в каждой строке три числа – длины сторон треугольника через пробел. Значения создавать с помощью датчика случайных чисел (объекта класса Random).
  • Создайте список list типа List<Тriangle>. Используя объект класса SteamReader, прочитайте содержимое текстового файла, преобразуйте в требуемый формат и занесите в список list.
  • Отсортируйте список в порядке убывания значений. Выведите содержимое списка – длины сторон треугольников на консоль. В одной строке выводятся длины сторон, периметр и площадь треугольника.

Код для класса Program

class Program
{
    static void Main(string[] args)
    {
        string list_1 = "TextFile1.txt";
        StreamWriter f = new StreamWriter(list_1);
        Random rnd = new Random();
        double n1 = 0, n2 = 0, n3 = 0;
        for (int i = 0; i < 10; i++)
        {
            n1 = rnd.Next(100);
            n2 = rnd.Next(100);
            n3 = rnd.Next(100);
            f.WriteLine(n1 + " " + n2 + " " + n3);
            Console.WriteLine(n1 + " " + n2 + " " + n3);
        }
        Console.WriteLine();
        f.Close();
        string path1 = "TextFile1.txt";
        List<Triangle> list = new List<Triangle>();
        StreamReader g = new StreamReader(@path1);
        for (int j = 0; j < 10; j++)
        {
            list.Add(new Triangle(n1, n2, n3));
        }
        list.Sort();
        list.Reverse();
        Console.WriteLine("Сортировка по убыванию");
        foreach (Triangle x in list)
            Console.Write(x + " ");
        g.Close();
    }
}

для класса Тriangle:

public class Triangle : IComparable
{
    double a, b, c;
    double perimeter;
    public double A
    {
        get
        {
            return a;
        }
        set
        {
            a = value;
        }
    }
    public double B
    {
        get
        {
            return b;
        }
        set
        {
            b = value;
        }
    }
    public double C
    {
        get { return c; }
        set { c = value; }
    }
    public Triangle(double a, double b, double c)//разносторонний
    {
        this.a = a;
        this.b = b;
        this.c = c;
    }
    // Вычисление периметра
    public double Perimeter()
    {
        return perimeter = a + b + c;
    }
    // Вычисление площади
    public double Square()
    {
        // Вычисление по формуле Герона
        double result = 0.25 * Math.Sqrt((a + b + c)
        * (a + b - c)
        * (a + b - c)
        * (a + b - c));

        return result;
    }
    public override string ToString()
    {
        return A.ToString();
    }
    public int CompareTo(object p)
    {
        Triangle c = (Triangle)p;
        if (A > c.A) return 1;
        if (a < c.A) return -1;
        return 0;
    }
}

Должно выводить 10 строк, в каждой - длины сторон, периметр и площадь, а выводит 1 длину 10 раз.

Не могу исправить ошибку.


Ответы (0 шт):