Course Project: Object-Oriented Programming
Course Title: Object-Oriented Programming
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
Project Title: 1) Grade Management System
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.
Functionality to Implement Sample Workflow
1. Add/remove students from courses. 1. Create students, teachers, and courses.
2. Assign grades to students for specific 2. Enroll students in courses.
courses/assessments. 3. Add assessments (exams, assignments) to
3. Calculate average grades for a student or courses.
course. 4. Assign grades and calculate averages.
4. Generate reports (e.g., student transcript, 5. Generate and save reports.
course summary).
5. Validate inputs (e.g., invalid grades, duplicate
enrollments).
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.