Menu
Coddy logo textTech

Итоги — Простой калькулятор

Часть раздела Объектно-ориентированное программирование путешествия по C# на Coddy — урок 9 из 70.

challenge icon

Задание

Сложно

Создайте полный класс Calculator в пространстве имен CalculatorApp.Core, который демонстрирует все изученные концепции:

  • Поля: Приватные поля для memory (decimal) и operationCount (int)
  • Свойства: Автоматически реализуемое свойство Name, свойства только для чтения Memory и OperationCount
  • Конструкторы: Конструктор с параметром name и конструктор по умолчанию, использующий цепочку конструкторов
  • Методы: Add, Subtract, Multiply, Divide, Power и SquareRoot

Все методы должны увеличивать operationCount. Метод Add также должен сохранять результат в memory.

Примечание: Используйте Math.Pow() для Power и Math.Sqrt() для SquareRoot. При необходимости приводите параметры к типу double.

Попробуйте сами

using System;
using CalculatorApp.Core;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        decimal num1 = decimal.Parse(Console.ReadLine());
        decimal num2 = decimal.Parse(Console.ReadLine());
        
        // Создать калькулятор, используя конструктор с именем
        Calculator calc = new Calculator(name);
        
        Console.WriteLine($"Calculator: {calc.Name}");
        Console.WriteLine($"Memory: {calc.Memory}");
        
        // Выполнить операции
        decimal addResult = calc.Add(num1, num2);
        Console.WriteLine($"Add: {addResult}");
        
        decimal subtractResult = calc.Subtract(num1, num2);
        Console.WriteLine($"Subtract: {subtractResult}");
        
        decimal multiplyResult = calc.Multiply(num1, num2);
        Console.WriteLine($"Multiply: {multiplyResult}");
        
        decimal divideResult = calc.Divide(num1, num2);
        Console.WriteLine($"Divide: {divideResult}");
        
        Console.WriteLine($"Memory after operations: {calc.Memory}");
        
        decimal powerResult = calc.Power(num1, num2);
        Console.WriteLine($"Power: {powerResult}");
        
        decimal sqrtResult = calc.SquareRoot(num2);
        Console.WriteLine($"Square Root: {sqrtResult}");
        
        Console.WriteLine($"History: {calc.OperationCount} operations");
    }
}

Все уроки раздела Объектно-ориентированное программирование