From d88bf24abd71e33fe4e35adead241077115a4b70 Mon Sep 17 00:00:00 2001
From: Random2142Max <104144843+Random2142Max@users.noreply.github.com>
Date: Thu, 1 Dec 2022 16:17:07 +0500
Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?=
=?UTF-8?q?=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D0=B8=20=D0=B4=D0=B0=D0=BD?=
=?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D0=BD=D0=B0=20=D0=BE=D1=81=D0=BD=D0=BE?=
=?UTF-8?q?=D0=B2=D0=B5=20=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BE=D1=81=D1=82?=
=?UTF-8?q?=D0=B8=20+=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B8=D0=BB?=
=?UTF-8?q?=20=D0=B4=D0=B8=D0=B0=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D1=83=20?=
=?UTF-8?q?=D0=B2=20=D0=B2=D0=B8=D0=B4=D0=B5=20=D0=BA=D0=B0=D1=80=D1=82?=
=?UTF-8?q?=D0=B8=D0=BD=D0=BA=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/gradle.xml | 1 +
.idea/workspace.xml | 53 +-
ImageDiagrams/Sc_1.png | Bin 0 -> 56517 bytes
basicprogramming_2.csv | 977 ++++++++++++++++++
src/main/java/org/example/Main.java | 4 +-
src/main/java/org/example/Models/Chapter.java | 15 +
src/main/java/org/example/Models/Course.java | 19 +
src/main/java/org/example/Models/Student.java | 16 +
src/main/java/org/example/Models/Task.java | 16 +
.../java/org/example/Models/TypeTask.java | 11 +
10 files changed, 1103 insertions(+), 9 deletions(-)
create mode 100644 ImageDiagrams/Sc_1.png
create mode 100644 basicprogramming_2.csv
create mode 100644 src/main/java/org/example/Models/Chapter.java
create mode 100644 src/main/java/org/example/Models/Course.java
create mode 100644 src/main/java/org/example/Models/Student.java
create mode 100644 src/main/java/org/example/Models/Task.java
create mode 100644 src/main/java/org/example/Models/TypeTask.java
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index ba1ec5c..611e7c8 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -1,5 +1,6 @@
+
-
+
+
+
+
+
+
+
@@ -15,19 +21,45 @@
+
+
+
+
+
+
+
+
+
-
+
+
+
- {
+ "keyToString": {
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "WebServerToolWindowFactoryState": "false",
+ "last_opened_file_path": "D:/Bandik/Java Study/AnalyticsProject",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)"
}
-}]]>
+}
+
+
+
+
+
+
+
+
@@ -36,9 +68,14 @@
1669892899673
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
@@ -21,6 +33,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {
- "keyToString": {
- "RunOnceActivity.OpenProjectViewOnStart": "true",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "WebServerToolWindowFactoryState": "false",
- "last_opened_file_path": "D:/Bandik/Java Study/AnalyticsProject",
- "node.js.detected.package.eslint": "true",
- "node.js.detected.package.tslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.tslint": "(autodetect)"
+
+}]]>
+
@@ -69,8 +106,16 @@
1669892899673
-
+
+
+
+ 1669893427964
+
+
+
+ 1669893427964
+
@@ -87,4 +132,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/Chapter.java b/src/main/java/ExampleDBModels/Chapter.java
similarity index 91%
rename from src/main/java/org/example/Models/Chapter.java
rename to src/main/java/ExampleDBModels/Chapter.java
index 2ab9132..5b19bb4 100644
--- a/src/main/java/org/example/Models/Chapter.java
+++ b/src/main/java/ExampleDBModels/Chapter.java
@@ -1,7 +1,7 @@
-package org.example.Models;
+package ExampleDBModels;
import java.util.ArrayList;
-
+/*
public class Chapter {
public int Pk_Id;
public String Chapter;
@@ -12,4 +12,4 @@ public Chapter(String chapter, String collectionIdTasks) {
this.Chapter = chapter;
this.Fk_CollectionIdTasks = collectionIdTasks;
}
-}
\ No newline at end of file
+}*/
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/Course.java b/src/main/java/ExampleDBModels/Course.java
similarity index 94%
rename from src/main/java/org/example/Models/Course.java
rename to src/main/java/ExampleDBModels/Course.java
index 9a75ec3..f5a5ecc 100644
--- a/src/main/java/org/example/Models/Course.java
+++ b/src/main/java/ExampleDBModels/Course.java
@@ -1,5 +1,5 @@
-package org.example.Models;
-
+package ExampleDBModels;
+/*
import java.util.Dictionary;
public class Course {
@@ -17,3 +17,4 @@ public Course(String name, int score, int semester, String fk_CollectionsCourseI
this.Fk_CollectionsCourseId = fk_CollectionsCourseId;
}
}
+*/
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/Student.java b/src/main/java/ExampleDBModels/Student.java
similarity index 93%
rename from src/main/java/org/example/Models/Student.java
rename to src/main/java/ExampleDBModels/Student.java
index 4929ae6..a861924 100644
--- a/src/main/java/org/example/Models/Student.java
+++ b/src/main/java/ExampleDBModels/Student.java
@@ -1,5 +1,5 @@
-package org.example.Models;
-
+package ExampleDBModels;
+/*
public class Student {
public int Pk_Id;
public String FirstName;
@@ -14,3 +14,4 @@ public Student(String firstName, String lastname, String group, String id_course
this.Fk_id_course = Integer.parseUnsignedInt(id_course);
}
}
+*/
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/Task.java b/src/main/java/ExampleDBModels/Task.java
similarity index 92%
rename from src/main/java/org/example/Models/Task.java
rename to src/main/java/ExampleDBModels/Task.java
index a9805ef..381fce7 100644
--- a/src/main/java/org/example/Models/Task.java
+++ b/src/main/java/ExampleDBModels/Task.java
@@ -1,5 +1,5 @@
-package org.example.Models;
-
+package ExampleDBModels;
+/*
public class Task {
public int Pk_Id;
public String Name;
@@ -14,3 +14,4 @@ public Task(String name, int maxValue, String Fk_id_typeTask) {
this.Fk_id_TypeTask = Integer.parseUnsignedInt(Fk_id_typeTask);
}
}
+*/
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/TypeTask.java b/src/main/java/ExampleDBModels/TypeTask.java
similarity index 82%
rename from src/main/java/org/example/Models/TypeTask.java
rename to src/main/java/ExampleDBModels/TypeTask.java
index 7ea845d..9448c87 100644
--- a/src/main/java/org/example/Models/TypeTask.java
+++ b/src/main/java/ExampleDBModels/TypeTask.java
@@ -1,5 +1,5 @@
-package org.example.Models;
-
+package ExampleDBModels;
+/*
public class TypeTask {
public int Pk_Id;
public String Name;
@@ -9,3 +9,4 @@ public TypeTask(String name) {
this.Name = name;
}
}
+*/
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/Courses/Chapter.java b/src/main/java/org/example/Models/Courses/Chapter.java
new file mode 100644
index 0000000..0e46d11
--- /dev/null
+++ b/src/main/java/org/example/Models/Courses/Chapter.java
@@ -0,0 +1,54 @@
+package org.example.Models.Courses;
+
+import java.util.Collection;
+import java.util.List;
+
+public class Chapter {
+ private Integer uid;
+ private String name;
+ private Collection taskCollection;
+ // Подумать, как реализовать MaxScores
+ private Integer activeMaxScore;
+ private Integer exerciseMaxScore;
+ private Integer homeworkMaxScore;
+ private Integer seminarMaxScore;
+
+ public Chapter(Integer uid, String name, List taskCollection) {
+ this.uid = uid;
+ this.name = name;
+ this.taskCollection = taskCollection;
+ }
+ public Chapter(Chapter chapter) {
+ this.uid = chapter.uid;
+ this.name = chapter.name;
+ this.taskCollection = chapter.taskCollection;
+ }
+
+ public Integer getUid() {
+ return this.uid;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public Collection getTaskCollection() {
+ return this.taskCollection;
+ }
+
+// public Integer getActiveMaxScore() {
+// return this.activeMaxScore;
+// }
+//
+// public Integer getExerciseMaxScore() {
+// return this.exerciseMaxScore;
+// }
+//
+// public Integer getHomeworkMaxScore() {
+// return this.homeworkMaxScore;
+// }
+//
+// public Integer getSeminarMaxScore() {
+// return this.seminarMaxScore;
+// }
+}
diff --git a/src/main/java/org/example/Models/Courses/Course.java b/src/main/java/org/example/Models/Courses/Course.java
new file mode 100644
index 0000000..89b0d14
--- /dev/null
+++ b/src/main/java/org/example/Models/Courses/Course.java
@@ -0,0 +1,58 @@
+package org.example.Models.Courses;
+
+import java.util.Collection;
+import java.util.List;
+
+public class Course {
+ private Integer uid;
+ private String name;
+ private Collection chapters;
+ // Подумать с MaxScores
+ private Integer activeMaxScore;
+ private Integer exerciseMaxScore;
+ private Integer homeworkMaxScore;
+ private Integer seminarMaxScore;
+ private Integer totalMaxScore;
+
+ public Course(Integer uid, String name, List chapters) {
+ this.uid = uid;
+ this.name = name;
+ this.chapters = chapters;
+ // Тут должен быть расчёт totalMaxScore
+ }
+ public Course(Course course) {
+ this.uid = course.uid;
+ this.name = course.name;
+ this.chapters = course.chapters;
+ // Тут должен быть расчёт totalMaxScore
+ }
+
+ public Integer getUid() {
+ return this.uid;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public Collection getChapters() {
+ return this.chapters;
+ }
+ public Integer getTotalMaxScore() {return this.totalMaxScore;}
+
+// public Integer getActiveMaxScore() {
+// return this.activeMaxScore;
+// }
+//
+// public Integer getExerciseMaxScore() {
+// return this.exerciseMaxScore;
+// }
+//
+// public Integer getHomeworkMaxScore() {
+// return this.homeworkMaxScore;
+// }
+//
+// public Integer getSeminarMaxScore() {
+// return this.seminarMaxScore;
+// }
+}
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/Courses/Task.java b/src/main/java/org/example/Models/Courses/Task.java
new file mode 100644
index 0000000..6427faf
--- /dev/null
+++ b/src/main/java/org/example/Models/Courses/Task.java
@@ -0,0 +1,42 @@
+package org.example.Models.Courses;
+
+public class Task {
+ private Integer uid;
+ private String name;
+ private TypeTaskEnum typeTask;
+ private Integer maxScore;
+
+ public Task(Integer uid, String name, TypeTaskEnum typeTask, Integer maxScore) {
+ this.uid = uid;
+ this.name = name;
+ this.typeTask = typeTask;
+ this.maxScore = maxScore;
+ }
+ public Task(Task task) {
+ this.uid = task.uid;
+ this.name = task.name;
+ this.typeTask = task.typeTask;
+ this.maxScore = task.maxScore;
+ }
+
+ public String toString() {
+ return String.format("%s — %s — %s", this.name, this.typeTask, this.maxScore);
+ }
+
+ public Integer getUid() {
+ return this.uid;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public TypeTaskEnum getTypeTask() {
+ return this.typeTask;
+ }
+
+ public Integer getMaxScore() {
+ return this.maxScore;
+ }
+}
+
diff --git a/src/main/java/org/example/Models/Courses/TypeTask.java b/src/main/java/org/example/Models/Courses/TypeTask.java
new file mode 100644
index 0000000..96e5a6c
--- /dev/null
+++ b/src/main/java/org/example/Models/Courses/TypeTask.java
@@ -0,0 +1,39 @@
+package org.example.Models.Courses;
+
+enum TypeTaskEnum {
+ ACTIVE,
+ EXERCISE,
+ HOMEWORK,
+ SEMINAR,
+ ADDITIONALLY
+}
+
+public class TypeTask {
+ private TypeTaskEnum typeTask;
+
+ public TypeTask(String typeTask) {
+ switch (typeTask.toUpperCase()) {
+ case "АКТ":
+ this.typeTask = TypeTaskEnum.ACTIVE;
+ break;
+ case "УПР":
+ this.typeTask = TypeTaskEnum.EXERCISE;
+ break;
+ case "ДЗ":
+ this.typeTask = TypeTaskEnum.HOMEWORK;
+ break;
+ case "СЕМ":
+ this.typeTask = TypeTaskEnum.SEMINAR;
+ break;
+ case "ДОП":
+ this.typeTask = TypeTaskEnum.ADDITIONALLY;
+ break;
+ default:
+ throw new IllegalArgumentException(String.format("В ведомости указан %s. Данный тип заданий отсутствует!", typeTask));
+ }
+ }
+
+ public TypeTaskEnum getTypeTask() {
+ return this.typeTask;
+ }
+}
diff --git a/src/main/java/org/example/Models/Persons/Person.java b/src/main/java/org/example/Models/Persons/Person.java
new file mode 100644
index 0000000..d379e0f
--- /dev/null
+++ b/src/main/java/org/example/Models/Persons/Person.java
@@ -0,0 +1,96 @@
+package org.example.Models.Persons;
+
+import java.time.LocalDate;
+import java.util.Arrays;
+
+enum Gender {
+ MALE,
+ FEMALE
+}
+
+public class Person {
+ private Integer uid;
+ private String fullName;
+ private String lastName;
+ private String firstName;
+ private Gender gender;
+ private String homeAddress;
+ private LocalDate birthDate;
+
+ public Person(String fullName) {
+ this.fullName = fullName;
+ String[] splitFullName = this.getLastFirstName(fullName).split("~");
+ this.lastName = splitFullName[0];
+ this.firstName = splitFullName[1];
+ }
+
+ public Person(Integer uid, String fullName, String gender, String homeAddress, String birthDate) {
+ this.uid = uid;
+ this.fullName = fullName;
+ String[] splitFullName = this.getLastFirstName(fullName).split("~");
+ this.lastName = splitFullName[0];
+ this.firstName = splitFullName[1];
+ this.gender = this.getGender(gender);
+ this.homeAddress = homeAddress;
+ this.birthDate = LocalDate.parse(birthDate);
+ }
+
+ protected String getLastFirstName(String fullName) {
+ String[] massStrFullName = fullName.split(" ");
+ switch ((int)Arrays.stream(massStrFullName).count()) {
+ case 3:
+ return String.format("%s %s~%s", massStrFullName[0], massStrFullName[1], massStrFullName[2]);
+ case 4:
+ return String.format("%s %s~%s %s", massStrFullName[0], massStrFullName[1], massStrFullName[2], massStrFullName[3]);
+ case 5:
+ return String.format("%s %s %s~%s %s", massStrFullName[0], massStrFullName[1], massStrFullName[2], massStrFullName[3], massStrFullName[4]);
+ default:
+ return String.format("%s~%s", massStrFullName[0], massStrFullName[1]);
+ }
+ }
+
+ public String toString() {
+ return this.homeAddress == null | this.birthDate == null | this.gender == null ? String.format(" %s — %s \n", this.uid, this.fullName) : String.format(" %s — %s — %s — %s — %s \n", this.uid, this.fullName, this.gender, this.homeAddress, this.birthDate);
+ }
+
+ public Integer getUid() {
+ return this.uid;
+ }
+
+ public String getFullName() {
+ return this.fullName;
+ }
+
+ public String getLastName() {
+ return this.lastName;
+ }
+
+ public String getFirstName() {
+ return this.firstName;
+ }
+
+ public Gender getGender() {
+ return this.gender;
+ }
+
+ public String getHomeAddress() {
+ return this.homeAddress;
+ }
+
+ public LocalDate getBirthDate() {
+ return this.birthDate;
+ }
+
+ public Gender getGender(String gender) {
+ gender = gender.toLowerCase();
+ return gender == "male" ? Gender.MALE : Gender.FEMALE;
+ }
+
+ public Gender getGender(Gender gender) {
+ return gender;
+ }
+
+ public String addGender(Gender gender) {
+ return gender.toString().toLowerCase();
+ }
+}
diff --git a/src/main/java/org/example/Models/Persons/Student.java b/src/main/java/org/example/Models/Persons/Student.java
new file mode 100644
index 0000000..3b8448a
--- /dev/null
+++ b/src/main/java/org/example/Models/Persons/Student.java
@@ -0,0 +1,28 @@
+package org.example.Models.Persons;
+
+import org.example.Models.StudentScores;
+
+public class Student extends Person {
+ private Integer uid;
+ private String groupName;
+
+ public Student(Integer uid, String fullname, String groupName) {
+ super(fullname);
+ this.uid = uid;
+ this.groupName = groupName;
+ }
+ public Student(Student student) {
+ super(student.getFullName());
+ this.uid = student.getUid();
+ this.groupName = student.getGroupName();
+ }
+
+ public String toString() {
+ return String.format(" %s — %s — %s \n", this.uid, this.getFullName(), this.groupName);
+ }
+
+ public String getGroupName() {
+ return this.groupName;
+ }
+}
+
diff --git a/src/main/java/org/example/Models/ReportCard.java b/src/main/java/org/example/Models/ReportCard.java
new file mode 100644
index 0000000..d548f7c
--- /dev/null
+++ b/src/main/java/org/example/Models/ReportCard.java
@@ -0,0 +1,16 @@
+package org.example.Models;
+
+public class ReportCard extends StudentScores{
+ private Integer uid;
+
+ public ReportCard(StudentScores studentScores) {
+ super(
+ studentScores.getStudent(),
+ studentScores.getTotalScores());
+ this.uid = studentScores.getUid();
+ }
+
+ public Integer getUid() {
+ return this.uid;
+ }
+}
diff --git a/src/main/java/org/example/Models/Scores/ChapterScores.java b/src/main/java/org/example/Models/Scores/ChapterScores.java
new file mode 100644
index 0000000..d327215
--- /dev/null
+++ b/src/main/java/org/example/Models/Scores/ChapterScores.java
@@ -0,0 +1,29 @@
+package org.example.Models.Scores;
+
+import org.example.Models.Courses.Chapter;
+import org.example.Models.Courses.Task;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+public class ChapterScores extends Chapter{
+ private Integer uid;
+// private Integer chapterScore;
+
+ public ChapterScores(Integer uid, Chapter chapter) {// ,Integer sumScore) {
+ super(chapter);
+ this.uid = chapter.getUid();
+ // Тут надо реализовать сумму chapterScores
+ //this.chapterScore = sumScore;
+ }
+
+ public Integer getUid() {
+ return this.uid;
+ }
+
+// public Integer getChapterScore() {
+// return this.chapterScore;
+// }
+}
diff --git a/src/main/java/org/example/Models/Scores/CourseScores.java b/src/main/java/org/example/Models/Scores/CourseScores.java
new file mode 100644
index 0000000..42080a8
--- /dev/null
+++ b/src/main/java/org/example/Models/Scores/CourseScores.java
@@ -0,0 +1,20 @@
+package org.example.Models.Scores;
+
+import org.example.Models.Courses.Course;
+
+public class CourseScores extends Course {
+ // Честно говоря, я не понимаю,
+ // что должен получать этот класс и хранить
+ private Integer uid;
+ private Integer totalScores;
+
+ public CourseScores(Course course) {
+ super(course);
+ this.uid = course.getUid();
+ this.totalScores = course.getTotalMaxScore();
+ }
+ public Integer getUid() {
+ return this.uid;
+ }
+ public Integer getTotalScores() {return this.totalScores;}
+}
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/Scores/TaskScores.java b/src/main/java/org/example/Models/Scores/TaskScores.java
new file mode 100644
index 0000000..3814f8b
--- /dev/null
+++ b/src/main/java/org/example/Models/Scores/TaskScores.java
@@ -0,0 +1,22 @@
+package org.example.Models.Scores;
+
+import org.example.Models.Courses.Task;
+
+public class TaskScores extends Task{
+ private Integer uid;
+ private Integer score;
+
+ public TaskScores(Task task, Integer score) {
+ super(task);
+ this.uid = task.getUid();
+ this.score = score;
+ }
+
+ public Integer getUid() {
+ return this.uid;
+ }
+
+ public Integer getScore() {
+ return this.score;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/example/Models/StudentScores.java b/src/main/java/org/example/Models/StudentScores.java
new file mode 100644
index 0000000..81e7159
--- /dev/null
+++ b/src/main/java/org/example/Models/StudentScores.java
@@ -0,0 +1,32 @@
+package org.example.Models;
+
+import org.example.Models.Persons.Student;
+import org.example.Models.Scores.CourseScores;
+
+public class StudentScores extends Student {
+ private Integer uid;
+ private Student student;
+ private Integer totalScores;
+
+ public StudentScores(Student student, CourseScores courseScores) {
+ super(student);
+ this.uid = student.getUid();
+ this.student = student;
+ this.totalScores = courseScores.getTotalScores();
+ }
+ public StudentScores(Student student, Integer totalScores) {
+ super(student);
+ this.uid = student.getUid();
+ this.student = student;
+ this.totalScores = totalScores;
+ }
+
+ public Integer getUid() {
+ return this.uid;
+ }
+
+ public Student getStudent() {return student;}
+
+ public Integer getTotalScores() {return this.totalScores;}
+}
+