Files
WS-04-oop-review/src/main/java/services/SchoolSystem.java
T

106 lines
3.0 KiB
Java

package services;
import models.*;
import java.util.ArrayList;
import java.util.List;
public class SchoolSystem {
private List<Student> students;
private List<Teacher> teachers;
private List<Course> allCourses;
public SchoolSystem() {
this.students = new ArrayList<>();
this.teachers = new ArrayList<>();
this.allCourses = new ArrayList<>();
}
// ========== Student Management ==========
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;
}
private 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) {
if (findTeacher(username) != null) {
return false;
}
teachers.add(new Teacher(username, password));
return true;
}
public Teacher loginTeacher(String username, String password) {
Teacher teacher = findTeacher(username);
if (teacher != null && teacher.checkPassword(password)) {
return teacher;
}
return null;
}
private Teacher findTeacher(String username) {
for (Teacher t : teachers) {
if (t.getUsername().equals(username)) return t;
}
return null;
}
// ========== Course Management ==========
public boolean addCourseToSystem(String courseName) {
for (Course c : allCourses) {
if (c.getName().equals(courseName)) {
return false;
}
}
allCourses.add(new Course(courseName));
return true;
}
public Course findCourseById(int id) {
for (Course c : allCourses) {
if (c.getId() == id) return c;
}
return null;
}
public Course findCourseByName(String name) {
for (Course c : allCourses) {
if (c.getName().equalsIgnoreCase(name)) return c;
}
return null;
}
public String getAllCoursesDisplay() {
if (allCourses.isEmpty()) {
return " No courses available yet.";
} else {
StringBuilder sb = new StringBuilder("\n All Available Courses:\n");
for (int i = 0; i < allCourses.size(); i++) {
sb.append(" ").append(i+1).append(". ").append(allCourses.get(i)).append("\n");
}
return sb.toString();
}
}
public List<Course> getAllCourses() {
return allCourses;
}
}