Код IT
← Каталог

Калькулятор на CSharp — Объектно-ориентированная версия

Фрагмент из «Калькулятор на CSharp»: Объектно-ориентированная версия.

C# main.cs
using Система;

public class Calculator
{
    public double Add(double a, double b) => a + b;
    public double Subtract(double a, double b) => a - b;
    public double Multiply(double a, double b) => a * b;
    public double Divide(double a, double b)
    {
        if (b == 0) throw new DivideByZeroException("Деление на ноль невозможно.");
        return a / b;
    }

    public double? Calculate(double a, string operation, double b)
    {
        return operation switch
        {
            "+" => Add(a, b),
            "-" => Subtract(a, b),
            "*" => Multiply(a, b),
            "/" => Divide(a, b),
            _ => null
        };
    }
}

class Program
{
    static void Main()
    {
        var calc = new Calculator();
        Console.WriteLine("=== ООП-калькулятор ===");

        while (true)
        {
            try
            {
                Console.Write("Число 1 (или 'q' для выхода): ");
                string s1 = Console.ReadLine();
                if (s1 == "q") break;

                double x = double.Parse(s1);
                Console.Write("Операция (+, -, *, /): ");
                string op = Console.ReadLine();
                Console.Write("Число 2: ");
                double y = double.Parse(Console.ReadLine());

                double? res = calc.Calculate(x, op, y);
                if (res.HasValue)
                    Console.WriteLine($"= {res.Value}");
                else
                    Console.WriteLine("Неизвестная операция.");
            }
            catch (DivideByZeroException ex)
            {
                Console.WriteLine($"Ошибка: {ex.Message}");
            }
            catch (FormatException)
            {
                Console.WriteLine("Ошибка: введите корректное число.");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Неожиданная ошибка: {ex.Message}");
            }

            Console.WriteLine();
        }
    }
}
using Система;

public class Calculator
{
    public double Add(double a, double b) => a + b;
    public double Subtract(double a, double b) => a - b;
    public double Multiply(double a, double b) => a * b;
    public double Divide(double a, double b)
    {
        if (b == 0) throw new DivideByZeroException("Деление на ноль невозможно.");
        return a / b;
    }

    public double? Calculate(double a, string operation, double b)
    {
        return operation switch
        {
            "+" => Add(a, b),
            "-" => Subtract(a, b),
            "*" => Multiply(a, b),
            "/" => Divide(a, b),
            _ => null
        };
    }
}

class Program
{
    static void Main()
    {
        var calc = new Calculator();
        Console.WriteLine("=== ООП-калькулятор ===");

        while (true)
        {
            try
            {
                Console.Write("Число 1 (или 'q' для выхода): ");
                string s1 = Console.ReadLine();
                if (s1 == "q") break;

                double x = double.Parse(s1);
                Console.Write("Операция (+, -, *, /): ");
                string op = Console.ReadLine();
                Console.Write("Число 2: ");
                double y = double.Parse(Console.ReadLine());

                double? res = calc.Calculate(x, op, y);
                if (res.HasValue)
                    Console.WriteLine($"= {res.Value}");
                else
                    Console.WriteLine("Неизвестная операция.");
            }
            catch (DivideByZeroException ex)
            {
                Console.WriteLine($"Ошибка: {ex.Message}");
            }
            catch (FormatException)
            {
                Console.WriteLine("Ошибка: введите корректное число.");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Неожиданная ошибка: {ex.Message}");
            }

            Console.WriteLine();
        }
    }
}