復習:簡易電卓
CoddyのC#ジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 9/70。
チャレンジ
難しいこれまで学んだすべての概念を実演する、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");
}
}