Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة - آلة حاسبة بسيطة

جزء من قسم Object Oriented Programming في رحلة C# على Coddy — الدرس 9 من 70.

challenge icon

التحدي

صعب

قم بإنشاء فئة Calculator كاملة في مساحة الاسم CalculatorApp.Core توضح جميع المفاهيم التي تم تعلمها:

  • الحقول (Fields): حقول خاصة لـ memory (decimal) و operationCount (int)
  • الخصائص (Properties): خاصية تلقائية التنفيذ Name، وخصائص للقراءة فقط Memory و OperationCount
  • المشيدات (Constructors): مشيد مع معامل الاسم، ومشيد افتراضي يستخدم تسلسل المشيدات (constructor chaining)
  • الأساليب (Methods): 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");
    }
}

جميع دروس Object Oriented Programming