Как можно улучшить имеющийся консольный калькулятор - C#
Формулировка задачи:
как можно улучшить ? что можно нового добавить? в целях изучение языка
и как сделать, что когда считается корень, ввести нужно было одно значение,а не как сумма 2?
static void Main(string[] args)
{
Console.WriteLine("Калькулятор!\nВыберите одну из арифметических операций:");
Console.WriteLine(@"
Сложение -1
Вычитание -2
Умножение -3
Деление -4
Корень -5
Степень -6");
var a = Console.ReadLine();
Console.Write("Введите первое значение: ");
var b = double.Parse(Console.ReadLine());
Console.Write("Введите второе значение: ");
var c = double.Parse(Console.ReadLine());
switch (a)
{
case "1":
Console.WriteLine("Результат = {0}", b + c);
break;
case "2":
Console.WriteLine("Результат = {0}", b - c);
break;
case "3":
Console.WriteLine("Результат = {0}", b * c);
break;
case "4":
Console.WriteLine("Результат = {0}", b / c);
break;
case "5":
Console.WriteLine("Результат = {0}", Math.Sqrt(b+c));
break;
case "6":
Console.WriteLine("Результат = {0}", Math.Pow(b,c));
break;
}
}Решение задачи: «Как можно улучшить имеющийся консольный калькулятор»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleCalc1
{
class Calc
{
static void Main(string[] args)
{
while (true)
{
double a, b;
Console.WriteLine("Введите первое значение");
if (!double.TryParse(Console.ReadLine(), out a)) {
continue;
}
string q;
do
{
Console.WriteLine("\nВыберите арифметическое действие:\n" +
"- Умножение (введите *)\n" +
"- Деление (введите /)\n" +
"- Сложение (введите +)\n" +
"- Вычитание (введите -)\n" +
"- Возвести в степень (введите ^)\n" +
"- Корень степени (введите !)");
q = Console.ReadLine();
} while (!ValidateOperationSign(q));
Console.WriteLine("\nВведите второе значение");
if (!double.TryParse(Console.ReadLine(), out b))
{
continue;
}
if (q == "*")
{
Console.WriteLine("\nРезультат умножения = {0}", a * b);
}
else if (q == "/")
{
Console.WriteLine("\nРезультат деления = {0}", a / b);
}
else if (q == "+")
{
Console.WriteLine("\nРезультат сложения = {0}", a + b);
}
else if (q == "-")
{
Console.WriteLine("\nРезультат вычитания = {0}", a - b);
}
else if (q == "^")
{
Console.WriteLine("\nВозведение в степень = {0}", Math.Pow(a, b));
}
else if (q == "!")
{
Console.WriteLine("\nКорень степени = {0}", Math.Pow(a, 1 / b));
}
Console.WriteLine("\nВыйти Q\nДля продолжения нажмите Enter");
string z = Console.ReadLine();
if (z == "Q" || z == "q")
{
break;
}
}
}
private static bool ValidateOperationSign(string sign)
{
switch (sign)
{
case "*":
case "/":
case "+":
case "-":
case "^":
case "!":
return true;
}
return false;
}
}
}