🌟 مقدمة: حان وقت التحدي! لقد قطعت شوطاً طويلاً يا بطل. تعلمت كيف تصمم القوالب، وكيف تمنحها الخصائص، وكيف تجعلها تقوم بأفعال ذكية. اليوم، سنقوم ببناء نظام إدارة أكاديمية مصغر يجمع كل هذه المهارات. هدفنا هو بناء نظام يمكنه إضافة طلاب، عرض بياناتهم، وحساب متوسط درجاتهم.
🏗️ هيكل المشروع (المخطط الهندسي): سنقوم بإنشاء صنفين أساسيين:
:Class Student يمثل بيانات الطالب الفردي.
:Class Academy يمثل “النظام” الذي يحتوي على قائمة الطلاب ويقوم بالعمليات عليهم.
💻 الكود الكامل للمشروع (انسخه وطبقه):
# 1. صنف الطالب
:class Student
: def init(self, name, grade)
self.name = name
self.grade = grade
2. صنف الأكاديمية (الذي يدير العمليات)
:class Academy
:def init(self, academy_name)
self.academy_name = academy_name
قائمة لتخزين الكائنات # [ ] =self.students_list
:def add_student(self, student_obj)
self.students_list.append(student_obj)
(“.{self.academy_name} في {student_obj.name}تم تسجيل”f)print
:def show_all_students(self)
(“– {self.academy_name}قائمة طلاب —f”\n)print
:for s in self.students_list
(” {s.grade} : الدرجة | {s.name} : الاسم”f)print
:def calculate_average(self)
if not self.students_list: return 0
total = sum(s.grade for s in self.students_list)
return total / len(self.students_list)
— تجربة النظام الحقيقية —
إنشاء الأكاديمية
(“أكاديمية قياوي”) my_academy = Academy
إنشاء طلاب وإضافتهم
((“ميمون”, 95)Student)my_academy.add_student
((“أمين”, 88)Student)my_academy.add_student
((“ليلى”, 92)Student)my_academy.add_student
عرض البيانات والنتائج
() my_academy.show_all_students
() avg = my_academy.calculate_average
( “{avg:.2f} :متوسط درجات الأكاديمية هو✅ f”\n)print
🔍 لماذا هذا المشروع هو “خلاصة الاحتراف”؟
التفاعل بين الكائنات: رأينا كيف يمكن لكائن (Academy) أن يستقبل ويخزن كائنات أخرى (Student).
الفصل بين المهام: كل كلاس مسؤول عن وظيفة محددة، وهذا هو سر الأنظمة التي لا تتعطل.
المرونة: يمكنك الآن إضافة مئات الطلاب دون تغيير سطر واحد في منطق الأكاديمية.
💡 رسالة ختامية للوحدة الخامسة:
“مبروك! بإنهاء هذا المشروع، أنت لم تعد مجرد شخص يعرف ‘كيف يكتب’ لغة بايثون، بل أصبحت مصمماً للأنظمة. هذه هي العقلية التي تبحث عنها كبرى شركات البرمجيات في العالم.”
🎯 التحدي النهائي للوحدة (للمجتهدين فقط):
حاول تطوير هذا النظام بإضافة دالة (Method) في كلاس Academy تسمى find_top_student تقوم بالبحث في القائمة وإظهار اسم الطالب الذي حصل على أعلى درجة.
مراجعة الدرس :
بعد ما تعلمنا: المتغيرات ، الشروط ، الحلقات ، القوائم ، الأصناف والكائنات ، وإدارة مجموعات الكائنات
حان الوقت لنفعل شيئًا حقيقيًا 💡 في هذا الدرس سنبني برنامجًا بسيطًا لكنه احترافي في فكرته.
📌 الهدف: إنشاء نظام صغير لإدارة الطلاب (إضافة – عرض – بحث)
🧠 فكرة المشروع نريد برنامجًا يقوم بما يلي: 1️⃣ تخزين معلومات الطلاب 2️⃣ عرض جميع الطلاب 3️⃣ البحث عن طالب بالاسم
سنستعمل: class list for if input
🧱 الخطوة 1: إنشاء صنف Student
:class Student
:def init(self, name, level)
self.name = name
self.level = level
:def info(self)
(" self.level,":المستوى |" , self.name,":الاسم")print
📌 هذا الصنف يمثل طالبًا واحدًا
📦 الخطوة 2: قائمة لتخزين الطلاب
[] =students
➕ الخطوة 3: إضافة طالب جديد
(“أدخل اسم الطالب: “)name = input
(“أدخل مستوى الطالب: “)level = input
students.append(Student(name, level))
(“تمت إضافة الطالب بنجاح ✅”)print
📋 الخطوة 4: عرض جميع الطلاب
:for student in students
()student.info
📌 هنا نرى قوة إدارة مجموعات الكائنات
🔍 الخطوة 5: البحث عن طالب
(“اسم الطالب المراد البحث عنه: “)search_name = input
found = False
:if student.name == search_name
() student.info
found = True
:if not found
(“❌ لم يتم العثور على الطالب “)print
🧠 ماذا تعلمنا من هذا المشروع؟ ✔️ كيف نفكّر كمبرمج ✔️ كيف نجزّئ المشكلة ✔️ كيف نجمع الأدوات في برنامج واحد ✔️ هذا هو أساس أي نظام كبير
🧪 تمرين إضافي (اختياري) 💡 حاول:
إضافة خاصية العمر
حساب عدد الطلاب
حذف طالب من القائمة
🌟 رسالة تحفيزية : اليوم لم تكتب كودًا فقط… بل بنيت نظامًا كاملاً من الصفر 🐝
خطوة هادئة وفهم عميق وهكذا يصنع المبرمجون الحقيقيون