Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.40 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace Calculator
  5. {
  6. class Control
  7. {
  8. /**
  9. * If input is not int, then throws error. Else returns it.
  10. *
  11. * @return int output
  12. */
  13. public int Int()
  14. {
  15. int output;
  16. while (!int.TryParse(Console.ReadLine(), out output))
  17. {
  18. Render.Error();
  19. }
  20. return output;
  21. }
  22.  
  23. /**
  24. * If input is not float, then throws error. Else returns it.
  25. *
  26. * @return float output
  27. */
  28. public float Float()
  29. {
  30. float output;
  31. while (!float.TryParse(Console.ReadLine(), out output))
  32. {
  33. Render.Error();
  34. }
  35. return output;
  36. }
  37. }
  38.  
  39. class Render : Program
  40. {
  41. /**
  42. * Writes menu.
  43. */
  44. public static void Menu()
  45. {
  46. Console.WriteLine("1 - Sčítat");
  47. Console.WriteLine("2 - Odčítat");
  48. Console.WriteLine("3 - Násobit");
  49. Console.WriteLine("4 - Dělit");
  50. Console.WriteLine("5 - Umocnit");
  51. Console.WriteLine("6 - Odmocnit");
  52. Console.WriteLine("7 - Historie výsledků");
  53. Console.WriteLine("Jiné číslo - Konec");
  54. }
  55.  
  56. /**
  57. * Writes result and gives it to array.
  58. *
  59. * @param float result, float[] results
  60. */
  61. public static void Result(float result, float[] results)
  62. {
  63. Console.WriteLine("Výsledek se rovná {0}.", result);
  64.  
  65. for (int i = 0; i < results.Length; i++)
  66. {
  67. // Pokud je prázdný, tak se zaplní
  68. if (results[i] == 0)
  69. {
  70. results[i] = result;
  71. break;
  72. }
  73. else if (i == results.Length - 1)
  74. {
  75. Console.WriteLine("dd");
  76. results = results.Skip(1).ToArray();
  77. for (int b = 0; b < results.Length; b++)
  78. {
  79. Console.Write("{0}; ", results[b]);
  80. }
  81. break;
  82. }
  83. }
  84. }
  85.  
  86. /**
  87. * Writes error.
  88. */
  89. public static void Error()
  90. {
  91. Console.WriteLine("Zadejte správnou hodnotu!");
  92. }
  93.  
  94. /**
  95. * Writes history of results.
  96. *
  97. * @param float[] results
  98. */
  99. public static void Results(float[] results)
  100. {
  101. Console.WriteLine("\n");
  102. Console.WriteLine("------------------------------");
  103. for (int i = 0; i < results.Length; i++)
  104. {
  105. Console.Write("{0}; ", results[i]);
  106. }
  107. Console.WriteLine("\n------------------------------");
  108. Console.WriteLine("\n");
  109. }
  110.  
  111. /**
  112. * Writes last message.
  113. */
  114. public static void End()
  115. {
  116. Console.WriteLine("Ukončil jste program.");
  117. }
  118.  
  119. /**
  120. * Renders input for number.
  121. *
  122. * @return float firstNumber
  123. */
  124. public static float Number()
  125. {
  126. Control control = new Control();
  127. Console.WriteLine("Zadejte číslo:\n");
  128. float number = control.Float();
  129. return number;
  130. }
  131. }
  132.  
  133. class Math : Program
  134. {
  135. /**
  136. * Adds inputs.
  137. *
  138. * @param float firstNumber, float secondNumber, float[] results
  139. */
  140. public static void AddUp(float firstNumber, float secondNumber, float[] results)
  141. {
  142. float output = firstNumber + secondNumber;
  143. Render.Result(output, results);
  144. }
  145.  
  146. /**
  147. * Subtracts inputs.
  148. *
  149. * @param float firstNumber, float secondNumber, float[] results
  150. */
  151. public static void Subtract(float firstNumber, float secondNumber, float[] results)
  152. {
  153. float output = firstNumber - secondNumber;
  154. Render.Result(output, results);
  155. }
  156.  
  157. /**
  158. * Multiplies inputs.
  159. *
  160. * @param float firstNumber, float secondNumber, float[] results
  161. */
  162. public static void Multiply(float firstNumber, float secondNumber, float[] results)
  163. {
  164. float output = firstNumber * secondNumber;
  165. Render.Result(output, results);
  166. }
  167.  
  168. /**
  169. * Divides inputs.
  170. *
  171. * @param float firstNumber, float secondNumber, float[] results
  172. */
  173. public static void Divide(float firstNumber, float secondNumber, float[] results)
  174. {
  175. if (secondNumber == 0)
  176. {
  177. Render.Error();
  178. }
  179. else
  180. {
  181. float output = firstNumber / secondNumber;
  182. Render.Result(output, results);
  183. }
  184. }
  185.  
  186. /**
  187. * Roots inputs.
  188. *
  189. * @param float firstNumber, float[] results
  190. */
  191. public static void Sqrt(float firstNumber, float[] results)
  192. {
  193. float output = (float)System.Math.Sqrt(firstNumber);
  194. Render.Result(output, results);
  195. }
  196.  
  197. /**
  198. * Raises input.
  199. *
  200. * @param float firstNumber, float[] results
  201. */
  202. public static void Power(float firstNumber, float[] results)
  203. {
  204. float output = (float)System.Math.Pow(firstNumber, 2);
  205. Render.Result(output, results);
  206. }
  207. }
  208.  
  209. class Program
  210. {
  211. public float[] Results { get; set; } = new float[10];
  212.  
  213. /**
  214. * Runs program and triggers actions.
  215. *
  216. * @param string[] args
  217. */
  218. public static void Main(string[] args)
  219. {
  220. Control control = new Control();
  221. bool again = true;
  222.  
  223. while (again is true)
  224. {
  225. Render.Menu();
  226. Console.WriteLine("Co chcete udělat?:\n");
  227. int action = control.Int();
  228.  
  229. switch (action)
  230. {
  231. case 1:
  232. Math.AddUp(Render.Number(), Render.Number(), Results);
  233. break;
  234. case 2:
  235. Math.Subtract(Render.Number(), Render.Number(), Results);
  236. break;
  237. case 3:
  238. Math.Multiply(Render.Number(), Render.Number(), Results);
  239. break;
  240. case 4:
  241. Math.Divide(Render.Number(), Render.Number(), Results);
  242. break;
  243. case 5:
  244. Math.Power(Render.Number(), Results);
  245. break;
  246. case 6:
  247. Math.Sqrt(Render.Number(), Results);
  248. break;
  249. case 7:
  250. Render.Results(Results);
  251. break;
  252. default:
  253. Render.End();
  254. again = false;
  255. break;
  256. }
  257. }
  258. }
  259. }
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement