Sparse Table University Course Registration System (Java Implementation)

تفاصيل العمل

This project implements a University Course Registration System using linked lists to achieve sparse storage, where only actual student-course enrollments are stored efficiently. The system dynamically manages students and courses, allowing addition and removal while maintaining a linked structure.

Core functionalities include:

Student & Course Management: Add/remove students and courses, track the last added.

Enrollment Management: Enroll or remove students from courses with dynamic updates in both student and course lists.

Data Retrieval & Sorting: Retrieve all courses per student, all students per course, and display lists sorted by ID.

Constraints Handling: Enforce registration rules (2–7 courses per student, 20–30 students per course).

Bonus Feature: An Undo/Redo mechanism using stacks to reverse or reapply enrollment actions.

المشروع ده بيطبق نظام لتسجيل المقررات الجامعية باستخدام القوائم المرتبطة (Linked Lists)، بحيث يتم تخزين البيانات بشكل متفرق (Sparse Storage)، يعني ما يتمش تخزين كل الاحتمالات، لكن بس التسجيلات الفعلية بين الطلاب والمقررات، وده بيوفر مساحة وكفاءة.

المزايا الأساسية:

إدارة الطلاب والمقررات

إضافة/حذف طالب.

إضافة/حذف مقرر.

متابعة آخر طالب أو مقرر تم إضافته.

إدارة التسجيلات

تسجيل طالب في مقرر.

إلغاء تسجيل طالب من مقرر.

التحديث بيتم بشكل ديناميكي في كل من قائمة الطالب وقائمة المقرر.

استرجاع البيانات والفرز

عرض كل المقررات اللي مسجلها طالب معيّن.

عرض كل الطلاب المسجلين في مقرر معيّن.

عرض القوائم مرتبة حسب الـ ID.

التعامل مع القيود

الطالب لازم يسجل في من 2 لحد 7 مقررات.

المقرر لازم يكون فيه من 20 لحد 30 طالب.

ميزة إضافية (Bonus)

Undo / Redo باستخدام Stacks:

تراجع (Undo): عكس العملية اللي اتعملت.

إعادة (Redo): تكرار العملية بعد التراجع.

ملفات مرفقة

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
3
تاريخ الإضافة
تاريخ الإنجاز
المهارات