Menu
Coddy logo textTech

Recap - Simple Calculator

Part of the Object Oriented Programming section of Coddy's C# journey — lesson 9 of 70.

challenge icon

Challenge

Hard

Create a complete Calculator class in the CalculatorApp.Core namespace that demonstrates all concepts learned:

  • Fields: Private fields for memory (decimal) and operationCount (int)
  • Properties: Auto-implemented property Name, read-only properties Memory and OperationCount
  • Constructors: Constructor with name parameter, and default constructor using constructor chaining
  • Methods: Add, Subtract, Multiply, Divide, Power, and SquareRoot

All methods should increment operationCount. The Add method should also store the result in memory.

Note: Use Math.Pow() for Power and Math.Sqrt() for SquareRoot. Cast parameters to double when needed.

Try it yourself

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());
        
        // Create calculator using constructor with name
        Calculator calc = new Calculator(name);
        
        Console.WriteLine($"Calculator: {calc.Name}");
        Console.WriteLine($"Memory: {calc.Memory}");
        
        // Perform operations
        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");
    }
}

All lessons in Object Oriented Programming