C# Как описать метод пропорционального увеличения и уменьшения значений веса в библиотеке классов С#?

Пытался написать библиотеку классов по лабораторной работе, но не могу описать метод пропорционального увеличения и уменьшения остальных значений веса. Да и вообще библиотека криво работает. Пробовал огромное количество вариантов (некоторые из них даже работали по заданию через приложение), но преподователь забраковал все. К слову, я совсем новичок в C#, и преподаватель больше заострял внимание на теории, чем на практике (мы прошли только строение библиотеки классов, а как писать метод, должен догадаться сам, никаких примеров, никаких советов). Поэтому я мало знаю синтаксис C#. Буду признателен, если скинете код метода, т. к. на примере мне легче понять. Прошу помочь. Задание и пример кода ниже. Заранее спасибо.

Задание

  1. Опишите класс "Рецепт", хранящий информацию о 3 ингредиентах, которые входят в рецепт: вес первого, вес воторого, вес третьего. Методы: пересчитать вес всех ингредиентов по заданному весу первого (новый вес задаётся как параметр), аналогично по методу для второго и третьего ингредиента, подсчитать общий вес блюда.
  2. Напишите приложение, которое будет давать возможность задавать рецепт из трёх ингредиентов и пересчитывать его составляющие по нажатию кнопки. При этом должна быть возможность указать, какой ингредиент поменял свой вес в блюде.
  3. Добавьте кнопку, по нажатию которой будет рассчитываться общий вес блюда.

Пример кода; пытался тремя вариантами написать метод, но потом вставал вопрос, как их использовать в приложении

public class Recipe
{
    double weight1;
    double weight2;
    double weight3;
    double weightSUM;

    public double Weight1
    {
        get { return weight1; }
        set { weight1 = value; }
    }
    public double Weight2
    {
        get { return weight2; }
        set { weight2 = value; }
    }
    public double Weight3
    {
        get { return weight3; }
        set { weight3 = value; }
    } 

    public double WeightSUM // Суммарный вес трёх ингредиентов
    {
        get { return weightSUM; }
        set { weightSUM = value; }
    }
    /// <summary>
    /// Метод вычисляет вес остальных ингредиентов
    /// </summary>
    /// <returns>Возвращает значение нового веса всех ингредиентов</returns>
    public Tuple<double, double, double> MathW11(double newweight)
    {
        weight1 = newweight;
        weight2 = (weight2 * newweight) / weight1;
        weight3 = (newweight * weight3) / weight1;
        weight2 = newweight;                                                 //первый вариант
        weight1 = (weight1 * newweight) / weight2;
        weight3 = (newweight * weight3) / weight2;
        weight3 = newweight;
        weight2 = (weight2 * newweight) / weight3;
        weight1 = (newweight * weight1) / weight3;
        return Tuple.Create(weight1, weight2, weight3);
    }

    public Recipe MathW1(double newweight)
    {
        return new Recipe { weight1 = newweight, weight2 = (weight2 * newweight) / weight1, weight3 = (newweight * weight3) / weight1};
    }                                                                       //второй вариант

    public (double weight1, double weight2, double weight3) MathW(double newweight)
    {
        weight1 = newweight;
        weight2 = (weight2 * newweight) / weight1;
        weight3 = (newweight * weight3) / weight1;
        weight2 = newweight;                                                //третий вариант
        weight1 = (weight1 * newweight) / weight2;
        weight3 = (newweight * weight3) / weight2;
        weight3 = newweight;
        weight2 = (weight2 * newweight) / weight3;
        weight1 = (newweight * weight1) / weight3;
        return (weight1, weight2, weight3);
    }

    /// <summary>
    /// Метод вычисляет общий вес
    /// </summary>
    /// <returns>Возвращает значение общего веса</returns>
    public double MathW2()
    {
        WeightSUM = weight3 + weight2 + weight1;
        return WeightSUM;
    }
}

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