Group 1&2
Group 1&2
Objective: The objective of this course project is to apply the concepts of object-oriented
programming (OOP) by developing a real-world application. Students will design,
implement, and test a system using OOP principles, focusing on encapsulation, inheritance,
polymorphism, and exception handling.
Project Guidelines:
1. Each student or group (max 6 members) will choose one of the project titles provided.
2. The project must be implemented using an OOP language (Java).
3. The system must include at least the following OOP concepts:
o Class definitions and object instantiation
o Encapsulation and access modifiers
o Inheritance and polymorphism
o Exception handling
o Interfaces or abstract classes where applicable
4. A project report should be submitted, including:
o Introduction
o System analysis and design (UML diagrams preferred)
o Implementation details
o Testing and validation
o Conclusion and future improvements
Objective: Design a system to manage student grades, courses, and academic records
using OOP principles.
Core Requirements
1. Class Hierarchy (Inheritance)
• Base Class: Person
o Properties: id, name, email
o Subclasses: Student and Teacher
Course Project: Object-Oriented Programming
• Student Class:
o Add properties: studentId, enrolledCourses (list of courses), grades (map of
course-to-grade).
• Teacher Class:
oAdd properties: teacherId, coursesTaught.
2. Encapsulation
• Use private fields with getters/setters for all classes.
• Validate data in setters (e.g., grades must be 0–100).
3. Polymorphism
• Override displayInfo() in Student and Teacher to show role-specific details.
4. Abstraction
• Create an abstract class Assessment with fields like assessmentId, maxScore, and
an abstract method calculateGrade().
• Subclasses: Exam and Assignment (e.g., Exam might weigh grades differently).
5. Interface
• Define an interface ReportGenerator with methods:
• Implement this in Student and Course classes.
6. Exception Handling
• Throw custom exceptions:
o InvalidGradeException if a grade is outside 0–100.
o CourseFullException if a course exceeds student capacity.
Evaluation Criteria:
1. Design & Implementation (50%) - Proper use of OOP principles
2. Functionality (30%) - Meeting the project requirements
3. Code Quality & Documentation (20%) - Readability, comments, and UML diagrams
4. Presentation & Report (10%) - Clarity and completeness of the report.
Note: Late submissions will result in a penalty. Plagiarism will lead to disqualification.