Menu
Coddy logo textTech

Resumen - Calculadora simple

Parte de la sección Programación Orientada a Objetos del Journey de C# de Coddy — lección 9 de 70.

challenge icon

Desafío

Difícil

Crea una clase Calculator completa en el espacio de nombres CalculatorApp.Core que demuestre todos los conceptos aprendidos:

  • Campos: Campos privados para memory (decimal) y operationCount (int)
  • Propiedades: Propiedad auto-implementada Name, propiedades de solo lectura Memory y OperationCount
  • Constructores: Constructor con parámetro de nombre, y constructor por defecto utilizando encadenamiento de constructores
  • Métodos: Add, Subtract, Multiply, Divide, Power, y SquareRoot

Todos los métodos deben incrementar operationCount. El método Add también debe almacenar el resultado en memory.

Nota: Usa Math.Pow() para Power y Math.Sqrt() para SquareRoot. Convierte los parámetros a double cuando sea necesario.

Pruébalo tú mismo

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());
        
        // Crear calculadora usando el constructor con nombre
        Calculator calc = new Calculator(name);
        
        Console.WriteLine($"Calculator: {calc.Name}");
        Console.WriteLine($"Memory: {calc.Memory}");
        
        // Realizar operaciones
        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");
    }
}

Todas las lecciones de Programación Orientada a Objetos