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

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

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

challenge icon

التحدي

صعب

قم ببناء فئة Calculator كاملة تجمع بين جميع المفاهيم التي تعلمتها:

  • ملفات الرأس/المصدر (Header/Source files) — فصل التصريح (declaration) عن التنفيذ (implementation)
  • مساحة الاسم (Namespace) — ضع الفئة داخل CalcApp
  • السمات الخاصة (Private attributes)name (string)، و memory (int)، و operationCount (int)
  • المشيدات (Constructors) — مشيد بمعامل (name) ومشيد افتراضي ("Standard")
  • مؤشر this — استخدم this-> لجميع عمليات الوصول إلى الأعضاء
  • الدوال (Methods)add، و subtract، و multiply، و divide (تقوم كل منها بتخزين النتيجة في الذاكرة وزيادة عداد العمليات)
  • دوال الجلب (Getters)getName()، و getMemory()، و getOperationCount()

يجب أن تعيد الدالة divide القيمة 0 عند القسمة على صفر.

جرّب بنفسك

#include <iostream>
#include "Calculator.h"

int main() {
    std::string name;
    int a, b;
    std::getline(std::cin, name);
    std::cin >> a >> b;
    
    CalcApp::Calculator calc(name);
    
    std::cout << "Calculator: " << calc.getName() << std::endl;
    std::cout << "Memory: " << calc.getMemory() << std::endl;
    std::cout << "Add: " << calc.add(a, b) << std::endl;
    std::cout << "Subtract: " << calc.subtract(a, b) << std::endl;
    std::cout << "Multiply: " << calc.multiply(a, b) << std::endl;
    std::cout << "Divide: " << calc.divide(a, b) << std::endl;
    std::cout << "Divide by zero: " << calc.divide(a, 0) << std::endl;
    std::cout << "Memory: " << calc.getMemory() << std::endl;
    std::cout << "Operations: " << calc.getOperationCount() << std::endl;
    return 0;
}

جميع دروس Object Oriented Programming