C# Как описать метод пропорционального увеличения и уменьшения значений веса в библиотеке классов С#?
Пытался написать библиотеку классов по лабораторной работе, но не могу описать метод пропорционального увеличения и уменьшения остальных значений веса. Да и вообще библиотека криво работает. Пробовал огромное количество вариантов (некоторые из них даже работали по заданию через приложение), но преподователь забраковал все. К слову, я совсем новичок в C#, и преподаватель больше заострял внимание на теории, чем на практике (мы прошли только строение библиотеки классов, а как писать метод, должен догадаться сам, никаких примеров, никаких советов). Поэтому я мало знаю синтаксис C#. Буду признателен, если скинете код метода, т. к. на примере мне легче понять. Прошу помочь. Задание и пример кода ниже. Заранее спасибо.
Задание
- Опишите класс "Рецепт", хранящий информацию о 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;
}
}