2013-03-05 3 views
-11

Так что я сейчас делаю калькулятор для школьного проекта. Точка калькулятора вычисляет треугольники. Пользователь должен предоставить 3 части информации, 2 стороны и 1 угол или 2 угла и 1 сторону.Команда if-else в калькуляторе

Как вы можете видеть в моем коде, приведенном ниже, я не знаю, как продолжить работу над моим проектом. Я довольно новичок в C#. Я должен проверить, чтобы, если были предоставлены A, B и c, он должен вычислить это, и если A, B и b предоставлены, он должен вычислить это и так далее. Но я не уверен, как я делаю команду «if-else».

private void button1_Click(object sender, EventArgs e) 
    { 
     List<double> angles = new List<double>(); 
     List<double> sides = new List<double>(); 
     double A = (AAngle.Text == "") ? 0.00 : Convert.ToDouble(AAngle.Text); 
     double B = (BAngle.Text == "") ? 0.00 : Convert.ToDouble(BAngle.Text); 
     double C = (CAngle.Text == "") ? 0.00 : Convert.ToDouble(CAngle.Text); 
     double a = (ASide.Text == "") ? 0.00 : Convert.ToDouble(ASide.Text); 
     double b = (BSide.Text == "") ? 0.00 : Convert.ToDouble(BSide.Text); 
     double c = (CSide.Text == "") ? 0.00 : Convert.ToDouble(CSide.Text); 
     if (!(A == 0.00)) 
      angles.Add(A); 
     if (!(B == 0.00)) 
      angles.Add(B); 
     if (!(C == 0.00)) 
      angles.Add(C); 
     if (!(a == 0.00)) 
      sides.Add(a); 
     if (!(b == 0.00)) 
      sides.Add(b); 
     if (!(c == 0.00)) 
      sides.Add(c); 
     if ((angles.Count() == 2 && sides.Count == 1) || (angles.Count == 1 && sides.Count == 2)) 
     { 
      if ??? 
     } 
     else 
     { 
      MessageBox.Show("NOT ENOUGH OR TOO MANY SIDES/ANGLES PROVIDED OR NOT A VALID TRIANGLE"); 
     } 
    } 
+1

_ «он должен рассчитать это» _ Вы не сказали нам, что это такое на самом деле. Что вы хотите рассчитать и где вы застряли? –

+9

Как и в последнем вопросе, который вы удалили, ответ: Изучите математику. Это действительно ничего не делать с C#. Как это сделать, если вы уже знаете, вы используете его уже в своем коде. Это * ваш * школьный проект, а не наш. Мы можем помочь вам с конкретной проблемой. Но в настоящее время вы в основном просите нас написать проект для вас. –

+0

Ваш код уже содержит пример 'if-else'. Если этого недостаточно, вы должны иметь googled [C# if] (https://www.google.co.il/search?q=c%23+if&aq=f&oq=c%23+if&aqs=chrome.0.57j58j62l3. 1417 & sourceid = chrome & ie = UTF-8), а первая или вторая ссылка даст вам [ответ] (http://msdn.microsoft.com/en-us/library/5011f09h (v = vs.80) .aspx) –

ответ

1

использовать еще, если заявление, как это:

if (angles.Count() == 2 && sides.Count == 1) 
    { 
     // calculate based on two angles and one side 
    } 
    else if (angles.Count == 1 && sides.Count == 2) 
    { 
     // calculate based on one angle and two sides 
    } 
    else 
    { 
     MessageBox.Show(...) 
    } 
+0

Это несколько, что мне нужно. 'if (A.Count && B.Count && c.Count)' { // Расчет } – cenh

0

Вы можете попробовать C#, если-иначе ссылка here.

Попробуйте написать код самостоятельно. если он не работает должным образом, проследите прямо здесь.

0

В качестве быстрого решения, я бы назначить два случая к некоторому держателя булевы и действовать соответствующим образом:

var angles = (angles.Count >= 2 && sides.Count >= 1); 
var sides = (angles.Count == 1 && sides.Count >= 2); 
if (angles) 
{ calculateTriangleFromAngles(); } 
else if (sides) 
{ calculateTriangleFromAngles(); } 
else 
{ MsgBox.... } 

Как @ user1012630 сказал, я> = для удовлетворения пользователя, вызвавшего более двух значений для обоих углы и стороны ... Вы должны добавить некоторые кромки, если пользователь, конечно, предоставляет значения для невозможного треугольника.

Другое оповещение: не использовать Convert.ToDouble(), он будет генерировать исключение, если преобразование завершится с ошибкой. Лучше использовать Double.TryParse(), чтобы получить значение или сбой изящно.

+0

Мне нужно больше, чем 2 вычисления, моя проблема в том, что я не знаю, как это сделать, если у меня есть ASide, Bside и AAngle, или ASide, Bside и BAngle. Должно быть много комбинаций, а не только 2. – cenh

Смежные вопросы