From ef4f7f488547c51ef736c7d1ca629d7f97e11cce Mon Sep 17 00:00:00 2001 From: Reza Date: Mon, 20 Apr 2026 13:32:40 +0330 Subject: [PATCH] Completed --- src/CourseRegistrationStarter/Main.java | 28 ++++++++++++----- .../RegistrationSystem.java | 23 +++++++++++--- src/CourseRegistrationStarter/Student.java | 30 +++++++++++++++---- 3 files changed, 63 insertions(+), 18 deletions(-) diff --git a/src/CourseRegistrationStarter/Main.java b/src/CourseRegistrationStarter/Main.java index 8f06373..1ea3b44 100644 --- a/src/CourseRegistrationStarter/Main.java +++ b/src/CourseRegistrationStarter/Main.java @@ -2,13 +2,25 @@ package CourseRegistrationStarter; public class Main { public static void main(String[] args) { - // TODO: - // 1. Create at least 3 courses - // 2. Create 1 student - // 3. Create a registration system - // 4. Add courses to the system - // 5. Register the student in some courses - // 6. Drop one course - // 7. Print the final registered course list + + Course c1 = new Course("Math", "M10", 5); + Course c2 = new Course("History", "HK1", 4); + Course c3 = new Course("Programming", "CS2",2); + + Student s1 = new Student("Reza", "404111111"); + + RegistrationSystem regSystem = new RegistrationSystem(); + + regSystem.addCourseToSystem(c1); + regSystem.addCourseToSystem(c2); + regSystem.addCourseToSystem(c3); + + s1.addCourse(c1); + s1.addCourse(c3); + + s1.dropCourse(c1); + + s1.showRegisteredCourses(); + regSystem.showAllCourses(); } } diff --git a/src/CourseRegistrationStarter/RegistrationSystem.java b/src/CourseRegistrationStarter/RegistrationSystem.java index 934f222..0bc3efa 100644 --- a/src/CourseRegistrationStarter/RegistrationSystem.java +++ b/src/CourseRegistrationStarter/RegistrationSystem.java @@ -9,16 +9,31 @@ public class RegistrationSystem { } public void addCourseToSystem(Course c) { - // TODO: Add the course to the system + courses.add(c); } public Course findCourseByCode(String code) { - // TODO: Search for a course by course code - // Return the matching course if found, otherwise return null + for (Course c : courses) { + if (c.getCourseCode().equals(code)) { + return c ; + } + } + return null; + } + //Bonus + public Course findCourseByName(String name) { + for (Course c : courses) { + if (c.getCourseName().equals(name)) { + return c; + } + } return null; } public void showAllCourses() { - // TODO: Print all courses in the system + System.out.println("All courses : "); + for (Course c : courses) { + System.out.println(" " + c.getCourseName() + " -- " + c.getCourseCode() + " - " + c.getCapacity()); + } } } diff --git a/src/CourseRegistrationStarter/Student.java b/src/CourseRegistrationStarter/Student.java index 02c11d8..0d61c6c 100644 --- a/src/CourseRegistrationStarter/Student.java +++ b/src/CourseRegistrationStarter/Student.java @@ -5,6 +5,7 @@ public class Student { private String name; private String studentId; private ArrayList registeredCourses; + private static final int maxCourses = 2; //Bonus public Student(String name, String studentId) { this.name = name; @@ -21,19 +22,36 @@ public class Student { } public boolean addCourse(Course c) { - // TODO: Register the student in the course if capacity allows - // Return true if registration was successful, otherwise false + //Bonus + for (Course course : registeredCourses) { + if (course.getCourseCode().equals(c.getCourseCode())) { + return false; + } + } + //Bonus + if (registeredCourses.size() >= maxCourses) { + return false; + } + if (c.getCapacity() > 0) { + registeredCourses.add(c); + c.reduceCapacity(); + return true; + } return false; } public boolean dropCourse(Course c) { - // TODO: Remove the course from the student's list - // Restore the course capacity if removal was successful - // Return true if the course was dropped, otherwise false + if (registeredCourses.remove(c)) { + c.increaseCapacity(); + return true; + } return false; } public void showRegisteredCourses() { - // TODO: Print all registered courses + System.out.println("Registered courses : "); + for (Course c : registeredCourses) { + System.out.println(" " + c.getCourseName() + " -- " + c.getCourseCode()); + } } } \ No newline at end of file -- 2.54.0