package CourseRegistrationStarter; import java.util.ArrayList; public class Student { private String name; private String studentId; private ArrayList registeredCourses; public Student(String name, String studentId) { this.name = name; this.studentId = studentId; this.registeredCourses = new ArrayList<>(); } public String getName() { return name; } public String getStudentId() { return studentId; } public boolean addCourse(Course c) { // Register the student in the course if capacity allows if (c.reduceCapacity()) { // Reduce capacity, returns true if successful (capacity > 0) registeredCourses.add(c); System.out.println(name + " successfully registered for course: " + c.getCourseName()); return true; } else { System.out.println(name + " could not register for course " + c.getCourseName() + ". Course is full."); return false; } } public boolean dropCourse(Course c) { // Remove the course from the student's list // Restore the course capacity if removal was successful if (registeredCourses.contains(c)) { registeredCourses.remove(c); c.increaseCapacity(); // Restore capacity System.out.println(name + " successfully dropped course: " + c.getCourseName()); return true; } else { System.out.println(name + " is not registered for course: " + c.getCourseName() + ", cannot drop."); return false; } } public void showRegisteredCourses() { // Print all registered courses System.out.println("\n--- Courses Registered by " + name + " ---"); if (registeredCourses.isEmpty()) { System.out.println(name + " is not registered for any courses."); } else { for (Course c : registeredCourses) { System.out.println("Name: " + c.getCourseName() + ", Code: " + c.getCourseCode()); } } System.out.println("------------------------------------\n"); } }