From 7e56379458cadcec724faa7784847cc31b06835d Mon Sep 17 00:00:00 2001 From: Matin-Ardestani Date: Sun, 3 May 2026 18:09:18 +0330 Subject: [PATCH] Complete code --- src/main/java/Main.java | 23 ++++++++++++-- src/main/java/models/Student.java | 27 ++++++++++++++++- src/main/java/models/Teacher.java | 20 ++++++++----- src/main/java/services/SchoolSystem.java | 38 ++++++++++++++++++++++-- 4 files changed, 93 insertions(+), 15 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index edfa2f5..47f66dd 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -70,7 +70,13 @@ public class Main { boolean success; switch (choice) { case 1: - //TODO + success = school.registerStudent(username, password); + if(success){ + System.out.println(" Student registered successfully!"); + } + else{ + System.out.println(" Username already exists!"); + } break; case 2: success = school.registerTeacher(username, password); @@ -103,7 +109,13 @@ public class Main { switch (choice) { case 1: - //TODO + Student student = school.loginStudent(username, password); + if(student != null){ + studentMenu(student); + } + else{ + System.out.println(" Invalid username or password!"); + } break; case 2: Teacher teacher = school.loginTeacher(username, password); @@ -153,7 +165,12 @@ public class Main { } private static void enrollInCourse(Student student) { - //TODO + System.out.println("\n Select a course:\n"); + school.getAllCoursesDisplay(); + System.out.println(); + String courseName = scanner.toString(); + Course course = school.findCourseByName(courseName); + student.enrollInCourse(course); } // ==================== TEACHER MENU ==================== diff --git a/src/main/java/models/Student.java b/src/main/java/models/Student.java index b8c51a4..387c5ef 100644 --- a/src/main/java/models/Student.java +++ b/src/main/java/models/Student.java @@ -11,5 +11,30 @@ public class Student extends User { this.enrolledCourses = new ArrayList<>(); } - //TODO + public List getEnrolledCourses() { + return enrolledCourses; + } + + public boolean enrollInCourse(Course course){ + if(enrolledCourses.contains(course)){ + return false; + } + enrolledCourses.add(course); + course.addStudent(this); + return true; + } + + public String getMyCoursesDisplay(){ + if(enrolledCourses.isEmpty()){ + return "You are not enrolled in any course yet."; + } + else{ + StringBuilder sb = new StringBuilder("\n My Courses:\n"); + for(int i = 0; i < enrolledCourses.size(); i++){ + sb.append(" ").append(i + 1).append(enrolledCourses.get(i)).append("\n"); + } + return sb.toString(); + } + } + } \ No newline at end of file diff --git a/src/main/java/models/Teacher.java b/src/main/java/models/Teacher.java index 9f900fc..e228e9c 100644 --- a/src/main/java/models/Teacher.java +++ b/src/main/java/models/Teacher.java @@ -32,22 +32,26 @@ public class Teacher extends User { return myCourses; } - public void showMyCourses() { + public String getMyCoursesDisplay() { if (myCourses.isEmpty()) { - System.out.println(" You don't teach any course yet."); + return " You don't teach any course yet."; } else { - System.out.println("\n My Courses:"); + StringBuilder sb = new StringBuilder("\n My Courses:\n"); for (int i = 0; i < myCourses.size(); i++) { - System.out.println(" " + (i+1) + ". " + myCourses.get(i)); + sb.append(" ").append(i+1).append(". ").append(myCourses.get(i)).append("\n"); } + return sb.toString(); } } - public void showStudentsInCourse(Course course) { + public boolean checkCourseOwnership(Course course) { + return myCourses.contains(course); + } + + public String getStudentsDisplayForCourse(Course course) { if (!myCourses.contains(course)) { - System.out.println(" You don't teach this course!"); - return; + return "You don't teach this course!"; } - course.showStudents(); + return course.getStudentsDisplay(); } } \ No newline at end of file diff --git a/src/main/java/services/SchoolSystem.java b/src/main/java/services/SchoolSystem.java index 5007246..ee9d129 100644 --- a/src/main/java/services/SchoolSystem.java +++ b/src/main/java/services/SchoolSystem.java @@ -16,7 +16,30 @@ public class SchoolSystem { } // ========== Student Management ========== - //TODO + public boolean registerStudent(String username, String password){ + if(findStudent(username) != null){ + return false; + } + students.add(new Student(username, password)); + return true; + } + + public Student loginStudent(String username, String password){ + Student student = findStudent(username); + if(student != null && student.checkPassword(password)){ + return student; + } + return null; + } + + public Student findStudent(String username){ + for(Student s : students){ + if(s.getUsername().equals(username)){ + return s; + } + } + return null; + } // ========== Teacher Management ========== public boolean registerTeacher(String username, String password) { @@ -44,12 +67,21 @@ public class SchoolSystem { // ========== Course Management ========== public boolean addCourseToSystem(String courseName) { - //TODO + for(Course c : allCourses){ + if(c.getName().equals(courseName)){ + return false; + } + } + allCourses.add(new Course(courseName)); return true; } public Course findCourseById(int id) { - //TODO + for(Course c : allCourses){ + if(c.getId() == id){ + return c; + } + } return null; } -- 2.54.0