تدريب عملي
التدريب العملي 19: نظام إدارة الطلاب
مشروع شامل يجمع كل ما تعلّمته في المقرر: الكلاسات والوراثة والتجريد والواجهات والقوائم والاستثناءات والملفات.
من الدرس 17. المشروع الشامل: نظام إدارة الطلاب · كل التدريبات
١نص المسألة
ابنِ نظامًا لإدارة طلاب الشعبة: كلاس مجرد Person، وطالب ومعلّم يرثانه، وواجهة Reportable، وكلاس School يحفظ الطلاب في ArrayList ويحسب المتوسط وأعلى طالب ويحفظ الكشف في ملف. ارفض أي درجة خارج 0 إلى 100.
٢الخوارزمية المقترحة
- أنشئ الحزمتين school.model و school.app.
- اكتب الواجهة Reportable والكلاس المجرد Person (رقم واسم private ودالة printInfo مجردة).
- اكتب Student يرث Person وينفّذ Reportable: setMark يرفض الدرجة الخاطئة بـ throw، وعدّاد static، وثابت PASS_MARK.
- اكتب Teacher يرث Person ويضيف المادة.
- اكتب School: قائمة الطلاب، و average و topStudent، و saveToFile و printFile.
- في Main أضف الطلاب، وجرّب درجة خاطئة داخل try، واطبع المعلّم والأعلى، ثم الإحصاءات، ثم احفظ الملف واقرأه.
٣خطوات التطبيق
في NetBeans
- أنشئ مشروعًا باسم School دون Main Class.
- أنشئ حزمتين: school.model و school.app (زر أيمن على Source Packages ← New ← Java Package).
- في school.model أنشئ: الواجهة Reportable، ثم Person، ثم Student، ثم Teacher.
- في school.app أنشئ: School ثم Main، ونفّذ Main.
في OneCompiler
- افتح OneCompiler من زر «▶ شغّل المشروع» أسفل الحل، أو من موقع onecompiler.com/java.
- في OneCompiler تُكتب كل الكلاسات في ملف واحد Main.java؛ زر التشغيل يجمعها لك تلقائيًّا.
- إذا كان البرنامج يقرأ من لوحة المفاتيح، فاكتب المدخلات في خانة STDIN التي تظهر تحت الكود في محرّر OneCompiler، ثم اضغط Run.
٤المخرجات المطلوبة
نفّذ برنامجك، ويجب أن تظهر المخرجات التالية:
run:
خطأ: الدرجة يجب أن تكون بين 0 و 100
Teacher: 1 | Saud | Java
Student: 4355 | Fahad | 92.0 | Pass
Students: 3
Average: 74.0
--- students.txt ---
4321,Mohammed,80.0,Pass
4344,Turki,50.0,Fail
4355,Fahad,92.0,Pass
BUILD SUCCESSFUL (total time: 0 seconds)
٥الحل المقترح
حاول بنفسك أولًا، ثم قارن حلّك بالحل المقترح (كود التدريب من مذكرة العملي):
👁 اعرض الحل المقترح
package school.model; public interface Reportable { String report();}
ملفات المشروع في تبويبات كما في NetBeans. زر التشغيل يجمعها في ملف واحد ليعمل على OneCompiler.
run:
خطأ: الدرجة يجب أن تكون بين 0 و 100
Teacher: 1 | Saud | Java
Student: 4355 | Fahad | 92.0 | Pass
Students: 3
Average: 74.0
--- students.txt ---
4321,Mohammed,80.0,Pass
4344,Turki,50.0,Fail
4355,Fahad,92.0,Pass
BUILD SUCCESSFUL (total time: 0 seconds)
أسئلة المناقشة
أسئلة مناقشة على التدريب 19. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) ما الكلاس المجرد في المشروع؟
2) لماذا لم يُضَف الطالب Ali إلى القائمة؟
3) ما فائدة الواجهة Reportable في المشروع؟
4) لماذا ظهر Fahad في المخرجات مع المعلّم؟
5) كيف حسبنا المتوسط 74.0؟
6) لماذا وضعنا saveToFile داخل try؟
7) أي مفهوم يمثّله الثابت PASS_MARK؟
8) ما الحزمة التي فيها الكلاس Student؟
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».