يُراد بناء نظام برمجي بسيط لمؤسسة تعليمية يتواجد فيها نوعين من الأفراد Member : موظفين Employeeوطلاب Student. يشترك كافة الأفراد في دورة تدريبية تهدف إلى صقل مهاراتهم في مجال علوم الحاسوب. يدفع الموظف الواحد مبلغ fee مقداره 15% من راتبه الشهري كلفة مشاركته في الدورة، أما الطالب فيدفع مبلغ ثابت هو 8000 ليرة سورية علماً أنه يتم إعفاء كل طالب يزيد معدله التراكمي gpa عن 3.5.
عرّف الصف المجرد Member والذي يضم ما يلي:
- الحقول الخاصة Private: الاسم name، الكنية lastname
- الحقل المحمي Protected : نفقات fee
- الخصائص Property التالية: Name، LastName
- الخاصة المجردة Fee.
- الطريقة المجردة CalculateFee
- الطريقة الافتراضية ToString: ويقوم بطباعة كافة معلومات الصف.
عرّف الصف Employee المشتق من الصف Member الذي يضم ما يلي:
- الحقول الخاصة Private: الرقم التسلسلي للموظف idemp، والراتب salery
- الخصائص Property التالية: IdEmp، Salery
- الباني: ويتم فيه تمرير كافة الحقول السابقة.
عرّف الصف Student المشتق من الصف Memberالذي يضم ما يلي:
- الحقول الخاصة Private: الرقم التسلسلي للطالب idstu والكلية facultyوالمعدل التراكمي gpa
- الخصائص Property التالية: IdStu، Facutly، GPA
- الباني: ويتم فيه تمرير كافة الحقول السابقة.
كذلك عرّف الصف University والذي له الحقول التالية والطرق التالية:
- الحقل الخاص Private: Members وتمثل مصفوفة من الأفراد Member
- الحقل الخاص Private: MaxMbs ويمثل عدد العناصر الأعظمي في المصفوفة
- الباني: ويتم فيه تمرير عدد عناصر المصفوفة.
- الطرق Methods التالية:
o إضافة فرد إلى المصفوفة AddMember
o طباعة معلومات موظف بعد تمرير رقمه PrintMember
o طباعة معلومات كافة الطلاب اللذين يزيد معدلهم التراكمي عن قيمة معينة
o طباعة كافة عناصر المصفوفة PrintAllMembers
كذلك اكتب الصف Tester والذي يحوي الطريقة Main ويقوم على الترتيب بما يلي:
o طباعة عدد الموظفين.
o طباعة عدد الطلاب.
o خلق غرضobject اسمه Univمن نمط University بعدد من العناصر يتم إدخالها من لوحة الملامس.
o خلق عدد من الموظفين (يتم تحديد العدد من لوحة الملامس) وإضافتهم إلى المصفوفة Univ.
o خلق عدد من الطلاب (يتم تحديد العدد من لوحة الملامس) وإضافتهم إلى المصفوفة Univ.
o طباعة معلومات موظف بعد تمرير رقمه.
o طباعة معلومات كافة الطلاب اللذين تم إعفائهم من نفقات الدورة.
o حساب إيراد الدورة من أجل كافة الأفراد.
ملاحظات هامة:
يجب استخدام مبدأ inheritance وpolymorphism في الكتابة ووضع الـ attributes, methods في المكان الأمثل لها.


