وصف مشروع: E-League Manager
فكرة المشروع
المشروع عبارة عن تطبيق مكتبي (Desktop App) مكتوب بلغة Java باستخدام مكتبة Swing GUI لإدارة دوري كرة القدم بشكل كامل.
البرنامج يمكّن المستخدم من:
إنشاء دوري جديد أو تحميل دوري محفوظ سابقًا.
إضافة وحذف الفرق واللاعبين.
تسجيل المباريات (أحداث المباراة مثل: Kick-off, Goals, Possession).
حساب النتائج النهائية وتحديث ترتيب الفرق تلقائيًا.
عرض جدول الدوري والنتائج على هيئة واجهة رسومية.
حفظ واسترجاع بيانات الدوري من ملف نصّي (كقاعدة بيانات بسيطة).
️ المكونات الرئيسية
1️⃣ الحزم (Packages)
soccer.play
تحتوي على الكلاسات الخاصة بالفرق واللاعبين والمباريات (Team, Player, Game, GameResult, league).
soccer.event
تمثل أحداث المباراة مثل Kick_off, Goal, Possession (كلها تورث من كلاس مجرد Game_event_abstract).
soccer.util
فيها كلاس Player_Database_File المسؤولة عن حفظ/تحميل الدوري من ملف نصّي على الجهاز.
soccer
تحتوي على MainGUI وهو الواجهة الرسومية الأساسية.
2️⃣ الواجهة الرسومية (GUI)
البرنامج يستخدم Java Swing ويعرض نافذة رئيسية فيها أزرار:
? New League: إنشاء دوري جديد باسم يحدده المستخدم.
Load League: تحميل دوري محفوظ مسبقًا من ملف.
Add Team: إضافة فريق جديد للدوري.
Add Player: إضافة لاعب لفريق موجود.
Remove (Team/Player): حذف فريق كامل أو لاعب محدد.
Show League: عرض جدول الدوري مرتب بالنقاط وفارق الأهداف.
Record Match: تسجيل مباراة بين فريقين مع تفاصيل (الأهداف، نسبة الاستحواذ، ملخص المباراة).
3️⃣ تخزين البيانات
يتم حفظ بيانات الدوري (League + Teams + Players + Matches) في ملف نصّي (soccer.txt) على هيئة جدول منظم:
LEAGUE: اسم الدوري
TEAM: ID,Name
PLAYER: Name,Number,Position
ENDTEAM
وعند التحميل يعاد بناء الكائنات (Objects) في الذاكرة.
مميزات المشروع
واجهة رسومية سهلة الاستخدام.
يحفظ البيانات حتى بعد إغلاق البرنامج.
ترتيب تلقائي للجدول (حسب النقاط ثم فارق الأهداف).
عرض ملخص المباريات بشكل منسق (Kick-off → أهداف → نسبة الاستحواذ → النتيجة النهائية).
إمكانية إضافة أو إزالة فرق ولاعبين في أي وقت.
التقنيات المستخدمة
لغة البرمجة: Java
مكتبة GUI: Swing
خوارزميات: حساب النقاط، الترتيب، التحديث التلقائي للإحصائيات
حفظ البيانات: File I/O (ملفات نصية)
مثال على المخرجات
جدول الدوري:
Team P W D L GF GA GD Pts
---------------------------------------------------
Liverpool 3 2 1 0 6 2 4 7
Barcelona 3 1 1 1 4 3 1 4
ملخص مباراة:
Match: Liverpool vs Barcelona
KICK-oooooooooooooF!
minute: 0
by Salah
GOAL!!
minute: 15
by Messi
Possession
minute: 30
Liverpool: 60%
Barcelona: 40%
GOAL!!
minute: 70
by Mane
Final Result
Liverpool 2 - 1 Barcelona
النتيجة النهائية: برنامج مكتبي كامل لإدارة دوري كرة القدم، يدمج بين OOP Concepts و Swing GUI و File Handling.