0% found this document useful (0 votes)
46 views2 pages

OOP Java Practical Assignment

The document describes an assignment to build a student management system using object-oriented programming concepts in Java. It provides requirements for classes to represent Students, Instructors, and Courses, including attributes and methods. It tasks the developer with implementing these classes, creating a StudentManagementSystem class to demonstrate functionality, and providing a menu-driven interface to allow user management of students, instructors, courses, grades, and enrollments. The submission is due by midnight on June 10th via email in a compressed file format.

Uploaded by

kai emmanuel
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
46 views2 pages

OOP Java Practical Assignment

The document describes an assignment to build a student management system using object-oriented programming concepts in Java. It provides requirements for classes to represent Students, Instructors, and Courses, including attributes and methods. It tasks the developer with implementing these classes, creating a StudentManagementSystem class to demonstrate functionality, and providing a menu-driven interface to allow user management of students, instructors, courses, grades, and enrollments. The submission is due by midnight on June 10th via email in a compressed file format.

Uploaded by

kai emmanuel
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 2

INF 208: Object Oriented Programming II Practical Assignment (Use Java Programming)

2nd June 2023.

Scenario: Student Management System

You have been assigned the task of developing a Student Management System for a university. The system
should be capable of handling students, instructors, and courses. Your implementation should incorporate
the four main pillars of Object-Oriented Programming (OOP) - encapsulation, inheritance, polymorphism,
and abstraction.

Requirements:

1. Students:
• Each student should have a unique ID, name, and age.
• Students can enroll in multiple courses.
• Students can view their enrolled courses and grades.
2. Instructors:
• Each instructor should have a unique ID, name, and age.
• Instructors can teach multiple courses.
• Instructors can view the list of students enrolled in their courses.
3. Courses:
• Each course should have a unique course code, name, and instructor.
• Courses can have multiple students enrolled.
• Courses should be able to calculate and display average grades.

Your Task:

(1) Implement the following classes:

Student class:

• Attributes: ID (String), name (String), age (int), enrolledCourses (List<Course>)


• Constructor: Student(ID, name, age)
• Methods:
➢ enrollCourse(Course course): Adds the given course to the student's enrolledCourses list.
➢ viewCourseDetails(): Displays the details of the courses the student is enrolled in.
➢ viewGrades(): Displays the grades of the student for each enrolled course.

Instructor class:

• Attributes: ID (String), name (String), age (int), taughtCourses (List<Course>)


• Constructor: Instructor(ID, name, age)
• Methods:
➢ assignCourse(Course course): Adds the given course to the instructor's taughtCourses list.
➢ viewEnrolledStudents(Course course): Displays the list of students enrolled in the specified
course.

Course class:
• Attributes: courseCode (String), name (String), instructor (Instructor), enrolledStudents
(List<Student>), grades (List<Integer>)
• Constructor: Course(courseCode, name, instructor)
• Methods:
➢ addStudent(Student student): Adds the given student to the enrolledStudents list.
➢ setInstructor(Instructor instructor): Sets the instructor for the course.
➢ addGrade(Student student, int grade): Assigns the given grade to the specified student for the
course.
➢ getGrade(Student student): Retrieves the grade of the specified student for the course.
➢ calculateAverageGrade(): Calculates and returns the average grade for the course.

(2) Create a class called StudentManagementSystem. In this class, create objects of students, instructors,
and courses to demonstrate the functionality of your system. Show how polymorphism can be used to
handle different types of objects (students and instructors) through a common interface or base class.

(3) Implement a menu-driven interface in the StudentManagementSystem class that allows the user to
perform the following actions:

a) Add a new student or instructor to the system.

b) Enroll a student in a course.

c) Assign an instructor to a course.

d) View course details and average grades.

e) View the list of students enrolled in a course.

You can add additional features or functionalities to enhance the system if you wish.

Note: Ensure that your code is well-organized, documented and must follows best practices, and includes
appropriate comments for clarity.

Submission:

This work should be submitted before midnight (23:59), 10th June 2023 through my email:
soler.deus@yahoo.com and any late submission will NOT be entertained. Failure to submit on time will
reward a 0 of 100 to an individual without any questions asked. You should compress your files using either
zip or rar formats.

Submission mode: regNo_Surname_OOP_Java.zip

You might also like