diff --git a/src/CourseRegistrationStarter/Main.java b/src/CourseRegistrationStarter/Main.java index 8f06373..05740d9 100644 --- a/src/CourseRegistrationStarter/Main.java +++ b/src/CourseRegistrationStarter/Main.java @@ -10,5 +10,17 @@ public class Main { // 5. Register the student in some courses // 6. Drop one course // 7. Print the final registered course list + Course c1 = new Course("Python for beginners", "41842373", 10); + Course c2 = new Course("Advanced Python", "42842335", 22); + Course c3 = new Course("Java for beginners", "17289682", 7); + Student s1 = new Student("Barbod", "9341264180"); + RegistrationSystem r1 = new RegistrationSystem(); + r1.addCourseToSystem(c1); + r1.addCourseToSystem(c2); + r1.addCourseToSystem(c3); + s1.addCourse(c1); + s1.addCourse(c3); + s1.dropCourse(c1); + s1.showRegisteredCourses(); } } diff --git a/src/CourseRegistrationStarter/RegistrationSystem.java b/src/CourseRegistrationStarter/RegistrationSystem.java index 934f222..93f8aa6 100644 --- a/src/CourseRegistrationStarter/RegistrationSystem.java +++ b/src/CourseRegistrationStarter/RegistrationSystem.java @@ -10,15 +10,32 @@ 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 (int i = 0; i < courses.size(); i++) { + if (courses.get(i).getCourseCode().equals(code)) { + return courses.get(i); + } + } return null; } public void showAllCourses() { // TODO: Print all courses in the system + + for (int i = 0; i < courses.size(); i++) { + System.out.print("Course name: "); + System.out.print(courses.get(i).getCourseName()); + System.out.print(" Code "); + System.out.print(courses.get(i).getCourseCode()); + System.out.print("Remaining capacity: "); + System.out.println(courses.get(i).getCourseName()); + } } } diff --git a/src/CourseRegistrationStarter/Student.java b/src/CourseRegistrationStarter/Student.java index 02c11d8..fd13c65 100644 --- a/src/CourseRegistrationStarter/Student.java +++ b/src/CourseRegistrationStarter/Student.java @@ -23,6 +23,18 @@ 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 + + for (int i = 0; i < registeredCourses.size(); i++) { //Bonus + if (registeredCourses.get(i).equals(c)) { + return false; + } + } + int limit = 10; //Bonus + if (c.getCapacity() > 0 && registeredCourses.size() <= limit) { + registeredCourses.add(c); + c.reduceCapacity(); + return true; + } return false; } @@ -30,10 +42,34 @@ public class Student { // 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 + + for (int i = 0; i < registeredCourses.size(); i++) { + if (registeredCourses.get(i).equals(c)) { + registeredCourses.remove(c); + c.increaseCapacity(); + return true; + } + } + return false; + } + + public boolean findCourseByName(String name) { //Bonus + for (int i = 0; i < registeredCourses.size(); i++) { + if (registeredCourses.get(i).getCourseName().equals(name)) { + return true; + } + } return false; } public void showRegisteredCourses() { // TODO: Print all registered courses + + for (int i = 0; i < registeredCourses.size(); i++) { + System.out.print("Course name: "); + System.out.print(registeredCourses.get(i).getCourseName()); + System.out.print(" Code "); + System.out.println(registeredCourses.get(i).getCourseCode()); + } } } \ No newline at end of file