diff --git a/src/main/java/task_3/EmptyCoursesException.java b/src/main/java/task_3/EmptyCoursesException.java new file mode 100644 index 0000000..f212882 --- /dev/null +++ b/src/main/java/task_3/EmptyCoursesException.java @@ -0,0 +1,7 @@ +package task_3; + +public class EmptyCoursesException extends RuntimeException{ + public EmptyCoursesException(String message) { + super(message); + } +} diff --git a/src/main/java/task_3/SimpsonsCharacter.java b/src/main/java/task_3/SimpsonsCharacter.java new file mode 100644 index 0000000..03d41d3 --- /dev/null +++ b/src/main/java/task_3/SimpsonsCharacter.java @@ -0,0 +1,62 @@ +package task_3; + + +import java.util.List; +public class SimpsonsCharacter { + private String name; + private int age; + private int characterId; + private List enrolledCourses; + private List grades; + + public SimpsonsCharacter(String name, int age, int characterId, List enrolledCourses, List grades) { + setName(name); + setAge(age); + setCharacterId(characterId); + setEnrolledCourses(enrolledCourses); + setGrades(grades); + } + + public SimpsonsCharacter() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public int getCharacterId() { + return characterId; + } + + public void setCharacterId(int characterId) { + this.characterId = characterId; + } + + public List getEnrolledCourses() { + return enrolledCourses; + } + + public void setEnrolledCourses(List enrolledCourses) { + this.enrolledCourses = enrolledCourses; + } + + public List getGrades() { + return grades; + } + + public void setGrades(List grades) { + this.grades = grades; + } +} diff --git a/src/main/java/task_3/SimpsonsCourse.java b/src/main/java/task_3/SimpsonsCourse.java new file mode 100644 index 0000000..75555b2 --- /dev/null +++ b/src/main/java/task_3/SimpsonsCourse.java @@ -0,0 +1,29 @@ +package task_3; +public class SimpsonsCourse { + private String courseName; + private int courseId; + + public SimpsonsCourse() { + } + + public SimpsonsCourse(String courseName, int courseId) { + setCourseName(courseName); + setCourseId(courseId); + } + + public String getCourseName() { + return courseName; + } + + public void setCourseName(String courseName) { + this.courseName = courseName; + } + + public int getCourseId() { + return courseId; + } + + public void setCourseId(int courseId) { + this.courseId = courseId; + } +} diff --git a/src/main/java/task_3/SimpsonsGrade.java b/src/main/java/task_3/SimpsonsGrade.java new file mode 100644 index 0000000..a2511ec --- /dev/null +++ b/src/main/java/task_3/SimpsonsGrade.java @@ -0,0 +1,45 @@ +package task_3; + +public class SimpsonsGrade { + private SimpsonsCourse course; + private SimpsonsCharacter character; + private int gradeValue; + private final int MINIMAL_BAL = 0; + private final int MAXIMUM_BAL = 5; + + public SimpsonsGrade() { + } + + public SimpsonsGrade(SimpsonsCourse course, SimpsonsCharacter character, int gradeValue) { + setCourse(course); + setCharacter(character); + setGradeValue(gradeValue); + } + + public SimpsonsCourse getCourse() { + return course; + } + + public void setCourse(SimpsonsCourse course) { + this.course = course; + } + + public SimpsonsCharacter getCharacter() { + return character; + } + + public void setCharacter(SimpsonsCharacter character) { + this.character = character; + } + + public int getGradeValue() { + return gradeValue; + } + + public void setGradeValue(int gradeValue) { + if (gradeValue <= MINIMAL_BAL || gradeValue > MAXIMUM_BAL) { + throw new IllegalArgumentException("Введена оценка " + gradeValue + ". Оценка должна быть от 1 до 5"); + } + this.gradeValue = gradeValue; + } +} diff --git a/src/main/java/task_3/SimpsonsSchool.java b/src/main/java/task_3/SimpsonsSchool.java new file mode 100644 index 0000000..c5cf37c --- /dev/null +++ b/src/main/java/task_3/SimpsonsSchool.java @@ -0,0 +1,66 @@ +package task_3; + +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Slf4j +public class SimpsonsSchool { + private List characterList = new ArrayList<>(); + private List courseList = new ArrayList<>(); + + public static void main(String[] args) { + SimpsonsSchool school = new SimpsonsSchool(); + school.characterList.add(new SimpsonsCharacter("Ivan", 25, 1, new ArrayList<>(), new ArrayList<>())); + school.characterList.add(new SimpsonsCharacter("Petr", 24, 1, new ArrayList<>(), new ArrayList<>())); + school.characterList.add(new SimpsonsCharacter("Alexandr", 26, 1, new ArrayList<>(), new ArrayList<>())); + school.courseList.add(new SimpsonsCourse("Math", 1)); + school.courseList.add(new SimpsonsCourse("Science", 2)); + school.courseList.add(new SimpsonsCourse("Music", 3)); + school.courseList.add(new SimpsonsCourse("History", 4)); + for (SimpsonsCharacter character : school.characterList) { + school.enrollCharacter(character, school.courseList); + } + + school.addGrade(school.characterList.get(1), school.courseList.get(0), 4); + school.addGrade(school.characterList.get(1), school.courseList.get(1), 3); + school.addGrade(school.characterList.get(1), school.courseList.get(2), 6); + school.addGrade(school.characterList.get(1), school.courseList.get(3), 1); + try { + school.getCharacterTranscript(school.characterList.get(1)); + } catch (EmptyCoursesException e) { + log.info(e.getStackTrace()); + } + + + } + + public void enrollCharacter(SimpsonsCharacter character, List courses) { + character.setEnrolledCourses(courses); + } + + public void addGrade(SimpsonsCharacter character, SimpsonsCourse course, int gradeValue) { + try { + character.getGrades().add(new SimpsonsGrade(course, character, gradeValue)); + } catch (IllegalArgumentException e) { + log.info(e.getStackTrace()); + } + } + + public void getCharacterTranscript(SimpsonsCharacter character) throws EmptyCoursesException { + if (character.getEnrolledCourses().isEmpty()) { + throw new EmptyCoursesException("Список курсов у " + character.getName() + " пуст"); + } + System.out.println(character.getName() + " записан на предметы:"); + for (SimpsonsGrade simpsonsGrade : character.getGrades()) { + if (simpsonsGrade.getCharacter().equals(character)) { + System.out.print(simpsonsGrade.getCourse().getCourseName() + " - "); + System.out.print("Оценка - " + simpsonsGrade.getGradeValue() + ";"); + System.out.println(); + } + } + + } +}