مشروع صغير في Java | آلة حاسبة بسيطة (شرح خطوة بخطوة)

25:00 دقائق مجاني
مشروع تطبيقي للمبتدئين جدًا: آلة حاسبة تستقبل رقمين وعملية (+ - * /) وتطبع النتيجة مع التحقق من الأخطاء مثل القسمة على صفر.

هذا المشروع الصغير هدفه أن يجمع لك عدة مفاهيم تعلمتها حتى الآن في برنامج واحد:

  • متغيرات وأنواع بيانات
  • إدخال المستخدم
  • شروط if/else
  • استخدام String والمقارنة بـ equals

سنصنع آلة حاسبة تسأل المستخدم عن رقمين، ثم تسأله عن العملية، ثم تطبع الناتج.

فكرة البرنامج قبل كتابة الكود

قبل أن نكتب الكود، نفكر بالخطوات:

  1. اطلب من المستخدم إدخال الرقم الأول.
  2. اطلب من المستخدم إدخال الرقم الثاني.
  3. اطلب منه اختيار العملية (+ أو - أو * أو /).
  4. نفّذ العملية المناسبة.
  5. اطبع النتيجة.
  6. إذا اختار قسمة والرقم الثاني صفر، اطبع رسالة خطأ بدل أن ينفجر البرنامج.

الكود الكامل للمشروع

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    System.out.print("أدخل الرقم الأول: ");
    double a = in.nextDouble();

    System.out.print("أدخل الرقم الثاني: ");
    double b = in.nextDouble();

    System.out.print("اختر العملية (+ - * /): ");
    String op = in.next();

    double result;

    if (op.equals("+")) {
      result = a + b;
    } else if (op.equals("-")) {
      result = a - b;
    } else if (op.equals("*")) {
      result = a * b;
    } else if (op.equals("/")) {
      if (b == 0) {
        System.out.println("لا يمكن القسمة على صفر.");
        return;
      }
      result = a / b;
    } else {
      System.out.println("عملية غير صحيحة.");
      return;
    }

    System.out.println("النتيجة: " + result);
  }
}

شرح نقاط مهمة داخل الكود

  • Scanner: أداة لقراءة إدخال المستخدم من لوحة المفاتيح.
  • nextDouble(): لقراءة رقم عشري (ويقبل الصحيح أيضًا).
  • String op = in.next();: لقراءة العملية ككلمة/رمز.
  • استخدمنا equals لمقارنة النص (الرمز) مثل "+" و "-".
  • تحققنا من القسمة على صفر قبل تنفيذ القسمة.
  • استخدمنا return لإنهاء البرنامج عند الخطأ.

تطويرات بسيطة (تمارين للمبتدئ)

جرّب تطوير المشروع بهذه الأفكار (ولو ببطء):

  • أضف عملية باقي القسمة % للأعداد الصحيحة.
  • اجعل البرنامج يعيد السؤال أكثر من مرة باستخدام حلقة while.
  • أضف رسالة ترحيب في البداية ورسالة وداع في النهاية.

أخطاء شائعة وكيف تتجنبها

  • نسيان import الخاص بـ Scanner.
  • مقارنة العملية باستخدام == بدل equals.
  • عدم التحقق من القسمة على صفر.

✅ جميل جدًا. الآن سنخطو خطوة أخرى في OOP: سنجعل الكلاس لا يحتوي بيانات فقط، بل يحتوي “سلوكًا” أيضًا عبر Methods داخل الكلاس.