From 24d671f7656b385278974a15816e050b17ebfcad Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 25 Sep 2023 19:00:21 +0300 Subject: [PATCH] Implemented UI, fixed serialization inconsistency --- .../main/java/org/lumijiez/base/Faculty.java | 56 ++++++++++ .../main/java/org/lumijiez/base/Grade.java | 12 ++- .../main/java/org/lumijiez/base/Group.java | 27 ++++- .../main/java/org/lumijiez/base/Student.java | 61 ++++++++++- .../org/lumijiez/data/DataDeserializer.java | 8 +- .../org/lumijiez/data/DataSerializer.java | 4 +- .../java/org/lumijiez/enums/StudyField.java | 26 +++++ .../lumijiez/gui/StudentManagementGUI.java | 7 +- .../org/lumijiez/gui/forms/AddGradeForm.java | 6 +- .../lumijiez/gui/forms/AddStudentForm.java | 6 +- .../lumijiez/gui/forms/ChangeGroupForm.java | 6 +- .../lumijiez/gui/forms/DeleteStudentForm.java | 22 ++-- .../lumijiez/gui/forms/ShowGradesForm.java | 6 +- .../org/lumijiez/managers/FacultyManager.java | 45 ++++++++ .../org/lumijiez/managers/GroupManager.java | 35 ++++-- .../java/org/lumijiez/managers/Manager.java | 102 ------------------ .../org/lumijiez/managers/Supervisor.java | 50 +++++++++ .../org/lumijiez/util/FullStudentData.java | 36 +++++++ .../{base => util}/NameSurnameGroup.java | 3 +- 19 files changed, 365 insertions(+), 153 deletions(-) create mode 100644 Lab2/src/main/java/org/lumijiez/base/Faculty.java create mode 100644 Lab2/src/main/java/org/lumijiez/enums/StudyField.java create mode 100644 Lab2/src/main/java/org/lumijiez/managers/FacultyManager.java delete mode 100644 Lab2/src/main/java/org/lumijiez/managers/Manager.java create mode 100644 Lab2/src/main/java/org/lumijiez/managers/Supervisor.java create mode 100644 Lab2/src/main/java/org/lumijiez/util/FullStudentData.java rename Lab2/src/main/java/org/lumijiez/{base => util}/NameSurnameGroup.java (83%) diff --git a/Lab2/src/main/java/org/lumijiez/base/Faculty.java b/Lab2/src/main/java/org/lumijiez/base/Faculty.java new file mode 100644 index 0000000..c5729e1 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/base/Faculty.java @@ -0,0 +1,56 @@ +package org.lumijiez.base; + +import org.lumijiez.enums.StudyField; + +import java.util.List; + +public class Faculty { + + public Faculty(String name, String abbreviation, StudyField field) { + this.name = name; + this.abbreviation = abbreviation; + this.field = field; + } + + private String name; + private String abbreviation; + private List groups; + private StudyField field; + + public void addGroup(Group group) { + groups.add(group); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAbbreviation() { + return abbreviation; + } + + public void setAbbreviation(String abbreviation) { + this.abbreviation = abbreviation; + } + + public List getGroups() { + return groups; + } + + public void setGroups(List groups) { + this.groups = groups; + } + + public StudyField getField() { + return field; + } + + public void setField(StudyField field) { + this.field = field; + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/base/Grade.java b/Lab2/src/main/java/org/lumijiez/base/Grade.java index e051c32..9c3e7af 100644 --- a/Lab2/src/main/java/org/lumijiez/base/Grade.java +++ b/Lab2/src/main/java/org/lumijiez/base/Grade.java @@ -3,8 +3,16 @@ package org.lumijiez.base; import java.io.Serializable; public class Grade implements Serializable { - private final String subject; - private final int grade; + private String subject; + private int grade; + + public void setSubject(String subject) { + this.subject = subject; + } + + public void setGrade(int grade) { + this.grade = grade; + } public Grade(String subject, int grade) { this.subject = subject; diff --git a/Lab2/src/main/java/org/lumijiez/base/Group.java b/Lab2/src/main/java/org/lumijiez/base/Group.java index ea1d5e1..4886743 100644 --- a/Lab2/src/main/java/org/lumijiez/base/Group.java +++ b/Lab2/src/main/java/org/lumijiez/base/Group.java @@ -5,8 +5,27 @@ import java.util.ArrayList; import java.util.List; public class Group implements Serializable { - private final String name; - private final List students = new ArrayList<>(); + private String name; + + private Faculty faculty; + + public void setName(String name) { + this.name = name; + } + + public Faculty getFaculty() { + return faculty; + } + + public void setFaculty(Faculty faculty) { + this.faculty = faculty; + } + + public void setStudents(List students) { + this.students = students; + } + + private List students = new ArrayList<>(); public Group(String name) { this.name = name; @@ -19,6 +38,7 @@ public class Group implements Serializable { public void addStudent(Student st) { students.add(st); } + public void deleteStudent(Student st) { students.remove(st); } @@ -28,11 +48,10 @@ public class Group implements Serializable { } public Student getStudent(String name, String surname) { - for (Student student : students) { + for (Student student : students) if (student.getName().equals(name) && student.getSurname().equals(surname)) { return student; } - } return null; } } diff --git a/Lab2/src/main/java/org/lumijiez/base/Student.java b/Lab2/src/main/java/org/lumijiez/base/Student.java index 62eaa51..af8c178 100644 --- a/Lab2/src/main/java/org/lumijiez/base/Student.java +++ b/Lab2/src/main/java/org/lumijiez/base/Student.java @@ -2,13 +2,31 @@ package org.lumijiez.base; import java.io.Serializable; import java.util.ArrayList; +import java.util.Date; import java.util.List; public class Student implements Serializable { - private final String name; - private final String surname; - private final String fullname; + private String name; + private String surname; + private String fullname; + private String email; + private Date enrollmentDate; + + private Date dateOfBirth; + + // Student stores a reference to its own Group and Faculty, bidirectional association private Group group; + + public Faculty getFaculty() { + return faculty; + } + + public void setFaculty(Faculty faculty) { + this.faculty = faculty; + } + + private Faculty faculty; + private final List grades = new ArrayList<>(); public Student(String name, String surname, Group group) { @@ -31,6 +49,7 @@ public class Student implements Serializable { public void addGrade(Grade grade) { grades.add(grade); } + public String getName() { return name; } @@ -43,8 +62,44 @@ public class Student implements Serializable { return fullname; } + public String getEmail() { + return email; + } + + public Date getEnrollmentDate() { + return enrollmentDate; + } + + public Date getDateOfBirth() { + return dateOfBirth; + } + public Group getGroup() { return group; } + public void setName(String name) { + this.name = name; + } + + public void setSurname(String surname) { + this.surname = surname; + } + + public void setFullname(String fullname) { + this.fullname = fullname; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setEnrollmentDate(Date enrollmentDate) { + this.enrollmentDate = enrollmentDate; + } + + public void setDateOfBirth(Date dateOfBirth) { + this.dateOfBirth = dateOfBirth; + } + } diff --git a/Lab2/src/main/java/org/lumijiez/data/DataDeserializer.java b/Lab2/src/main/java/org/lumijiez/data/DataDeserializer.java index cc4d31d..43f76cf 100644 --- a/Lab2/src/main/java/org/lumijiez/data/DataDeserializer.java +++ b/Lab2/src/main/java/org/lumijiez/data/DataDeserializer.java @@ -1,6 +1,6 @@ package org.lumijiez.data; -import org.lumijiez.managers.Manager; +import org.lumijiez.managers.Supervisor; import java.io.File; import java.io.FileInputStream; @@ -8,12 +8,12 @@ import java.io.IOException; import java.io.ObjectInputStream; public class DataDeserializer { - public static Manager deserialize() { + public static Supervisor deserialize() { File serializedFile = new File("manager.ser"); - Manager manager = new Manager(); + Supervisor manager = new Supervisor(); if (serializedFile.exists()) { try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(serializedFile))) { - manager = (Manager) ois.readObject(); + manager = (Supervisor) ois.readObject(); System.out.println("Manager object deserialized successfully."); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); diff --git a/Lab2/src/main/java/org/lumijiez/data/DataSerializer.java b/Lab2/src/main/java/org/lumijiez/data/DataSerializer.java index 51c77c9..fcec680 100644 --- a/Lab2/src/main/java/org/lumijiez/data/DataSerializer.java +++ b/Lab2/src/main/java/org/lumijiez/data/DataSerializer.java @@ -1,6 +1,6 @@ package org.lumijiez.data; -import org.lumijiez.managers.Manager; +import org.lumijiez.managers.Supervisor; import java.io.FileOutputStream; import java.io.IOException; @@ -8,7 +8,7 @@ import java.io.ObjectOutputStream; public class DataSerializer { - public static void serialize(Manager manager) { + public static void serialize(Supervisor manager) { try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("manager.ser"))) { oos.writeObject(manager); System.out.println("Manager object serialized successfully."); diff --git a/Lab2/src/main/java/org/lumijiez/enums/StudyField.java b/Lab2/src/main/java/org/lumijiez/enums/StudyField.java new file mode 100644 index 0000000..249953a --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/enums/StudyField.java @@ -0,0 +1,26 @@ +package org.lumijiez.enums; + +public enum StudyField { + MECHANICAL_ENGINEERING("Mechanical Engineering", "ME"), + SOFTWARE_ENGINEERING("Software Engineering", "FAF"), + FOOD_TECHNOLOGY("Food Technology", "FT"), + URBANISM_ARCHITECTURE("Urbanism and Architecture", "UA"), + VETERINARY_MEDICINE("Veterinary Medicine", "VE"); + + private final String name; + + private final String abbreviation; + + StudyField(String name, String abbreviation) { + this.name = name; + this.abbreviation = abbreviation; + } + + public String getName() { + return name; + } + + public String getAbbreviation() { + return abbreviation; + } +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java b/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java index 13c6c32..89b8870 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java +++ b/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java @@ -3,12 +3,13 @@ package org.lumijiez.gui; import org.lumijiez.data.DataDeserializer; import org.lumijiez.data.DataSerializer; import org.lumijiez.gui.forms.*; -import org.lumijiez.managers.Manager; +import org.lumijiez.managers.Supervisor; import javax.swing.*; import java.awt.*; -public class StudentManagementGUI{ - private final Manager studentManager; + +public class StudentManagementGUI { + private final Supervisor studentManager; private final JFrame frame; private final JTextArea outputTextArea; diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/AddGradeForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/AddGradeForm.java index 42f7f2c..8576e6e 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/AddGradeForm.java +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/AddGradeForm.java @@ -1,14 +1,14 @@ package org.lumijiez.gui.forms; import org.lumijiez.base.Grade; -import org.lumijiez.base.NameSurnameGroup; -import org.lumijiez.managers.Manager; +import org.lumijiez.util.NameSurnameGroup; +import org.lumijiez.managers.Supervisor; import javax.swing.*; import java.awt.*; public class AddGradeForm extends JFrame { - public AddGradeForm(int centerX, int centerY, Manager studentManager, JTextArea outputTextArea) { + public AddGradeForm(int centerX, int centerY, Supervisor studentManager, JTextArea outputTextArea) { this.setTitle("Add Grade"); this.setSize(400, 300); this.setLocation(centerX, centerY); diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/AddStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/AddStudentForm.java index 7afeb2c..cba2554 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/AddStudentForm.java +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/AddStudentForm.java @@ -1,13 +1,13 @@ package org.lumijiez.gui.forms; -import org.lumijiez.base.NameSurnameGroup; -import org.lumijiez.managers.Manager; +import org.lumijiez.util.NameSurnameGroup; +import org.lumijiez.managers.Supervisor; import javax.swing.*; import java.awt.*; public class AddStudentForm extends JFrame { - public AddStudentForm(int centerX, int centerY, Manager studentManager, JTextArea outputTextArea) { + public AddStudentForm(int centerX, int centerY, Supervisor studentManager, JTextArea outputTextArea) { this.setTitle("Add Student"); this.setSize(400, 300); this.setLocation(centerX, centerY); diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/ChangeGroupForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/ChangeGroupForm.java index 35eef59..add943c 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/ChangeGroupForm.java +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/ChangeGroupForm.java @@ -1,13 +1,13 @@ package org.lumijiez.gui.forms; -import org.lumijiez.base.NameSurnameGroup; -import org.lumijiez.managers.Manager; +import org.lumijiez.util.NameSurnameGroup; +import org.lumijiez.managers.Supervisor; import javax.swing.*; import java.awt.*; public class ChangeGroupForm extends JFrame { - public ChangeGroupForm(int centerX, int centerY, Manager studentManager, JTextArea outputTextArea) { + public ChangeGroupForm(int centerX, int centerY, Supervisor studentManager, JTextArea outputTextArea) { this.setTitle("Change Group"); this.setSize(400, 300); this.setLocation(centerX, centerY); diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/DeleteStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/DeleteStudentForm.java index fd705c4..7646acb 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/DeleteStudentForm.java +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/DeleteStudentForm.java @@ -1,13 +1,13 @@ package org.lumijiez.gui.forms; -import org.lumijiez.base.NameSurnameGroup; -import org.lumijiez.managers.Manager; +import org.lumijiez.util.NameSurnameGroup; +import org.lumijiez.managers.Supervisor; import javax.swing.*; import java.awt.*; public class DeleteStudentForm extends JFrame { - public DeleteStudentForm(int centerX, int centerY, Manager studentManager, JTextArea outputTextArea) { + public DeleteStudentForm(int centerX, int centerY, Supervisor studentManager, JTextArea outputTextArea) { this.setTitle("Delete Student"); this.setSize(400, 300); this.setLocation(centerX, centerY); @@ -33,14 +33,14 @@ public class DeleteStudentForm extends JFrame { this.add(formPanel); submitButton.addActionListener(e -> { - String name = nameField.getText(); - String surname = surnameField.getText(); - String group = groupField.getText(); - if (!name.isEmpty() && !surname.isEmpty() && !group.isEmpty()) { - studentManager.removeStudent(new NameSurnameGroup(name, surname, group)); - outputTextArea.setText("===== Students =====\n" + studentManager.getStudentsText()); - this.dispose(); - } else JOptionPane.showMessageDialog(this, "Please fill in all fields."); + String name = nameField.getText(); + String surname = surnameField.getText(); + String group = groupField.getText(); + if (!name.isEmpty() && !surname.isEmpty() && !group.isEmpty()) { + studentManager.removeStudent(new NameSurnameGroup(name, surname, group)); + outputTextArea.setText("===== Students =====\n" + studentManager.getStudentsText()); + this.dispose(); + } else JOptionPane.showMessageDialog(this, "Please fill in all fields."); }); this.setVisible(true); } diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/ShowGradesForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/ShowGradesForm.java index 3e9ec29..c0fded9 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/ShowGradesForm.java +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/ShowGradesForm.java @@ -1,13 +1,13 @@ package org.lumijiez.gui.forms; -import org.lumijiez.base.NameSurnameGroup; -import org.lumijiez.managers.Manager; +import org.lumijiez.util.NameSurnameGroup; +import org.lumijiez.managers.Supervisor; import javax.swing.*; import java.awt.*; public class ShowGradesForm extends JFrame { - public ShowGradesForm(int centerX, int centerY, Manager studentManager, JTextArea outputTextArea) { + public ShowGradesForm(int centerX, int centerY, Supervisor studentManager, JTextArea outputTextArea) { this.setTitle("Show Grades Student"); this.setSize(400, 300); this.setLocation(centerX, centerY); diff --git a/Lab2/src/main/java/org/lumijiez/managers/FacultyManager.java b/Lab2/src/main/java/org/lumijiez/managers/FacultyManager.java new file mode 100644 index 0000000..e7d642d --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/managers/FacultyManager.java @@ -0,0 +1,45 @@ +package org.lumijiez.managers; + +import org.lumijiez.base.Faculty; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class FacultyManager implements Serializable { + + public FacultyManager(GroupManager gm, StudentManager sm) { + this.gm = new GroupManager(sm); + this.sm = sm; + } + private final GroupManager gm; + private final StudentManager sm; + private final List faculties = new ArrayList<>(); + + public Faculty getFaculty(String facultyName, GroupManager gm) { + for (Faculty fc : faculties) + if (fc.getName().equals(facultyName)) return fc; + return null; + } + + public void addFaculty(Faculty faculty) { + faculties.add(faculty); + } + + public void deleteFaculty(Faculty faculty) { + faculties.remove(faculty); + } + + public List getFaculties() { + return faculties; + } + + public String getFacultiesText() { + StringBuilder builder = new StringBuilder(); + for (Faculty fc : faculties) + builder.append(fc.getName()).append("\n"); + return builder.toString(); + } + + +} diff --git a/Lab2/src/main/java/org/lumijiez/managers/GroupManager.java b/Lab2/src/main/java/org/lumijiez/managers/GroupManager.java index dc4eb9d..6d1be48 100644 --- a/Lab2/src/main/java/org/lumijiez/managers/GroupManager.java +++ b/Lab2/src/main/java/org/lumijiez/managers/GroupManager.java @@ -7,26 +7,43 @@ import java.util.ArrayList; import java.util.List; public class GroupManager implements Serializable { + + public GroupManager(StudentManager sm) { + this.sm = sm; + } + + private final StudentManager sm; private final List groups = new ArrayList<>(); public Group getGroup(String groupName) { for (Group group : groups) if (group.getName().equals(groupName)) return group; - Group newGroup = new Group(groupName); - groups.add(newGroup); - return newGroup; + return null; } -// public void addGroup(Group group) { -// groups.add(group); -// } + public void addGroup(Group group) { + groups.add(group); + } + + public void deleteGroup(Group group) { + groups.remove(group); + } public List getGroups() { return groups; } -// public void deleteGroup(Group group) { -// groups.remove(group); -// } + public String getGroupsText() { + StringBuilder builder = new StringBuilder(); + for (Group gr : groups) + builder.append(gr.getName()).append("\n"); + return builder.toString(); + } + public Group findGroup(String name) { + for (Group gr : groups) { + if (gr.getName().equals(name)) return gr; + } + return null; + } } diff --git a/Lab2/src/main/java/org/lumijiez/managers/Manager.java b/Lab2/src/main/java/org/lumijiez/managers/Manager.java deleted file mode 100644 index c52f837..0000000 --- a/Lab2/src/main/java/org/lumijiez/managers/Manager.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.lumijiez.managers; - -import org.lumijiez.base.Grade; -import org.lumijiez.base.Group; -import org.lumijiez.base.NameSurnameGroup; -import org.lumijiez.base.Student; - -import java.io.Serializable; - -public class Manager implements Serializable { - private final GroupManager groupManager; - - public Manager() { - this.groupManager = new GroupManager(); - } - - public String getStudentsText() { - StringBuilder info = new StringBuilder(); - for (Group group : groupManager.getGroups()) { - for (Student student : group.getStudents()) { - info.append(student.getFullname()).append(" ").append(student.getGroup().getName()).append("\n"); - } - } - return info.toString(); - } - - public String getGradesText(NameSurnameGroup NSG) { - StringBuilder info = new StringBuilder(); - for (Grade grade : groupManager.getGroup(NSG.group()).getStudent(NSG.name(), NSG.surname()).getGrades()) { - info.append(grade.getSubject()).append(" ").append(grade.getGrade()); - } - return info.toString(); - } - - public String getGroupsText() { - StringBuilder info = new StringBuilder(); - for (Group group : groupManager.getGroups()) { - info.append(group.getName()).append("\n"); - } - return info.toString(); - } - -// public Student getStudent(NameSurnameGroup NSG) { -// return groupManager.getGroup(NSG.group()).getStudent(NSG.name(), NSG.surname()); -// } - - public void changeGroup(NameSurnameGroup NSG, String groupName) { - Group gr = groupManager.getGroup(groupName); - groupManager.getGroup(groupName).getStudent(NSG.name(), NSG.surname()).setGroup(gr); - } - -// public void addGroup(String groupName) { -// groupManager.addGroup(new Group(groupName)); -// } - -// public void removeGroup(String groupName) { -// groupManager.deleteGroup(groupManager.getGroup(groupName)); -// } - -// public GroupManager getGroupManager() { -// return groupManager; -// } - - public void addStudent(NameSurnameGroup NSG) { - Group currentGroup = groupManager.getGroup(NSG.group()); - currentGroup.addStudent(new Student(NSG.name(), NSG.surname(), currentGroup)); - } - -// public void printStudents() { -// for (Group group : groupManager.getGroups()) { -// for (Student student : group.getStudents()) { -// System.out.println(student.getFullname() + " " + student.getGroup().getName()); -// } -// } -// } - -// public void printGroups() { -// for (Group group : groupManager.getGroups()) { -// System.out.println(group.getName()); -// } -// } - -// public void printGrades(NameSurnameGroup NSG) { -// Student student = groupManager.getGroup(NSG.group()).getStudent(NSG.name(), NSG.surname()); -// for (Grade grade : student.getGrades()) { -// System.out.println(grade.getSubject() + " " + grade.getGrade()); -// } -// } - - public void addGrade(NameSurnameGroup NSG, Grade grade) { - Student student = groupManager.getGroup(NSG.group()).getStudent(NSG.name(), NSG.surname()); - student.addGrade(grade); - } - - public void removeStudent(NameSurnameGroup NSG) { - Student student = groupManager.getGroup(NSG.group()).getStudent(NSG.name(), NSG.surname()); - groupManager.getGroup(NSG.group()).deleteStudent(student); - if (student.getGroup().getStudents().isEmpty()) { - groupManager.getGroups().remove(student.getGroup()); - } - } -} diff --git a/Lab2/src/main/java/org/lumijiez/managers/Supervisor.java b/Lab2/src/main/java/org/lumijiez/managers/Supervisor.java new file mode 100644 index 0000000..58301c2 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/managers/Supervisor.java @@ -0,0 +1,50 @@ +package org.lumijiez.managers; + +import org.lumijiez.base.Grade; +import org.lumijiez.base.Group; +import org.lumijiez.util.NameSurnameGroup; +import org.lumijiez.base.Student; + +import java.io.Serializable; + +public class Supervisor implements Serializable { + private final FacultyManager fm; + + public Supervisor() { + this.groupManager = new FacultyManager(); + } + + public String getStudentsText() { + StringBuilder info = new StringBuilder(); + for (Group group : groupManager.getGroups()) { + for (Student student : group.getStudents()) { + info.append(student.getFullname()).append(" ").append(student.getGroup().getName()).append("\n"); + } + } + return info.toString(); + } + + public String getGradesText(NameSurnameGroup NSG) { + StringBuilder info = new StringBuilder(); + for (Grade grade : groupManager.getGroup(NSG.group()).getStudent(NSG.name(), NSG.surname()).getGrades()) { + info.append(grade.getSubject()).append(" ").append(grade.getGrade()); + } + return info.toString(); + } + + public void changeGroup(NameSurnameGroup NSG, String groupName) { + Group gr = groupManager.findGroup(groupName); + groupManager.getGroup(groupName).getStudent(NSG.name(), NSG.surname()).setGroup(gr); + } + + public void addStudent(NameSurnameGroup NSG) { + Group currentGroup = groupManager.getGroup(NSG.group()); + currentGroup.addStudent(new Student(NSG.name(), NSG.surname(), currentGroup)); + } + + public void addGrade(NameSurnameGroup NSG, Grade grade) { + Student student = groupManager.getGroup(NSG.group()).getStudent(NSG.name(), NSG.surname()); + student.addGrade(grade); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/util/FullStudentData.java b/Lab2/src/main/java/org/lumijiez/util/FullStudentData.java new file mode 100644 index 0000000..5b2fb8f --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/util/FullStudentData.java @@ -0,0 +1,36 @@ +package org.lumijiez.util; + + +import org.lumijiez.base.Faculty;package org.lumijiez.util; + +// Helper class for easier management of names, surnames, and groups +public class FullStudentData { + private final String name; + private final String surname; + private final String groupName; + + private final String facultyName; + + public FullStudentData(String name, String surname, String groupName, String facultyName) { + this.name = name; + this.surname = surname; + this.groupName = groupName; + this.facultyName = facultyName; + } + + public String name() { + return name; + } + + public String surname() { + return surname; + } + + public String group() { + return groupName; + } + + public String faculty() { + return facultyName; + } +} diff --git a/Lab2/src/main/java/org/lumijiez/base/NameSurnameGroup.java b/Lab2/src/main/java/org/lumijiez/util/NameSurnameGroup.java similarity index 83% rename from Lab2/src/main/java/org/lumijiez/base/NameSurnameGroup.java rename to Lab2/src/main/java/org/lumijiez/util/NameSurnameGroup.java index c8e237a..d61706c 100644 --- a/Lab2/src/main/java/org/lumijiez/base/NameSurnameGroup.java +++ b/Lab2/src/main/java/org/lumijiez/util/NameSurnameGroup.java @@ -1,5 +1,6 @@ -package org.lumijiez.base; +package org.lumijiez.util; +// Helper class for easier management of names, surnames, and groups public class NameSurnameGroup { private final String name; private final String surname;