Menu
Coddy logo textTech

復習:簡易電卓

CoddyのC#ジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 9/70。

challenge icon

チャレンジ

難しい

これまで学んだすべての概念を実演する、CalculatorApp.Core名前空間内の完全なCalculatorクラスを作成してください:

  • フィールド: memory (decimal) と operationCount (int) のためのプライベートフィールド
  • プロパティ: 自動実装プロパティ Name、読み取り専用プロパティ Memory および OperationCount
  • コンストラクタ: 名前をパラメータに持つコンストラクタ、およびコンストラクタチェーンを使用したデフォルトコンストラクタ
  • メソッド: Add, Subtract, Multiply, Divide, Power, および SquareRoot

すべてのメソッドは operationCount をインクリメントする必要があります。Add メソッドは、結果を memory に保存する必要もあります。

注意: Powerには Math.Pow() を、SquareRootには Math.Sqrt() を使用してください。必要に応じてパラメータを 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");
    }
}

オブジェクト指向プログラミングのすべてのレッスン