Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- namespace Calculator
- {
- class Control
- {
- /**
- * If input is not int, then throws error. Else returns it.
- *
- * @return int output
- */
- public int Int()
- {
- int output;
- while (!int.TryParse(Console.ReadLine(), out output))
- {
- Render.Error();
- }
- return output;
- }
- /**
- * If input is not float, then throws error. Else returns it.
- *
- * @return float output
- */
- public float Float()
- {
- float output;
- while (!float.TryParse(Console.ReadLine(), out output))
- {
- Render.Error();
- }
- return output;
- }
- }
- class Render : Program
- {
- /**
- * Writes menu.
- */
- public static void Menu()
- {
- Console.WriteLine("1 - Sčítat");
- Console.WriteLine("2 - Odčítat");
- Console.WriteLine("3 - Násobit");
- Console.WriteLine("4 - Dělit");
- Console.WriteLine("5 - Umocnit");
- Console.WriteLine("6 - Odmocnit");
- Console.WriteLine("7 - Historie výsledků");
- Console.WriteLine("Jiné číslo - Konec");
- }
- /**
- * Writes result and gives it to array.
- *
- * @param float result, float[] results
- */
- public static void Result(float result, float[] results)
- {
- Console.WriteLine("Výsledek se rovná {0}.", result);
- for (int i = 0; i < results.Length; i++)
- {
- // Pokud je prázdný, tak se zaplní
- if (results[i] == 0)
- {
- results[i] = result;
- break;
- }
- else if (i == results.Length - 1)
- {
- Console.WriteLine("dd");
- results = results.Skip(1).ToArray();
- for (int b = 0; b < results.Length; b++)
- {
- Console.Write("{0}; ", results[b]);
- }
- break;
- }
- }
- }
- /**
- * Writes error.
- */
- public static void Error()
- {
- Console.WriteLine("Zadejte správnou hodnotu!");
- }
- /**
- * Writes history of results.
- *
- * @param float[] results
- */
- public static void Results(float[] results)
- {
- Console.WriteLine("\n");
- Console.WriteLine("------------------------------");
- for (int i = 0; i < results.Length; i++)
- {
- Console.Write("{0}; ", results[i]);
- }
- Console.WriteLine("\n------------------------------");
- Console.WriteLine("\n");
- }
- /**
- * Writes last message.
- */
- public static void End()
- {
- Console.WriteLine("Ukončil jste program.");
- }
- /**
- * Renders input for number.
- *
- * @return float firstNumber
- */
- public static float Number()
- {
- Control control = new Control();
- Console.WriteLine("Zadejte číslo:\n");
- float number = control.Float();
- return number;
- }
- }
- class Math : Program
- {
- /**
- * Adds inputs.
- *
- * @param float firstNumber, float secondNumber, float[] results
- */
- public static void AddUp(float firstNumber, float secondNumber, float[] results)
- {
- float output = firstNumber + secondNumber;
- Render.Result(output, results);
- }
- /**
- * Subtracts inputs.
- *
- * @param float firstNumber, float secondNumber, float[] results
- */
- public static void Subtract(float firstNumber, float secondNumber, float[] results)
- {
- float output = firstNumber - secondNumber;
- Render.Result(output, results);
- }
- /**
- * Multiplies inputs.
- *
- * @param float firstNumber, float secondNumber, float[] results
- */
- public static void Multiply(float firstNumber, float secondNumber, float[] results)
- {
- float output = firstNumber * secondNumber;
- Render.Result(output, results);
- }
- /**
- * Divides inputs.
- *
- * @param float firstNumber, float secondNumber, float[] results
- */
- public static void Divide(float firstNumber, float secondNumber, float[] results)
- {
- if (secondNumber == 0)
- {
- Render.Error();
- }
- else
- {
- float output = firstNumber / secondNumber;
- Render.Result(output, results);
- }
- }
- /**
- * Roots inputs.
- *
- * @param float firstNumber, float[] results
- */
- public static void Sqrt(float firstNumber, float[] results)
- {
- float output = (float)System.Math.Sqrt(firstNumber);
- Render.Result(output, results);
- }
- /**
- * Raises input.
- *
- * @param float firstNumber, float[] results
- */
- public static void Power(float firstNumber, float[] results)
- {
- float output = (float)System.Math.Pow(firstNumber, 2);
- Render.Result(output, results);
- }
- }
- class Program
- {
- public float[] Results { get; set; } = new float[10];
- /**
- * Runs program and triggers actions.
- *
- * @param string[] args
- */
- public static void Main(string[] args)
- {
- Control control = new Control();
- bool again = true;
- while (again is true)
- {
- Render.Menu();
- Console.WriteLine("Co chcete udělat?:\n");
- int action = control.Int();
- switch (action)
- {
- case 1:
- Math.AddUp(Render.Number(), Render.Number(), Results);
- break;
- case 2:
- Math.Subtract(Render.Number(), Render.Number(), Results);
- break;
- case 3:
- Math.Multiply(Render.Number(), Render.Number(), Results);
- break;
- case 4:
- Math.Divide(Render.Number(), Render.Number(), Results);
- break;
- case 5:
- Math.Power(Render.Number(), Results);
- break;
- case 6:
- Math.Sqrt(Render.Number(), Results);
- break;
- case 7:
- Render.Results(Results);
- break;
- default:
- Render.End();
- again = false;
- break;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement