في هذا المشروع، سنتعلم كيفية إنشاء برنامج بسيط لتحويل العملات باستخدام لغة البرمجة Python. يتيح هذا البرنامج للمستخدم إدخال مبلغ معين بعملة محددة، ثم تحويله إلى عملة أخرى بناءً على أسعار صرف ثابتة. يُعد هذا المشروع مناسبًا للمبتدئين لتعلم أساسيات البرمجة مثل التعامل مع المدخلات والمخرجات، استخدام القواميس لتخزين البيانات، وإجراء العمليات الحسابية. كما سيوفر لك هذا المشروع فرصة لفهم كيفية التعامل مع البيانات المالية وتحويلها باستخدام خوارزميات بسيطة ولكن فعّالة.
تصميم المشروع
وظائف البرنامج:
إدخال اسم العملة الأساسية.
إدخال اسم العملة الهدف.
إدخال القيمة المالية المراد تحويلها.
حساب القيمة المحولة بناءً على سعر الصرف الثابت.
عرض النتيجة للمستخدم.
المدخلات والمخرجات
المدخلات:
العملة الأساسية.
العملة الهدف.
القيمة المالية.
المخرجات:
المبلغ المحول بالعملة الهدف.
مثال عملي
المدخل: العملة الأساسية: USD، العملة الهدف: MAD، القيمة: 100.
المخرجات: القيمة المحولة: 1020 درهم مغربي.
الكود المصدري
exchange_rates = {
"USD": {"MAD": 10.2, "EUR":
0.91},
"MAD": {"USD": 0.098, "EUR":
0.089},
"EUR": {"USD": 1.1, "MAD":
11.2}
}
base_currency = input("Enter the base currency (USD, MAD, EUR): ").upper()
if base_currency not in exchange_rates:
print("The base currency is not supported.")
else:
target_currency = input(
"Enter the target currency (USD, MAD, EUR): " ).upper()
if target_currency
not in exchange_rates[base_currency]:
print("The target currency is not supported.")
else:
amount =
float(input("Enter the amount: "))
converted_amount = amount
*
exchange_rates[base_currency][target_currency]
print(f
"The converted amount: {converted_amount:.2f} {target_currency}" )
شرح الكود
1. تعريف أسعار الصرف
يتم استخدام القواميس لتخزين أسعار الصرف بين العملات.
كل عملة تحتوي على قيم تحويل ثابتة للعملات الأخرى.
2. استقبال المدخلات
يتم طلب إدخال العملة الأساسية (base_currency) والعملة الهدف (target_currency)
من المستخدم.
يتم تحويل الإدخالات إلى أحرف كبيرة باستخدام .upper() لضمان التوافق.
3. التحقق من صحة المدخلات
يتم التحقق مما إذا كانت العملة الأساسية والهدف مدعومتين في قاموس أسعار الصرف.
في حالة إدخال عملة غير مدعومة، يتم عرض رسالة خطأ.
4. حساب القيمة المحولة
يتم ضرب القيمة المالية المدخلة (amount) في سعر الصرف المناسب المستخرج من
القاموس.
5. عرض النتيجة
يتم عرض القيمة المحولة باستخدام دالة print مع تحديد عدد المنازل العشرية
باستخدام .2f.
تحسينات مستقبلية:
الاتصال بواجهة برمجية (API): بدلاً من الاعتماد على أسعار صرف ثابتة، يمكن ربط البرنامج بواجهة برمجية (API) للحصول على أسعار صرف محدثة لحظيًا. باستخدام API مثل ExchangeRate-API أو Fixer.io، يمكن تحديث أسعار الصرف بشكل تلقائي ودقيق. هذا سيسمح للمستخدم بالحصول على قيم التحويل التي تعكس التغيرات اليومية في سوق العملات. هذه الخطوة ستجعل البرنامج أكثر ديناميكية وتواكبًا مع التغيرات في أسعار العملات.
إضافة واجهة رسومية: لتبسيط استخدام البرنامج، يمكن تطوير واجهة رسومية باستخدام مكتبات مثل Tkinter أو PyQt. هذه الواجهة ستسمح للمستخدمين بإدخال البيانات باستخدام أزرار وقوائم منسدلة بدلاً من كتابة المدخلات يدويًا في سطر الأوامر. كما يمكن إضافة مكونات مثل مربعات النصوص وعرض النتيجة بشكل مرئي، مما يحسن من تجربة المستخدم بشكل عام.
دعم المزيد من العملات: يمكن توسيع القاموس ليشمل عملات إضافية غير التي تم تضمينها حاليًا مثل الجنيه الإسترليني (GBP)، الين الياباني (JPY)، والفرنك السويسري (CHF). عن طريق إضافة المزيد من العملات، سيصبح البرنامج أداة أكثر شمولًا للمستخدمين الذين يتعاملون مع عملات مختلفة. يمكن الحصول على بيانات أسعار الصرف لهذه العملات من خلال API أو من مواقع الويب التي تقدم هذه البيانات.
إضافة نظام تحقق: تحسين المدخلات من خلال إضافة آلية للتحقق من صحة البيانات المدخلة يمكن أن يكون أمرًا مفيدًا جدًا. على سبيل المثال، يمكن التحقق من أن المستخدم قد أدخل قيمة رقمية صحيحة للعملة. يمكن إضافة استثناءات (Exceptions) لتحقق من أن القيم المدخلة للعدد المالي هي أرقام حقيقية وليس نصوصًا أو رموزًا غير صالحة. كما يمكن التحقق من أن العملة المدخلة هي واحدة من العملات المدعومة، وإعطاء المستخدم إشعارًا في حالة وجود خطأ. هذا سيساعد في منع الأخطاء ويجعل البرنامج أكثر أمانًا وسلاسة في العمل.
إضافة دعم للغات متعددة: قد يكون من المفيد إضافة دعم للغات متعددة بحيث يمكن للمستخدم اختيار اللغة التي يفضلها عند استخدام البرنامج. يمكن استخدام مكتبة مثل gettext لترجمة واجهة المستخدم إلى لغات مختلفة، مثل العربية والفرنسية والإنجليزية. هذا سيوفر تجربة مستخدم أفضل للمستخدمين من خلفيات لغوية متنوعة.
إضافة تحليل تاريخي لأسعار الصرف: يمكن إضافة ميزة تحليل تاريخي لأسعار الصرف التي تسمح للمستخدم بمراجعة تقلبات أسعار العملات على مدى فترة زمنية معينة. باستخدام البيانات التاريخية من API أو من قواعد البيانات، يمكن للمستخدم الاطلاع على تغيرات قيمة العملة في الأسابيع أو الأشهر السابقة، مما قد يساعده في اتخاذ قرارات مالية أكثر استنارة.
إضافة ميزات لتخزين سجل التحويلات: يمكن إضافة خاصية لحفظ سجل التحويلات التي تم إجراؤها بحيث يمكن للمستخدم الرجوع إليها في وقت لاحق. يمكن تخزين هذا السجل في قاعدة بيانات بسيطة أو حتى في ملف نصي. يمكن أن يتضمن السجل تاريخ التحويلات، العملة الأساسية، العملة الهدف، والمبلغ المحول.
تحسينات الأداء: يمكن تحسين أداء البرنامج بشكل عام عن طريق تحسين خوارزميات الحسابات بحيث تكون أكثر فعالية. بالإضافة إلى ذلك، في حال كان البرنامج يحتوي على عمليات معقدة مثل الاتصال بواجهات برمجية متعددة للحصول على بيانات، يمكن استخدام تقنيات مثل التخزين المؤقت (Caching) لتسريع عمليات التحويل.
من خلال تطبيق هذه التحسينات المستقبلية، سيصبح البرنامج أكثر مرونة وسهولة في الاستخدام، مما يتيح للمستخدمين الاستفادة القصوى من الأدوات المتاحة لهم لتحويل العملات بطريقة أكثر دقة وكفاءة.
برنامج تحويل العملات باستخدام Python يُعد مثالًا بسيطًا وعمليًا لفهم كيفية استخدام البرمجة لحل مشاكل الحياة اليومية. من خلال هذا المشروع، يمكن للمبتدئين تعلم كيفية التعامل مع القواميس، المدخلات والمخرجات، وإجراء العمليات الحسابية. هذا المشروع هو نقطة انطلاق جيدة للمبتدئين في عالم البرمجة، حيث يتيح لك تعلم كيفية التعامل مع البيانات المالية بطريقة مرنة. استمر في تجربة وتوسيع هذا البرنامج لتطوير مهاراتك البرمجية!