From 1c599a9abdafe2207b3be109ffcf4c9dcc352e7a Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 10:10:48 +0100 Subject: [PATCH 01/66] add maven --- .idea/.gitignore | 3 +++ .idea/compiler.xml | 13 +++++++++++++ .idea/encodings.xml | 7 +++++++ .idea/jarRepositories.xml | 20 ++++++++++++++++++++ .idea/misc.xml | 15 +++++++++++++++ .idea/vcs.xml | 6 ++++++ pom.xml | 17 +++++++++++++++++ 7 files changed, 81 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 pom.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..f0d9157 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..5d6b03c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..d765866 --- /dev/null +++ b/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + + groupId + homework-java-ironschool + 1.0-SNAPSHOT + + + 17 + 17 + UTF-8 + + + \ No newline at end of file From 1aedb6ec3d59199f0aa7869978c8539256d1f523 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 10:39:04 +0100 Subject: [PATCH 02/66] add src folder --- src/main/java/Main.java | 2 ++ src/test/java/MainTest.java | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 src/main/java/Main.java create mode 100644 src/test/java/MainTest.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 0000000..7046417 --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,2 @@ +public class Main { +} diff --git a/src/test/java/MainTest.java b/src/test/java/MainTest.java new file mode 100644 index 0000000..45ec1a7 --- /dev/null +++ b/src/test/java/MainTest.java @@ -0,0 +1,2 @@ +public class MainTest { +} From 2a940b0f63a701339482192c32c7b6be8ce316c5 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 10:59:06 +0100 Subject: [PATCH 03/66] add teacher class --- src/main/java/Main.java | 6 ++++++ src/main/java/Teacher.java | 36 +++++++++++++++++++++++++++++++++++ target/classes/Main.class | Bin 0 -> 1192 bytes target/classes/Teacher.class | Bin 0 -> 1074 bytes 4 files changed, 42 insertions(+) create mode 100644 src/main/java/Teacher.java create mode 100644 target/classes/Main.class create mode 100644 target/classes/Teacher.class diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 7046417..0e2fb1e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,2 +1,8 @@ +import java.util.List; + public class Main { + public static void main(String[] args) { + + + } } diff --git a/src/main/java/Teacher.java b/src/main/java/Teacher.java new file mode 100644 index 0000000..6e72946 --- /dev/null +++ b/src/main/java/Teacher.java @@ -0,0 +1,36 @@ +import java.util.Random; + +public class Teacher { + private String id; + private String name; + private double salary; + + public Teacher(String name, double salary) { + Random random = new Random(); + this.id = Integer.toString(random.nextInt(1000)); + setName(name); + setSalary(salary); + } + + //setters + public void setName(String name) { + this.name = name; + } + + public void setSalary(double salary) { + this.salary = salary; + } + + //getters + public String getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public double getSalary() { + return this.salary; + } +} diff --git a/target/classes/Main.class b/target/classes/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..7ea811007d7a68ae0d3ff2357e003f9834ae4d51 GIT binary patch literal 1192 zcmaJ=+fEZf82*NqZd;dw1&Vk;)K*(i>RE9SkXEE-L6edi4SWP& zLoXn~#0T)!_c8v{Z9+*KH<_LJPv7?+W`6%Y`vu@N%1MkMVjyZ_6fuU$1AfE{F83OR z5BmqArWj(Yj_0T~hDa`7H4tYo_5`mrg&#+fVf1~+b$D#!&sPEjk}xo?!6q2eIr|*0 zqI}0|SfzY5fy+o4m@+YqnG2Ma<3NcPG06@Q&xFyAEPSL;MF4`gEKM+L;tJ-7yCGD$ z&M=+J4>D=TYbLI1M}r)9c}r;ByosAwU`UXz!d>nkcS|d!DEr$c?jXZ3+v10!D7_k2 zpB&YsQ=qt~0)~|#H4So?hURk@_YCArVl+mUk209SIN%( z2Ki47F;ki57ABUDq?gNYbclXU&o z46N&xZ!l!euZrUx$wN^HZ%jCaEnZVnPwHELTY8Qm=r;H2t_U)=l!u+RHCR=j=0f1! zaa#;=?=L)j3s(PBdk{tLx)nzWD~?TucvHH3fzb!E?0Ld3x;zL(VBjr7cA&yxi5qyw zF#ms7J;rX8xP>Kp!1@~jy$8hT|A3?d?Tq%(#Z$2FUGp;iwHb(z88AZ!Jj5fC5_pU! zq|w2gfHY|KCydXj#569QV$A-5$)yvdXP{XlBs zn9;-!;3x4@7|$ym7=~%`-hJ<$d(OS5@7JI2KLNbNGXn}#9h!+4;sQ%&_B*@WvAuTr zb>qxw1_JRHuIB~^0&1aH*D-eq8U${q{KocLy{-Wrs$Awxm`Dofp7TDac&ye6m14!f zB9?TdOr)_akeY}Pg8rGrT7M!|$ zHd2jd+^38m8a*ELAM=@wwVj|s7czwz#&LS4N7E-5UCzee$(D^;Z{RnbBUg4~MuL0N zeQa_}g|9^AO3xW7(u8p5?A+s^Hi}#=o<0&8hB?pZ&)}- z#wrbwvkF7p{1OtCxaLR%B%r}S67&3JCdHH3#RBdyV=+To+{GSu8Ob(87|BKyVsj|t z9&tkc@Tj2!X5;{It8|X7iJpA(;8ToYIpoidP-Fgh#4qH77;~u{PjcnYu`|t;CD-bI zxMYWd-+erYxXR%fh*@8e`Akv;(gx`!upZKwVH}HE5_mYXcx$?NV`lLqJRU16BVsD= Pe40|;o>}}PL_Pfr7XYW5 literal 0 HcmV?d00001 From cbcd208430ce7f1625f8e46beb59cdd5ca386e65 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 11:01:11 +0100 Subject: [PATCH 04/66] create org package --- .idea/uiDesigner.xml | 124 ++++++++++++++++++++++++++ src/main/java/Main.java | 2 - src/main/java/org/Main.java | 10 +++ src/test/java/{ => org}/MainTest.java | 2 + target/classes/org/Main.class | Bin 0 -> 524 bytes 5 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 .idea/uiDesigner.xml delete mode 100644 src/main/java/Main.java create mode 100644 src/main/java/org/Main.java rename src/test/java/{ => org}/MainTest.java (65%) create mode 100644 target/classes/org/Main.class diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java deleted file mode 100644 index 7046417..0000000 --- a/src/main/java/Main.java +++ /dev/null @@ -1,2 +0,0 @@ -public class Main { -} diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java new file mode 100644 index 0000000..d6ace40 --- /dev/null +++ b/src/main/java/org/Main.java @@ -0,0 +1,10 @@ +package org; + +import java.util.List; + +public class Main { + public static void main(String[] args) { + System.out.println("iron shchool"); + } + +} diff --git a/src/test/java/MainTest.java b/src/test/java/org/MainTest.java similarity index 65% rename from src/test/java/MainTest.java rename to src/test/java/org/MainTest.java index 45ec1a7..997aa3a 100644 --- a/src/test/java/MainTest.java +++ b/src/test/java/org/MainTest.java @@ -1,2 +1,4 @@ +package org; + public class MainTest { } diff --git a/target/classes/org/Main.class b/target/classes/org/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..66c26fd73fca62d45bc8a5cacc8416b6666b0ca7 GIT binary patch literal 524 zcmZvZJx{|h5Qbm(11BNS($ew`EmO-tMuq|l5>xn)in=hlAxd2(F>+HReijTMG4KQU zQHXOW0;GC4``){I?reX2zP$rD!M=k6iX0^uWh^jM$KpYFu}CBDYB&yqjA7werZPKa zD0aF78y0L1$HgMtf9d_lNfsuQrKVKW@Nr>T{|X_`PAoDPcR`+^c z)Hh-nlT!0lAmV}0()cs6l#S$s!SR0pJt8DIsM)!l*N@^tM^sav6DCq$O?42SOViRe zBORJ+p^XMTwpj%*^W0?D$n$7tw3iQF!JhK)I$0AY5gTOP*?ALNG_;ziOla literal 0 HcmV?d00001 From a63d01d7877f71ae1953d9bceffae1c995e9cac8 Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Sat, 24 Feb 2024 11:34:55 +0100 Subject: [PATCH 05/66] new branch --- .idea/homework-java-ironschool.iml | 8 ++++++++ .idea/modules.xml | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 .idea/homework-java-ironschool.iml create mode 100644 .idea/modules.xml diff --git a/.idea/homework-java-ironschool.iml b/.idea/homework-java-ironschool.iml new file mode 100644 index 0000000..abe781f --- /dev/null +++ b/.idea/homework-java-ironschool.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..7d98804 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file From 9377a6d986445c76394df0f555dbe3fbc39eb9e2 Mon Sep 17 00:00:00 2001 From: annadpp Date: Sat, 24 Feb 2024 11:39:21 +0100 Subject: [PATCH 06/66] Add Student class --- src/main/java/{org => example}/Main.java | 2 +- src/main/java/example/Student.java | 57 ++++++++++++++++++++ src/test/java/{org => example}/MainTest.java | 2 +- src/test/java/example/StudentTest.java | 17 ++++++ 4 files changed, 76 insertions(+), 2 deletions(-) rename src/main/java/{org => example}/Main.java (89%) create mode 100644 src/main/java/example/Student.java rename src/test/java/{org => example}/MainTest.java (61%) create mode 100644 src/test/java/example/StudentTest.java diff --git a/src/main/java/org/Main.java b/src/main/java/example/Main.java similarity index 89% rename from src/main/java/org/Main.java rename to src/main/java/example/Main.java index d6ace40..5a8663d 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/example/Main.java @@ -1,4 +1,4 @@ -package org; +package example; import java.util.List; diff --git a/src/main/java/example/Student.java b/src/main/java/example/Student.java new file mode 100644 index 0000000..7dcf1f4 --- /dev/null +++ b/src/main/java/example/Student.java @@ -0,0 +1,57 @@ +package example; + +import java.util.UUID; + +public class Student { + private final String studentId; + private String name; + private String address; + private String email; + private Course course; + + // Constructor + public Student(String name, String address, String email) { + this.studentId = UUID.randomUUID().toString(); // auto-generated studentId + setName(name); + setAddress(address); + setEmail(email); + } + + // Getters + public String getStudentId() { + return studentId; + } + + public String getName() { + return name; + } + + public String getAddress() { + return address; + } + + public String getEmail() { + return email; + } + + public Course getCourse() { + return course; + } + + // Setters + public void setName(String name) { + this.name = name; + } + + public void setAddress(String address) { + this.address = address; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setCourse(Course course) { + this.course = course; + } +} diff --git a/src/test/java/org/MainTest.java b/src/test/java/example/MainTest.java similarity index 61% rename from src/test/java/org/MainTest.java rename to src/test/java/example/MainTest.java index 997aa3a..83fae7b 100644 --- a/src/test/java/org/MainTest.java +++ b/src/test/java/example/MainTest.java @@ -1,4 +1,4 @@ -package org; +package example; public class MainTest { } diff --git a/src/test/java/example/StudentTest.java b/src/test/java/example/StudentTest.java new file mode 100644 index 0000000..d4a23f6 --- /dev/null +++ b/src/test/java/example/StudentTest.java @@ -0,0 +1,17 @@ +package example; + +public class StudentTest { + public static void main(String[] args) { + Student student = new Student("", "", ""); + + student.setName("John Doe"); + student.setAddress("Calle Falsa 123, Springfield"); + student.setEmail("johndoe@test.com"); + + System.out.println("Student ID: " + student.getStudentId()); + System.out.println("Name: " + student.getName()); + System.out.println("Address: " + student.getAddress()); + System.out.println("Email: " + student.getEmail()); + System.out.println("Course: " + student.getCourse()); + } +} From 8bae0a04a9bf4512cd89996b684409afc9e82d5f Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Sat, 24 Feb 2024 11:53:17 +0100 Subject: [PATCH 07/66] command class --- src/main/java/org/Command.java | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/java/org/Command.java diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java new file mode 100644 index 0000000..55d53dd --- /dev/null +++ b/src/main/java/org/Command.java @@ -0,0 +1,37 @@ +package org; + +public class Command { + public void displayCommands(){ + System.out.println("1. Enroll a new student"); + System.out.println("2. Assign teacher to a course"); + System.out.println("3. See all courses"); + System.out.println("4. Search for a specific course"); + System.out.println("5. See all students"); + System.out.println("6. Search for a specific student"); + System.out.println("7. See all teachers"); + System.out.println("8. Search for a specific teacher"); + System.out.print("Enter your choice: "); + } + + public void enrollStudent(String studentId, String courseId){} + + public void assignTeacher(String teacherId, String courseId){} + + public List showCourses(){} + + public List showStudents(){} + + public List showTeachers(){} + + public Course lookupCourse(String courseId){} + + public Student lookupStundent(String studentId){} + + public Teacher lookupTeacher(String teacherId){} + + public double showProfit(){} + + + + +} From 47c5666e75f13d4f1e8ac4b0517fe4aa6fe9b168 Mon Sep 17 00:00:00 2001 From: annadpp Date: Sat, 24 Feb 2024 11:55:21 +0100 Subject: [PATCH 08/66] Add Student class - package name fixed --- src/main/java/{example => org}/Main.java | 4 +--- src/main/java/{example => org}/Student.java | 4 ++-- src/test/java/{example => org}/MainTest.java | 2 +- src/test/java/{example => org}/StudentTest.java | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) rename src/main/java/{example => org}/Main.java (74%) rename src/main/java/{example => org}/Student.java (96%) rename src/test/java/{example => org}/MainTest.java (61%) rename src/test/java/{example => org}/StudentTest.java (97%) diff --git a/src/main/java/example/Main.java b/src/main/java/org/Main.java similarity index 74% rename from src/main/java/example/Main.java rename to src/main/java/org/Main.java index 5a8663d..b560c4c 100644 --- a/src/main/java/example/Main.java +++ b/src/main/java/org/Main.java @@ -1,6 +1,4 @@ -package example; - -import java.util.List; +package org; public class Main { public static void main(String[] args) { diff --git a/src/main/java/example/Student.java b/src/main/java/org/Student.java similarity index 96% rename from src/main/java/example/Student.java rename to src/main/java/org/Student.java index 7dcf1f4..a34374f 100644 --- a/src/main/java/example/Student.java +++ b/src/main/java/org/Student.java @@ -1,4 +1,4 @@ -package example; +package org; import java.util.UUID; @@ -7,7 +7,7 @@ public class Student { private String name; private String address; private String email; - private Course course; + //private Course course; // Constructor public Student(String name, String address, String email) { diff --git a/src/test/java/example/MainTest.java b/src/test/java/org/MainTest.java similarity index 61% rename from src/test/java/example/MainTest.java rename to src/test/java/org/MainTest.java index 83fae7b..997aa3a 100644 --- a/src/test/java/example/MainTest.java +++ b/src/test/java/org/MainTest.java @@ -1,4 +1,4 @@ -package example; +package org; public class MainTest { } diff --git a/src/test/java/example/StudentTest.java b/src/test/java/org/StudentTest.java similarity index 97% rename from src/test/java/example/StudentTest.java rename to src/test/java/org/StudentTest.java index d4a23f6..9432531 100644 --- a/src/test/java/example/StudentTest.java +++ b/src/test/java/org/StudentTest.java @@ -1,4 +1,4 @@ -package example; +package org; public class StudentTest { public static void main(String[] args) { From ecbfae5cbf0b3a65da768eec3d59b16b3d586dca Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 12:00:15 +0100 Subject: [PATCH 09/66] add Teacher class --- src/main/java/Teacher.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/Teacher.java b/src/main/java/Teacher.java index 6e72946..27e0bcd 100644 --- a/src/main/java/Teacher.java +++ b/src/main/java/Teacher.java @@ -1,15 +1,27 @@ import java.util.Random; public class Teacher { - private String id; + private final String id; private String name; private double salary; + private static int indexTeacher = 1; public Teacher(String name, double salary) { - Random random = new Random(); - this.id = Integer.toString(random.nextInt(1000)); + id = generateID(indexTeacher); setName(name); setSalary(salary); + indexTeacher++; + } + + public void getInfo(){ + System.out.println("Teacher - ID: " + getId() + " | Name: " + getName() + " | Salary: " + getSalary()); + } + + public boolean getTeacherById(String idToCheck){ + return this.id.equals(idToCheck); + } + static String generateID(int indexTeacher){ + return "T" + Integer.toString(indexTeacher); } //setters From e9cb39c0b078d1f5ae7bb6a91d6d63e9a12af61d Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 12:05:14 +0100 Subject: [PATCH 10/66] update teacher class --- src/main/java/Main.java | 3 --- src/main/java/Teacher.java | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 0e2fb1e..ad0829d 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,5 @@ import java.util.List; - public class Main { public static void main(String[] args) { - - } } diff --git a/src/main/java/Teacher.java b/src/main/java/Teacher.java index 27e0bcd..927f50c 100644 --- a/src/main/java/Teacher.java +++ b/src/main/java/Teacher.java @@ -13,6 +13,7 @@ public Teacher(String name, double salary) { indexTeacher++; } + public void getInfo(){ System.out.println("Teacher - ID: " + getId() + " | Name: " + getName() + " | Salary: " + getSalary()); } From aee3e75e5ed302291f028a6021d7870921d47482 Mon Sep 17 00:00:00 2001 From: annadpp Date: Sat, 24 Feb 2024 12:11:00 +0100 Subject: [PATCH 11/66] Add helper getInfo() --- src/main/java/org/Student.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index a34374f..89f9bf2 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -54,4 +54,9 @@ public void setEmail(String email) { public void setCourse(Course course) { this.course = course; } -} + + // Helper + public void getInfo() { + System.out.println("Student - ID: " + this.studentId + " | Name: " + getName() + " | Address: " + getAddress() + " | Email: " + getEmail()); + } +} \ No newline at end of file From c1590b47864d534c0b1d7a8ee762cb50bd0a5255 Mon Sep 17 00:00:00 2001 From: mandril888 Date: Sat, 24 Feb 2024 12:20:26 +0100 Subject: [PATCH 12/66] Main menu implementation --- src/main/java/org/ConsoleColors.java | 76 +++++++++++++++++++++++++ src/main/java/org/Main.java | 54 +++++++++++++++++- target/classes/org/ConsoleColors.class | Bin 0 -> 2905 bytes target/classes/org/Main.class | Bin 524 -> 2739 bytes 4 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/ConsoleColors.java create mode 100644 target/classes/org/ConsoleColors.class diff --git a/src/main/java/org/ConsoleColors.java b/src/main/java/org/ConsoleColors.java new file mode 100644 index 0000000..3d17b27 --- /dev/null +++ b/src/main/java/org/ConsoleColors.java @@ -0,0 +1,76 @@ +package org; + +public class ConsoleColors { + // Reset + public static final String RESET = "\033[0m"; // Text Reset + + // Regular Colors + public static final String BLACK = "\033[0;30m"; // BLACK + public static final String RED = "\033[0;31m"; // RED + public static final String GREEN = "\033[0;32m"; // GREEN + public static final String YELLOW = "\033[0;33m"; // YELLOW + public static final String BLUE = "\033[0;34m"; // BLUE + public static final String PURPLE = "\033[0;35m"; // PURPLE + public static final String CYAN = "\033[0;36m"; // CYAN + public static final String WHITE = "\033[0;37m"; // WHITE + + // Bold + public static final String BLACK_BOLD = "\033[1;30m"; // BLACK + public static final String RED_BOLD = "\033[1;31m"; // RED + public static final String GREEN_BOLD = "\033[1;32m"; // GREEN + public static final String YELLOW_BOLD = "\033[1;33m"; // YELLOW + public static final String BLUE_BOLD = "\033[1;34m"; // BLUE + public static final String PURPLE_BOLD = "\033[1;35m"; // PURPLE + public static final String CYAN_BOLD = "\033[1;36m"; // CYAN + public static final String WHITE_BOLD = "\033[1;37m"; // WHITE + + // Underline + public static final String BLACK_UNDERLINED = "\033[4;30m"; // BLACK + public static final String RED_UNDERLINED = "\033[4;31m"; // RED + public static final String GREEN_UNDERLINED = "\033[4;32m"; // GREEN + public static final String YELLOW_UNDERLINED = "\033[4;33m"; // YELLOW + public static final String BLUE_UNDERLINED = "\033[4;34m"; // BLUE + public static final String PURPLE_UNDERLINED = "\033[4;35m"; // PURPLE + public static final String CYAN_UNDERLINED = "\033[4;36m"; // CYAN + public static final String WHITE_UNDERLINED = "\033[4;37m"; // WHITE + + // Background + public static final String BLACK_BACKGROUND = "\033[40m"; // BLACK + public static final String RED_BACKGROUND = "\033[41m"; // RED + public static final String GREEN_BACKGROUND = "\033[42m"; // GREEN + public static final String YELLOW_BACKGROUND = "\033[43m"; // YELLOW + public static final String BLUE_BACKGROUND = "\033[44m"; // BLUE + public static final String PURPLE_BACKGROUND = "\033[45m"; // PURPLE + public static final String CYAN_BACKGROUND = "\033[46m"; // CYAN + public static final String WHITE_BACKGROUND = "\033[47m"; // WHITE + + // High Intensity + public static final String BLACK_BRIGHT = "\033[0;90m"; // BLACK + public static final String RED_BRIGHT = "\033[0;91m"; // RED + public static final String GREEN_BRIGHT = "\033[0;92m"; // GREEN + public static final String YELLOW_BRIGHT = "\033[0;93m"; // YELLOW + public static final String BLUE_BRIGHT = "\033[0;94m"; // BLUE + public static final String PURPLE_BRIGHT = "\033[0;95m"; // PURPLE + public static final String CYAN_BRIGHT = "\033[0;96m"; // CYAN + public static final String WHITE_BRIGHT = "\033[0;97m"; // WHITE + + // Bold High Intensity + public static final String BLACK_BOLD_BRIGHT = "\033[1;90m"; // BLACK + public static final String RED_BOLD_BRIGHT = "\033[1;91m"; // RED + public static final String GREEN_BOLD_BRIGHT = "\033[1;92m"; // GREEN + public static final String YELLOW_BOLD_BRIGHT = "\033[1;93m";// YELLOW + public static final String BLUE_BOLD_BRIGHT = "\033[1;94m"; // BLUE + public static final String PURPLE_BOLD_BRIGHT = "\033[1;95m";// PURPLE + public static final String CYAN_BOLD_BRIGHT = "\033[1;96m"; // CYAN + public static final String WHITE_BOLD_BRIGHT = "\033[1;97m"; // WHITE + + // High Intensity backgrounds + public static final String BLACK_BACKGROUND_BRIGHT = "\033[0;100m";// BLACK + public static final String RED_BACKGROUND_BRIGHT = "\033[0;101m";// RED + public static final String GREEN_BACKGROUND_BRIGHT = "\033[0;102m";// GREEN + public static final String YELLOW_BACKGROUND_BRIGHT = "\033[0;103m";// YELLOW + public static final String BLUE_BACKGROUND_BRIGHT = "\033[0;104m";// BLUE + public static final String PURPLE_BACKGROUND_BRIGHT = "\033[0;105m"; // PURPLE + public static final String CYAN_BACKGROUND_BRIGHT = "\033[0;106m"; // CYAN + public static final String WHITE_BACKGROUND_BRIGHT = "\033[0;107m"; // WHITE +} diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index d6ace40..799ce72 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -1,10 +1,60 @@ package org; -import java.util.List; +import java.util.InputMismatchException; +import java.util.Scanner; public class Main { public static void main(String[] args) { - System.out.println("iron shchool"); + String schoolName = ""; + Scanner scanner = new Scanner(System.in); + + System.out.println("Hi!"); + System.out.println("Welcome to the School Manager Tool."); + + System.out.println(printBlue("Please, text the name for your school:")); + schoolName = scanner.nextLine(); + System.out.println("Perfect, we have created the school: " + printPurple(schoolName)); + + itemCreator("teacher", schoolName); + itemCreator("course", schoolName); + itemCreator("student", schoolName); + + scanner.close(); + } + + private static void itemCreator(String type, String schoolName) { + boolean is_num = false; + int totalItems = 0; + Scanner scanner = new Scanner(System.in); + + while (!is_num) { + System.out.println(printBlue("How many " + type + "s are in " + schoolName + "?")); + try { + totalItems = scanner.nextInt(); + scanner.nextLine(); + if (totalItems > 0) { + System.out.println("Perfect, let's create now each " + type); + for (int i = 0; i < totalItems; i++) { + System.out.println("Execute " + type + "Creator " + (i+1)); + } + System.out.println("Perfect, we have created all the " + type + "s."); + is_num = true; + } else { + System.err.println("Oops! You need to have at least one " + type + "."); + } + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + is_num = false; } + private static String printBlue(String text) { + return ConsoleColors.BLUE + text + ConsoleColors.RESET; + } + + private static String printPurple(String text) { + return ConsoleColors.PURPLE + text + ConsoleColors.RESET; + } } diff --git a/target/classes/org/ConsoleColors.class b/target/classes/org/ConsoleColors.class new file mode 100644 index 0000000000000000000000000000000000000000..883c2c58c18ef1bea1e007c7613f1529aac31033 GIT binary patch literal 2905 zcmZXVd0Sg$5XI+00+$d56muGHn6B4Km6Z{Ty4YMVRO+*Z@>dK+=*h_eA;ocb2e?1>L99tq%)JY={%_ov2$uBH|3zZNvgZp znVKKPJGV$}H)_GTiOD>Smq>9BiXpel#bnk&Ut3)z;k9a`Ra3uQ>fCS0?bj$fMB%18 zy{3(n5Q#hQ;LeROBm%eJ>9ud9JtA?24$feNt3}`-AvcIo_KCu2B3_!A%vd_-OlEl2 z*Sh+UmuVem(rQXnP8RW!Y5jocoG)tfX~U!#IAyn+Qp=9WoHc5)YC~2GoVeRftmT}@ zoIB#>*7}U-Dt!{iZakNT&88div-d9y@zHa$Yi+^PRC2A}>Zv-nmJ6QTNUg;~o~Scx zdBu|(iM6=ui7KyFk%RMa+ORpfxykW~yiIqylNcBo=By$2>>33t>@MIiCk>m^YqVpc zan3F|zec=QL{8c1onRw9AQETnk~3_?hehOso!%)n(qkfVzOXsRMteduP8V(Lr!PMzGUtpow$wMA6a$BiNmy*Y?|4xhoEXbwcGlNl5uIblB({FT>*C<- z5r2dIH@qb}4iSUsx)m5_77{h4O5nR$?~AK>ctDtFqo{x&m>{g{G@(wdLZ0 zlKb`lU64EYR;10;j_a0am^M-eg$M^9)IwqKI>p`KsNxv-9K{>Jy^8z5=PK?8pRf1= z@P&#ugD+BiG5Au&mw~q_-VVM(@s;4X;sNkZ#e?8oig$yrQq1{B6z>J^S9}e4RB;kK zrZ^2AS3Ci}PVqtT^@=m#DaAK{rxoYHvx?`y^NMc*->mo+@S@_|z)Omk!9~TlgAXe% zf$vaU23HhU!FMUHf$NIbz;`RY2YjF6`@s(?ehB=C;zz;96+aGsQt?yZXB0mReqQkj z@F~SFfL~JlGWb=+uYuoC{3iHq#qWUMQ~W;oL&YC~KT-TC_;bZyfWK1wHTYY_-+_Nn zd>Z_d;-9gJxHG8@&tI{TahHjL+s}}7+Fj8zc(P2?O26S5c0UK{cRCBQ=np(w=+FNE DV65bB literal 0 HcmV?d00001 diff --git a/target/classes/org/Main.class b/target/classes/org/Main.class index 66c26fd73fca62d45bc8a5cacc8416b6666b0ca7..d9a78d239a4a937bc234d54b54c14a6bcea2f0f1 100644 GIT binary patch literal 2739 zcma)8TXPge6#hE9$!x*`VIkZv6CjWaBoHoQLI4xNtR@iLm(fnMj+-#&(L7>j{1zJX8PdDhv`o)sY=}^f+e-j#!F(_6FtZlDp z(lKFnXh~x=)(}omBD#fOW1;Im4VJ<>8VtLwP1t~q7B;1^8CwKaKHa&>SimY8SIUAR;<}L4$5c;L!gIzj#Lz_IMg6@CvswG-Z8Ch`P>Zcno?oNZ?ho z$7{7y$kt#pgCu&5EKjC!Dwd@R!whBIYvFYPd*P78Vjp#*g49m__%%lrwHx>;j0?1$ z3W`yyeI_W`zEV?0VkCj8lD1zeTvTCq1`P(EgfE;ltk8NVKv7d@_IMgm8A z6Ebwoyt0_oc{dVh8hI)(Ql2ctLR;N_ZZSt46MQejY5J_J@tTp!0zOGmn=Ru6tF>sV zSndamP<~zAB)GkB`JXl2fDyJvUvN)=AKA4J@H-LhUpe>Y)1g;2dUr5dM zuLLuyr`!?B=i-EPsP$QapQ_bZF)Rlimj0BdqU|F=FjFe_FQ%$$0p|H3GflsaQvEbN?O^X(hAJ_$7J%E_rF09 zYYaq0Y@VMG?&6aWgO=JhT~*tG&*-$hA&}m1ZcqQd{RP2iA%)MLt{f<@aGEu@(vT;k zNJSRD6lhyi(pr_W@U_6^|2Cx<%Vk9?+h84gCwS=Dt$0ucCOPZjlXoTRJ0C#Y<&QeN z$B{A7n6umB?Zho7-ySuqMWBm$Bg;oTq;Rr*Q$2$d|FTUWCI;o6NOP&P9~iA{%IT zJ28+rvXD$)a^ugKBjV1kdAtOa(^!|hkC%^_v2$|MFF0!6&to`FCvmX8rGC?|SZ5Yn z>XR4diOl4Aqh8#3@@Ls}Bwk4l+`;mD7^Ux6ym05qt-ktlST1LB^t$t8E-`SIAh+WK zTxSxAxIkx_D6pPMY#{KBq+v7D-$JWabYd$n&TZJw*)i5Viyb7SjWo1lhO`yY#aMe7 zZ8zpf;pbGrcbxx#Ufg0=F-0F{7awBWDJZICj-*|}G=GsG7C6|1`+60$VL}2Ds&l088)yMndjoH7e_-d8U}GCFVFx0 From 94df5625a39273de8cec2d61f9860cac14d8a6d6 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 12:21:05 +0100 Subject: [PATCH 13/66] update changes --- src/main/java/Teacher.java | 49 -------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 src/main/java/Teacher.java diff --git a/src/main/java/Teacher.java b/src/main/java/Teacher.java deleted file mode 100644 index 927f50c..0000000 --- a/src/main/java/Teacher.java +++ /dev/null @@ -1,49 +0,0 @@ -import java.util.Random; - -public class Teacher { - private final String id; - private String name; - private double salary; - private static int indexTeacher = 1; - - public Teacher(String name, double salary) { - id = generateID(indexTeacher); - setName(name); - setSalary(salary); - indexTeacher++; - } - - - public void getInfo(){ - System.out.println("Teacher - ID: " + getId() + " | Name: " + getName() + " | Salary: " + getSalary()); - } - - public boolean getTeacherById(String idToCheck){ - return this.id.equals(idToCheck); - } - static String generateID(int indexTeacher){ - return "T" + Integer.toString(indexTeacher); - } - - //setters - public void setName(String name) { - this.name = name; - } - - public void setSalary(double salary) { - this.salary = salary; - } - - //getters - public String getId() { - return this.id; - } - - public String getName() { - return this.name; - } - - public double getSalary() { - return this.salary; - } -} From bdf16bec75c740e35181cc3d2cbf1a59569f0b04 Mon Sep 17 00:00:00 2001 From: annadpp Date: Sat, 24 Feb 2024 12:34:54 +0100 Subject: [PATCH 14/66] Fixed for pull request --- src/main/java/org/Main.java | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 src/main/java/org/Main.java diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java deleted file mode 100644 index b560c4c..0000000 --- a/src/main/java/org/Main.java +++ /dev/null @@ -1,8 +0,0 @@ -package org; - -public class Main { - public static void main(String[] args) { - System.out.println("iron shchool"); - } - -} From 4c4fd6231a5b63d8cab2f65e4448f07d217b059a Mon Sep 17 00:00:00 2001 From: Katia Date: Sat, 24 Feb 2024 13:00:09 +0100 Subject: [PATCH 15/66] add course class --- src/main/java/org/Course.java | 105 ++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 src/main/java/org/Course.java diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java new file mode 100644 index 0000000..ca628aa --- /dev/null +++ b/src/main/java/org/Course.java @@ -0,0 +1,105 @@ +package example; + +import java.util.List; + +public class Course { + private String courseId; + private String name; + private double price; + private double money_earned; + private Teacher teacher; + private static int idCounter = 1; + private static final double MIN_PRICE = 100; + private static final double MAX_PRICE = 1000; + + public Course(String name, double price, double money_earned, Teacher teacher) { + assignCourseId(); + setName(name); + setPrice(price); + setMoney_earned(money_earned);//no se asigna manualmente + setTeacher(teacher); + } + + public String getCourseId() { + return courseId; + } + + public void assignCourseId() { + this.courseId = "C" + String.valueOf(idCounter++); + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + if(isValidPrice(price)){ + this.price = price; + } else { + System.out.println("Price should be between " + MIN_PRICE +" and " + MAX_PRICE); + } + } + + private boolean isValidPrice(double price){ + return !(price < MIN_PRICE) && !(price > MAX_PRICE); + } + + public String getName() { + return name; + } + + public void setName(String name) { + if(isValidName(name)){ + this.name = name; + } else { + System.out.println("Name has to be between 3 and 15 "); + } + + } + + private boolean isValidName(String name){ + return name != null && name.length() >= 3 && name.length() <= 15; + } + + public double getMoney_earned() { + return money_earned; + } + + public void setMoney_earned(double money_earned) { + this.money_earned = money_earned; + } + + public void setTeacher(Teacher teacher){ + this.teacher = teacher; + } + + public Teacher getTeacher(){ + return this.teacher; + } + public static Course getCourseById(String id, List courseList){ + for (Course course : courseList) { + if (course.getCourseId().equals(id)) { + return course; + } + } + return null; //volver a pedir id al usuario... + } + + public String getInfo(){ + return "{" + "Id: " + getCourseId() + "Name: " + + getName() + "Price: " + getPrice() + "$" + + "Total earned: " + getMoney_earned() + "$" + + "Taught by: " + getTeacher() +"}"; + //falta añadir getter del name del Teacher + } + public static String getAllCourses(List courseList){ + StringBuilder allCoursesInfo = new StringBuilder(); + for (Course course : courseList) { + allCoursesInfo.append(course.getInfo()).append("\n"); + } + + return allCoursesInfo.toString(); + + } +} + From becbc41d92a6ebf4f0dd8685a0f6b169a73dd377 Mon Sep 17 00:00:00 2001 From: Katia Date: Sat, 24 Feb 2024 13:03:57 +0100 Subject: [PATCH 16/66] arreglando main branch --- src/main/java/org/Main.java | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/main/java/org/Main.java diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java new file mode 100644 index 0000000..bc6878a --- /dev/null +++ b/src/main/java/org/Main.java @@ -0,0 +1,56 @@ +package org; +import java.util.List; +import java.util.InputMismatchException; +import java.util.Scanner; +public class Main { + public static void main(String[] args) { + System.out.println("iron shchool"); + String schoolName = ""; + Scanner scanner = new Scanner( + System.in + ); + System.out.println("Hi!"); + System.out.println("Welcome to the School Manager Tool."); + System.out.println(printBlue("Please, text the name for your school:")); + schoolName = scanner.nextLine(); + System.out.println("Perfect, we have created the school: " + printPurple(schoolName)); + itemCreator("teacher", schoolName); + itemCreator("course", schoolName); + itemCreator("student", schoolName); + scanner.close(); + } + private static void itemCreator(String type, String schoolName) { + boolean is_num = false; + int totalItems = 0; + Scanner scanner = new Scanner( + System.in + ); + while (!is_num) { + System.out.println(printBlue("How many " + type + "s are in " + schoolName + "?")); + try { + totalItems = scanner.nextInt(); + scanner.nextLine(); + if (totalItems > 0) { + System.out.println("Perfect, let's create now each " + type); + for (int i = 0; i < totalItems; i++) { + System.out.println("Execute " + type + "Creator " + (i+1)); + } + System.out.println("Perfect, we have created all the " + type + "s."); + is_num = true; + } else { + System.err.println("Oops! You need to have at least one " + type + "."); + } + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + is_num = false; + } + private static String printBlue(String text) { + return ConsoleColors.BLUE + text + ConsoleColors.RESET; + } + private static String printPurple(String text) { + return ConsoleColors.PURPLE + text + ConsoleColors.RESET; + } +} \ No newline at end of file From 35ff7effd581adb9c92e82bc3067529868d2b7d9 Mon Sep 17 00:00:00 2001 From: mandril888 Date: Sat, 24 Feb 2024 13:31:20 +0100 Subject: [PATCH 17/66] adjustments --- src/main/java/org/Command.java | 2 ++ src/main/java/org/Course.java | 10 ++++++++-- src/main/java/org/Student.java | 3 ++- target/classes/org/Command.class | Bin 0 -> 1146 bytes 4 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 target/classes/org/Command.class diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 55d53dd..706c2d0 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -1,5 +1,7 @@ package org; +import java.util.List; + public class Command { public void displayCommands(){ System.out.println("1. Enroll a new student"); diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index ca628aa..ecd58af 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -1,4 +1,6 @@ -package example; +package org; + +import org.Teacher; import java.util.List; @@ -24,7 +26,7 @@ public String getCourseId() { return courseId; } - public void assignCourseId() { + private void assignCourseId() { this.courseId = "C" + String.valueOf(idCounter++); } @@ -76,6 +78,8 @@ public void setTeacher(Teacher teacher){ public Teacher getTeacher(){ return this.teacher; } + + // TODO - move to Utils public static Course getCourseById(String id, List courseList){ for (Course course : courseList) { if (course.getCourseId().equals(id)) { @@ -92,6 +96,8 @@ public String getInfo(){ + "Taught by: " + getTeacher() +"}"; //falta añadir getter del name del Teacher } + + // TODO - move to Utils public static String getAllCourses(List courseList){ StringBuilder allCoursesInfo = new StringBuilder(); for (Course course : courseList) { diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 89f9bf2..718d42b 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -7,10 +7,11 @@ public class Student { private String name; private String address; private String email; - //private Course course; + private Course course; // Constructor public Student(String name, String address, String email) { + // TODO - copy from Course this.studentId = UUID.randomUUID().toString(); // auto-generated studentId setName(name); setAddress(address); diff --git a/target/classes/org/Command.class b/target/classes/org/Command.class new file mode 100644 index 0000000000000000000000000000000000000000..75e2ac058898f143e8bfcd78c4f4f84eced833c0 GIT binary patch literal 1146 zcmah|YflqF6g@*9yDeL&MFbzn;ERXa@&-jkLokvwYEr`YVLP-#w!6*lR?}bN@6ZpJ z_`x6Gk22ob9VvzqH`zJ!xaZ8d_wN4s{o^Nqmv~mh2r?G34sysdluyMcQS*e~s(m;< zm2S+Cf1!L8zhcNNEFKkLqhO)vU=+?j;f;P2%ML{aJt9rk6CoAUK8DJV8*wN_XUE1E z!_-QZ@B3lkd0cQ`e&$i!Yf3*ZqKs=6Dh?)aonc~#0E5-la-L5&ETmT?UP)j1t)0aq z8#fqcR;&C?6seZaV=3IW40#;TWp2<5BWYurp|V!x4Jo-G7wL9n;}*m0y51L|+vX=h zNSvrEU3H?|bMhUswlN?Z^TfW(z&EdAn=l)k=vxE2@kjJ~MBl!OZo+IlAo{)^Q$~GC zhP&-Rx$-&JwR_}XUKcKxl*qy&!)Oq;YI{MaBm5>qb}wj3hVi=c<@;XeScZq<*rT0F zJ#dA0BtoUvW-}YNRm4!LU(nbgc2h-NPxOtdj*v++8)+9A=7%(9SgRNcrYZ+yu5vkq z!A@JF&r2d{=waGV;+m4^vtom4;mWs4C*v4rRsH>74h!^w>n95;4e~TD(W*ws2y;u{ z!M@UD1dnOd$3O;8Xmrv5JVljOj3|G}Unp9~9ejgTDVTLhGxT1{ muAC5gdT59`zg4UySuw2BOlP?9f3eCHVw;!5w#dr}w*LSe^YNwt literal 0 HcmV?d00001 From 9f37847332b9a7c96e4f21eccceee5c62ba414cb Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 13:38:36 +0100 Subject: [PATCH 18/66] solve emrge conflicts --- src/main/java/org/CommandUtils.java | 4 +++ src/main/java/org/Teacher.java | 53 +++++++++++++++++++++++++++-- 2 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/CommandUtils.java diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java new file mode 100644 index 0000000..d80b68f --- /dev/null +++ b/src/main/java/org/CommandUtils.java @@ -0,0 +1,4 @@ +package org; + +public class CommandUtils { +} diff --git a/src/main/java/org/Teacher.java b/src/main/java/org/Teacher.java index 56a3e8b..8be0705 100644 --- a/src/main/java/org/Teacher.java +++ b/src/main/java/org/Teacher.java @@ -1,2 +1,51 @@ -package org;public class Teacher { -} +package org; + +import java.util.Random; + +public class Teacher { + private final String id; + private String name; + private double salary; + private static int indexTeacher = 1; + + public Teacher(String name, double salary) { + id = generateID(indexTeacher); + setName(name); + setSalary(salary); + indexTeacher++; + } + + + public void getInfo(){ + System.out.println("Teacher - ID: " + getId() + " | Name: " + getName() + " | Salary: " + getSalary()); + } + + public boolean getTeacherById(String idToCheck){ + return this.id.equals(idToCheck); + } + static String generateID(int indexTeacher){ + return "T" + Integer.toString(indexTeacher); + } + + //setters + public void setName(String name) { + this.name = name; + } + + public void setSalary(double salary) { + this.salary = salary; + } + + //getters + public String getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public double getSalary() { + return this.salary; + } +} \ No newline at end of file From c4332532a49d69b5ed8815fdc43c203982133999 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 15:53:29 +0100 Subject: [PATCH 19/66] add School class --- src/main/java/org/School.java | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/org/School.java diff --git a/src/main/java/org/School.java b/src/main/java/org/School.java new file mode 100644 index 0000000..7032858 --- /dev/null +++ b/src/main/java/org/School.java @@ -0,0 +1,44 @@ +package org; +import java.util.List; + +public class School { + private String name; + private List listCourse; + + private List listTeacher; + + private List listStudent; + + public School(String name, List listCourse, List listTeacher, List listStudent) { + setName(name); + setListCourse(listCourse); + setListTeacher(listTeacher); + setListStudent(listStudent); + } + + public void setName(String name) { + this.name = name; + } + public void setListCourse(List listCourse) { + this.listCourse = listCourse; + } + public void setListTeacher(List listTeacher) { + this.listTeacher = listTeacher; + } + public void setListStudent(List listStudent) { + this.listStudent = listStudent; + } + + public String getName() { + return this.name; + } + public List getListCourse() { + return this.listCourse; + } + public List getListTeacher() { + return this.listTeacher; + } + public List getListStudent() { + return this.listStudent; + } +} From fd5d962e406909223c3fc9f56ead85de82a077f7 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 24 Feb 2024 16:32:59 +0100 Subject: [PATCH 20/66] add School class --- src/main/java/org/School.java | 55 ++++++++++++++++++++-------------- src/main/java/org/Teacher.java | 17 +++++------ 2 files changed, 40 insertions(+), 32 deletions(-) diff --git a/src/main/java/org/School.java b/src/main/java/org/School.java index 7032858..bddcdb8 100644 --- a/src/main/java/org/School.java +++ b/src/main/java/org/School.java @@ -1,44 +1,55 @@ package org; +import java.util.HashMap; import java.util.List; public class School { private String name; - private List listCourse; + HashMap courseMap; + HashMap teacherMap; + HashMap studentMap; - private List listTeacher; - private List listStudent; - - public School(String name, List listCourse, List listTeacher, List listStudent) { + public School(String name, List listTeacher, List listCourse, List listStudent) { setName(name); - setListCourse(listCourse); - setListTeacher(listTeacher); - setListStudent(listStudent); + setHashmapTeacher(listTeacher); + setHashmapCourse(listCourse); + setHashmapStudent(listStudent); } public void setName(String name) { this.name = name; } - public void setListCourse(List listCourse) { - this.listCourse = listCourse; - } - public void setListTeacher(List listTeacher) { - this.listTeacher = listTeacher; - } - public void setListStudent(List listStudent) { - this.listStudent = listStudent; + + public void setHashmapTeacher(List listTeacher) { + teacherMap = new HashMap<>(); + for (Teacher teacher : listTeacher){ + teacherMap.put(teacher.getTeacherId(), teacher); + } + } + public void setHashmapCourse(List listCourse) { + courseMap = new HashMap<>(); + for (Course course : listCourse){ + courseMap.put(course.getCourseId(), course); + } + } + public void setHashmapStudent(List listStudent) { + studentMap = new HashMap<>(); + for (Student student : listStudent){ + studentMap.put(student.getStudentId(), student); + } } public String getName() { return this.name; } - public List getListCourse() { - return this.listCourse; + public HashMap getCourseMap() { + return this.courseMap; } - public List getListTeacher() { - return this.listTeacher; + public HashMap getTeacherMap() { + return this.teacherMap; } - public List getListStudent() { - return this.listStudent; + + public HashMap getStudentMap() { + return this.studentMap; } } diff --git a/src/main/java/org/Teacher.java b/src/main/java/org/Teacher.java index 8be0705..fe64272 100644 --- a/src/main/java/org/Teacher.java +++ b/src/main/java/org/Teacher.java @@ -1,30 +1,27 @@ package org; -import java.util.Random; - public class Teacher { - private final String id; + private String id; private String name; private double salary; - private static int indexTeacher = 1; + private static int idCounter = 1; public Teacher(String name, double salary) { - id = generateID(indexTeacher); + assignTeacherId(); setName(name); setSalary(salary); - indexTeacher++; } public void getInfo(){ - System.out.println("Teacher - ID: " + getId() + " | Name: " + getName() + " | Salary: " + getSalary()); + System.out.println("Teacher - ID: " + getTeacherId() + " | Name: " + getName() + " | Salary: " + getSalary()); } public boolean getTeacherById(String idToCheck){ return this.id.equals(idToCheck); } - static String generateID(int indexTeacher){ - return "T" + Integer.toString(indexTeacher); + private void assignTeacherId(){ + this.id = "T" + String.valueOf(idCounter++); } //setters @@ -37,7 +34,7 @@ public void setSalary(double salary) { } //getters - public String getId() { + public String getTeacherId() { return this.id; } From 606071d1d10d41e5d3f6799a3f8ff6047bca67db Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Sat, 24 Feb 2024 16:38:31 +0100 Subject: [PATCH 21/66] command main menu --- src/main/java/org/Main.java | 140 ++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index bc6878a..4606dfd 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -18,6 +18,146 @@ public static void main(String[] args) { itemCreator("course", schoolName); itemCreator("student", schoolName); scanner.close(); + + + + + + + + int choiceMenu; + Command command = new Command(); + + do{ + + command.displayCommands(); + choiceMenu = scanner.nextInt(); + String studentId; + String courseId; + String teacherId; + + switch(choiceMenu){ + case 1: + System.out.println(printBlue("Enter the id of the student:")); + scanner.nextLine(); + studentId = scanner.nextLine(); + + System.out.println(printBlue("Enter the id of the course:")); + scanner.nextLine(); + courseId = scanner.nextLine(); + + try{ + command.enrollStudent(studentId, courseId); + + System.out.println(printPurple("Congratulations! Your student has been successfully enrolled to the course.")); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + + } + + break; + case 2: + System.out.println(printBlue("Enter the id of the teacher:")); + scanner.nextLine(); + teacherId = scanner.nextLine(); + + System.out.println(printBlue("Enter the id of the course:")); + scanner.nextLine(); + courseId = scanner.nextLine(); + + try{ + command.assignTeacher(teacherId, courseId); + + System.out.println(printPurple("Congratulations! Your teacher has been successfully assigned to the course.")); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + + } + + break; + case 3: + try{ + + // TODO check como se definio esta funcion e implementarla - Victoria + // System.out.println(printPurple(command.showCourses())); + + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 4: + System.out.println(printBlue("Enter the id of the course:")); + scanner.nextLine(); + courseId = scanner.nextLine(); + + try{ + Course course = command.lookupCourse(courseId); + + // TODO check como se definio esta funcion e implementarla - Victoria + + //TODO Agregar un esperando o buscando? - Victoria + //System.out.println(printPurple(course)); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 5: + try{ + // TODO check como se definio esta funcion e implementarla - Victoria + + //System.out.println(printPurple(showStudents())); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 6: + System.out.println(printBlue("Enter the id of the student:")); + scanner.nextLine(); + studentId = scanner.nextLine(); + + try{ + Student student = command.lookupStundent(studentId); + // TODO check como se definio esta funcion e implementarla - Victoria + + //System.out.println(printPurple(student)); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 7: + try{ + // TODO check como se definio esta funcion e implementarla - Victoria + //System.out.println(printPurple(showTeachers())); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 8: + System.out.println(printBlue("Enter the id of the teacher:")); + scanner.nextLine(); + teacherId = scanner.nextLine(); + + try{ + Teacher teacher = command.lookupTeacher(teacherId); + //System.out.println(printPurple(teacher)); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 9: + System.out.println("Closing program."); + scanner.close(); + break; + } + + }while(choiceMenu != 9); + } private static void itemCreator(String type, String schoolName) { boolean is_num = false; From 45614eec7deb123756037eb8b4a6e80732705215 Mon Sep 17 00:00:00 2001 From: mandril888 Date: Sat, 24 Feb 2024 16:41:00 +0100 Subject: [PATCH 22/66] creator classes --- src/main/java/org/Main.java | 287 ++++++++++++++++++++++++-- target/classes/org/Command.class | Bin 1146 -> 1146 bytes target/classes/org/CommandUtils.class | Bin 0 -> 269 bytes target/classes/org/Course.class | Bin 0 -> 4234 bytes target/classes/org/Main.class | Bin 2739 -> 5987 bytes target/classes/org/Student.class | Bin 0 -> 2258 bytes target/classes/org/Teacher.class | Bin 0 -> 2153 bytes 7 files changed, 269 insertions(+), 18 deletions(-) create mode 100644 target/classes/org/CommandUtils.class create mode 100644 target/classes/org/Course.class create mode 100644 target/classes/org/Student.class create mode 100644 target/classes/org/Teacher.class diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index bc6878a..bf71d59 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -1,41 +1,195 @@ package org; -import java.util.List; -import java.util.InputMismatchException; -import java.util.Scanner; +import java.util.*; + public class Main { public static void main(String[] args) { - System.out.println("iron shchool"); String schoolName = ""; - Scanner scanner = new Scanner( - System.in - ); + List teachers = new ArrayList<>(); + List courses = new ArrayList<>(); + List students = new ArrayList<>(); + + Scanner scanner = new Scanner(System.in); + System.out.println("Hi!"); System.out.println("Welcome to the School Manager Tool."); + System.out.println(printBlue("Please, text the name for your school:")); schoolName = scanner.nextLine(); - System.out.println("Perfect, we have created the school: " + printPurple(schoolName)); - itemCreator("teacher", schoolName); - itemCreator("course", schoolName); - itemCreator("student", schoolName); + System.out.println(""); + System.out.println(printYellow("Perfect, we have created the school: ") + printPurple(schoolName)); + System.out.println(""); + + itemCreator("teacher", schoolName, teachers, null); + itemCreator("course", schoolName, courses, teachers); + itemCreator("student", schoolName, students, null); + scanner.close(); } - private static void itemCreator(String type, String schoolName) { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private static void itemCreator(String type, String schoolName, List collection, List teachers) { boolean is_num = false; int totalItems = 0; - Scanner scanner = new Scanner( - System.in - ); + Scanner scanner = new Scanner(System.in); + while (!is_num) { System.out.println(printBlue("How many " + type + "s are in " + schoolName + "?")); try { totalItems = scanner.nextInt(); scanner.nextLine(); if (totalItems > 0) { - System.out.println("Perfect, let's create now each " + type); + System.out.println("Okey, let's create now each " + type + "."); + for (int i = 0; i < totalItems; i++) { - System.out.println("Execute " + type + "Creator " + (i+1)); + System.out.println(""); + System.out.println(type.toUpperCase() + " " + (i+1) + ":"); + if (Objects.equals(type, "teacher")) { + teacherCreator(collection); + } else if(Objects.equals(type, "course")) { + courseCreator(collection, teachers); + } else if(Objects.equals(type, "student")) { + studentCreator(collection); + } else { + System.err.println("Type not valid."); + } } - System.out.println("Perfect, we have created all the " + type + "s."); + System.out.println(""); + System.out.println(printYellow("Congratulations! We have created all the " + type + "s.")); + System.out.println(""); is_num = true; } else { System.err.println("Oops! You need to have at least one " + type + "."); @@ -47,10 +201,107 @@ private static void itemCreator(String type, String schoolName) { } is_num = false; } + + private static void teacherCreator(List teachers){ + boolean is_num = false; + String name = ""; + double salary = 00.00; + Scanner scanner = new Scanner(System.in); + + System.out.println(printBlue("Enter teacher name:")); + name = scanner.nextLine(); + System.out.println(printBlue("Enter teacher salary:")); + while (!is_num) { + try { + salary = scanner.nextDouble(); + scanner.nextLine(); + is_num = true; + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + + Teacher teacher = new Teacher(name, salary); + teacher.getInfo(); + teachers.add(teacher); + } + + private static void courseCreator(List courses, List teachers){ + boolean is_num = false; + String name = ""; + double price = 00.00; + int teacherSelection = 0; + Scanner scanner = new Scanner(System.in); + + System.out.println(printBlue("Enter course name:")); + name = scanner.nextLine(); + System.out.println(printBlue("Enter course price:")); + while (!is_num) { + try { + price = scanner.nextDouble(); + scanner.nextLine(); + is_num = true; + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + is_num = false; + System.out.println(printBlue("Select an associated teacher:")); + System.out.println("0 - No teacher associated"); + for (int i = 0; i < teachers.size(); i++) { + System.out.println((i+1) + " - " + teachers.get(i).getName() + " (" + teachers.get(i).getSalary() + "€)"); + } + + while (!is_num) { + try { + teacherSelection = scanner.nextInt(); + scanner.nextLine(); + is_num = true; + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + + Course course = null; + if (teacherSelection == 0) { + // course = new Course(name, price, (double) 0); + } else { + course = new Course(name, price, (double) 0, teachers.get(teacherSelection-1)); + } + course.getInfo(); + courses.add(course); + } + + private static void studentCreator(List students){ + String name = ""; + String address = ""; + String email = ""; + Scanner scanner = new Scanner(System.in); + + System.out.println(printBlue("Enter student name:")); + name = scanner.nextLine(); + System.out.println(printBlue("Enter student adress:")); + address = scanner.nextLine(); + System.out.println(printBlue("Enter student email:")); + email = scanner.nextLine(); + + Student student = new Student(name, address, email); + student.getInfo(); + students.add(student); + } + private static String printBlue(String text) { return ConsoleColors.BLUE + text + ConsoleColors.RESET; } + private static String printPurple(String text) { return ConsoleColors.PURPLE + text + ConsoleColors.RESET; } + + private static String printYellow(String text) { + return ConsoleColors.YELLOW + text + ConsoleColors.RESET; + } } \ No newline at end of file diff --git a/target/classes/org/Command.class b/target/classes/org/Command.class index 75e2ac058898f143e8bfcd78c4f4f84eced833c0..c96251f2264c3994af295623061b0c3001a374b7 100644 GIT binary patch delta 73 zcmeyx@rz@F95W;9WO?QWRdxmrAQWKWWRPIsVo+e delta 69 zcmeyx@rz@F95W;HWO?QWRaOQL1~vu(26hGsAWMOPlR<-li@|__o56yChrxk?m%)R9 YZ}Jgl3r2y-f0=zI|6!JxoX8>x0EXcVH~;_u diff --git a/target/classes/org/CommandUtils.class b/target/classes/org/CommandUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..29990aeffdfa40ebf7debdd3fc2dfad9ff7b0813 GIT binary patch literal 269 zcmZ8bIS#@w5S-0HAl&?b4k*Y2I2t6X2nvqg2^JV7u@nOTqC%qJ0Xzz^MidBJn)S@= zuIKr>KLAY7@?pXD;MCxvL}(qwMFfe+_Q5hb%D5nu#wt_AlwkMzTMuP!()m7^=`
S!S7y5X w`^(T|Ll+)LHi!6fXvPY&;KKoTa06Xgu;4Qq8?aGjtbN`t*E%yogV93s4GzXPM*si- literal 0 HcmV?d00001 diff --git a/target/classes/org/Course.class b/target/classes/org/Course.class new file mode 100644 index 0000000000000000000000000000000000000000..642075ba349836b419ed5c16cf6e6f0417bc9895 GIT binary patch literal 4234 zcmai1?Oznv6@F$}c9vxjL_m-VTcd&t2+_QlKnwy^w*j;PQAv#syCaM&Gh}zxgr;fQ z+BQkw()Vc7q)ly0U(&{yxJJ{a{nQWrC)&RwzqaXfW@eY!Ws~w_=ia&Z+;g7u+;h&o z^N;`D{Q$rt_-hOy)Tjt+s6|9U(w7x>2*51ht6EjZMv=)aw zwOchbW1E5~Wlv_!6otdR6W&~_hBldNF;*l98n! zy^{jXf2V~yqWP4Do#>*4l#4i-R?xf|jY!5dd>XqH)R}3zV>zNyNye}ndsOVz(1YGG zt~^KR=Vd*UH%?p>Ka=}5>ux6L2@QSdSFn9WUpB^VE2TT9O=pR{oTFP#PQl)49Bo!6 zK=*4H#E^p8RgW=cLTEpr;UMl)pqaTjJ!7T=bk5h|0X(SUkcNlwaJds}ImcMxKHGV2 zd#h*Av@B8)% zVKpDcw1T)u#FzA3+_8gT4|+iFkIS~6)bKex&S1|N)}piI276NM&uTa&1ZyjSu#<_? z8qVM>;XB2cYbXo3dOU&8t2n3ONt|bLxW4BdGc!18=E!fCPVXvhN1|q)30gc8R}zp&dZ8L4NEYEFn746s5_9;!@}dTh77pd^^1m6 zOj!lx;(mS#LAHifJVk!K|a-_-Cee49k+tE+~^5;IT*(q@akY9`os zS!!aU>3bT!FWRGyU92y4Q_1P`Cm&Cae?~z=v0^aA^Nf$WsUv5KbGxh9taN&gF*0ta zxw3K6w2bNe%7T%d)fX}nYm;_L&&=srQ{Mf-u(M=x<29E%FJy)ZW5&@_%TxNQFV(=U z@+QaDq{0qWf#U5*DH(>n{Vb`Br2G>lWKu!Qd-JlUsd6c^ryT3rY7uW&h3rTW_+dh? zo8fV#JNYaKLGYb1gcbZiROVrVEh;Dapb z+ytqLh3H5ss5)oe|{)gYC=pr`aWkA{qq+dXO9%lXyeO`Zlv$`;OY zSA&y&VR|Bf*wQ}MonJ)20W=BtXoDCqiRQPvEP7~Vaiyq3Xz z^2WkmNKQew<#F$}JeAy*hY;JC+*jD{zz;aC;D_$q7~g*sc%Q&l&eh__eEx(IFQEo1 z+wR0|D2W2pL|*|~qPKviM0>b^mPALSfbDO)%3k5K%N5^>Ft2J+Y(oQD*lR^QuV-D@ zj;oZpj|Qj`*YH!e(i7;4+Y|8OShpOi)FM4`Ai{Z`Mn0@Twjy7fco&^F*a<<5i;#FI zMl?^rHxiQDC`ZJn391#jw!}?zpABDl2i@=Cp1arw+(PGuD{}D_hgu0?Lt~q-QIX@y z*EmSYBAkJ@xF`r`S732%X)!Od{^ArVuHl-FL{9 ziM6B<(sv6-eL|+H5b^*Cd60xWL_$UaaD#++5f&tbcSPUdyl=3x@9$`*%@dI~&?IeB zh-cQCJDs{alyD1^R~9eyJH4bka=0xq%eSl3WHaAW4!w^nXK&-{lZkS6x;EJ9BR$_J;HBp8@Ns(mqkl4NU#?{6 zBJ*RB#ea!K!DJy=E-|!=AKyiW4!OL@kurqe;&=3MgCUu_PTz&0EeQPwjVi8?qz`eA z&(ZI>?hmCByVGTeNf2gnmH1Ku^|^r?B2^}YKjKfGLcB$ZTki8V?ri_@% literal 0 HcmV?d00001 diff --git a/target/classes/org/Main.class b/target/classes/org/Main.class index d9a78d239a4a937bc234d54b54c14a6bcea2f0f1..69cb4b744ef8dd38c5d53542f3a1f544d1cba662 100644 GIT binary patch literal 5987 zcmb7I33yyp75;B#GH)_@U6_)V04=Z3(yUEOOK6iW&~!^l(n3OGTb8~~UXy7j^TN!V zmaqtgvZE}rmPJ7^f~bJl)g2YZ1r=97QQQ|01Vs^B|8w7)WM&XFzubl}yopv&17>Dr&jxZ6&gb_1!4rV>4 zU!f$KR;Xyxnn|~zH9e5?I=zfz_czC2qC$L}sBlzOQIYDkGQ&|ODseQOb#wH6*w~s( zGMzUT#jzAvnVcHK6dY&3GBFj$=Og0G1;Pr(fT*U#wP0eM9y*px_clvPrYW4z?W7WJ zzhil><@GsMXQIz_Q&zj3wtJn7)y0>YQJko7;+m9WXPr9Bb1v|-XxgUQW;bIEy19&% z)rw6qRH52Hjfq;+DMZ~&Z$rB+`6<)xEJ@`Y8Y||IpPWJ;C3!PVG+-7jr8#d~GEMCx ztExxKMsbqD^fgXqGr_O3wmVjzz0I)_M8R`u2~W(fF>waY5H^V3*$Oj?xYb(Ji*s?FfsH0? zY#Px8{B}Y}BhL9bJH>|)HvP{*9t-+UbM<<`s>g(b%?e`!{0_r4A#kiP^`g*cB8e>u zV|)Y-%bzexel&EVpEA*}Ck#*v3`mP{O$_K3<76^XkTT=C1_vA~?RwTWJC*DqwZrI& zvsrZ+*rs3&w?f_0+LPIS+e`EzACaw|o8odr#w%IMmb-3QZ4JO`)_Y2~BDX74&a&#Q4t8UIus}}Sz0<^9QYqnV@4cQE-f_JD~GOM=Td)~WLzM+6T_>3me7s;YH#e_C3kb_{%sAPF2Tx@*KRgog!< zk1I?ohQ`vi0_?aFiNYrYn^{qO>Tvb~0_W5E*kP*VKiEAPC!1x~KFu}3M9>=q zCIg=dc+#0~VNYO>c(zwzei6?`$2)pN+L$>V zm!l1E1q&EO6XX5w!@Y;R@X5-L(IAO@G_w8{h?5p*1p6X-JaJ@b>?T2Y#}$Z6EiD*< z_#&!KDJtO;s96Mxn+Sl^5-O>nT4npikdH60SG-$EhCRB-TqWF;lp$Lf+j=s49vc-+ zt>+id_3TtD*HuP8rqi<%Tifk{JZ93gsNlCKDlDbUh`_io>SAYxgJk>lt|v0JXb>Tb zt~1%2w!K`2CQtfr&HbJEt6ocR*qx*RIH{(4-kE%gBwRL52Gz;3OgPJv(m%_DY%`_P z(a9yQ>t(%+J<#rWeQr;7Tm&!2@CyE7;8p1Yud#r2Q`8GvGQG{+>NNOEuD|P9ZYQ|; z7*x2ku$lrv-{?v^-IH>%)7o5jYi^)$p$vASK5&II_=>VP6%j9Ff4&=!Hqm0IQk~o% zHAnF}o1;=HiodagtaP_q{dRiLQd!H+I94)ksl`#eNkXpP>I~LdDaV_U4YrM38n;{0 zhAqWK?4L}ivK0HxzZB{ie{Y8HrEH-Q7r^d!>^SLw-gT-hb^pyh@91?>?@(=zbJ|(Y za?_5U=a7P_xCSVzO1*UXBh^tl5A&D}vzq73?N_|_M^z|4a&ms8G(R%OAK`1OoL*W| zTxguEp?Ln8J_^fX5E+Vxq$%$%$|~^j6L+cfzr<8F{=F-Iy%*6N3Bny_mtr%F^AaZ<7zR_hL@%UNpw%^I<=lfk4vWJ-)cM zPVL2M@nyC3b#h-(TN#!C(QlOiLOOsY7|-Vj-wc$q{ZF9d$MUHPV=xP2d3qSn-T4t{ zWurl_WNKiYsGagp6v-B?=5TYYy$>3z6UB=)0I=PlG|R2UVd58xb0tz=NX?#5Xa zMtI|Xtk*&{@x^;_&RvKxqlqEZ)x?+S_wu^>z33gnF*WfOhXu9{q5N^AG_5Z&1*7zhsDx%3J)Ec&UhbV4rbsv{0uqfM~HYi zvjq5MUMfeRC<7K|TiY0iR$Vd^KP5!JTs^7=6 zWYmjf&=2rKJ`pGUh>VcGHv(?R(~mVbz<`vHNEV&WKOPVDSJWp-1 z^C03%88F|*$!hlaamHIHomRfYKrT*(@Osnj-$oFc8llz>alw)q8LSzmZi})l^3I;o1^(3p{gh z8mXFx=S&<)N0yV;E9lfpy4A{pIGtd%5ukP^zk?cUnB+5<)HA8OmfD@v=%U0~yz<1z z)8ZyFu@@V7@HtzjTP!UPk}MtOe4R$=POeU)w6GLjVB$+CxrNaEoGG4wbAz(m#Br1}mSxY-{#b{DEDIe5wZu-xjq!wZKFz1$S_Uxt(WTxg+aeZbd}$J@yMP-C;$K#fr!- zM20Z=0EX7p9~B;3TM-HO9JX1h-ZEDHZ}}9W-42~l{iqGsi27$o zt3OmkJ%m4KAODCy@xF-O{F%o7s;_V8>)-YDANu;1zP_!m2j$9GdD19gSw$N&HU delta 1438 zcmZuxO;cM{7=BKY%gx6L#Y=#OuLepeBrVWDu}uq9unI~oNNsJa7Mk8#1Og^Eidw~J ztM#Mf#M3Tx;X)TIoN+A9&`M{za^=Q9;KCUf{sqTziqE;hDU064d(L_9`@A2|dG7tQ z>!+IFuMalv0~o-KQZQY*5D7_yO;k$kKvk)j@&{l^7^p7YYw}CfNYtXP^hYcb74VME zwgl0DMiWgE&DfUO0djdEn@f4mWG;1$AV_Aozc65$e@E~Qui)S?ES(Z#RS@0nhfW&hWCs4;gJD0P_ zSIWfmYR-s@ld5F21uax)tcjHR%Kx2O48&A8ct}kJld3z^Tgkcda7+|*<~P(*=ojCz zK)Z^0;y&TW+iFnOhpq_3ChXiLJL9Nn8Ey9CJpt?3vYjb7c1&zB5o7%O0&T=b)%P+i zK2Sf)WZzW**>JAsaBts&;JV<)NB?^cls!C-WwUl}WPT=}xAP`GQAfg^20jyLRzu-t zbv-Os;^aU-2B|YRlfY@7y15GNP27RF&5Z{y((2dRo}rcH0G!1+o&tCYFVmyJ_sOW2 z>q*NTzlXq?HH7ZqvEyrqSUcBIuh-bt+PZQVZQSo&M`D~Wl6TRyf&Bn|Rv%COR@${k zv}M%b!)8)!0r0a_0F?+)##*wK=%moQP{j|x!U(D{h6r!67E`Em8;_Nn!z(xstne_2 zY0R+qN^0Z+GMqK2^;n)p6ex%a7P{pf@D4s4C+%ze8b!98NN(T>pgc#^w~i+VwN0FE z`UXS#{RT$edA$8bjnVWiqS{$w_@+15+KQg^sv%Z4|0>6hyRp83RqR;9ae^mY$Li+I zv{BAWw>3r7>Sob9aGPDW;R^FiauR(q|=YUdy#dkERq%ezo@j= jne9#2zUA6?T>GwTS6o|k?T4TNUNQ4Z-P)VZ;-3EFzdXZ8X zd1gJgay84{%{|*4*)J?~Af>nj?`GxH?`p|D6tuX+tFci8s1E-eT+A6Loq#Kr7 z_3F_gGrv$e>W~-wkj5}Z6#4?M95ftvSK-ua&v56+n(s#jV+KxXjN=`J0k5%}D+kT0 z?J}xAP?V8g203gh#~Jte0MrZmopZ<@ZhtJQ|>`(i$? zkri_v&3EgTQ+`_h|&d=%C_p1HG^v!ABwETZj`Rr zu4}A_ElpcnT6v9|VFhRo)5@?JRy97xCkhjFYu_$-Zp8{7JHZ}jeqgzQukbWMzT<-a z7fak1M=N#*1p{jucSZ5BuyKy2$=nVk>6)vs@;_r)*k<7hUX}U}mmJsLXx4Y^#-_DX zqa{=FDpqaVYB;ivjXlAh!{i6UYQ_DRXZ5IEypkU5=Q1iKPX)WVt+djtZ+;w}Z~slg zk%AT7A3T<+%x0+A>y8AYWA@9U1Uur6=LLSyunr#B!Jb$3hf`qdKE{^@zLL^?tuPyk z7OLvF&%J${=S2=!RLym(5_pY6g`eBCiyb4vabXcjkdv9@P`#71&ph9|0vC#9DouO!a8Kq5a z8vyHkf6CR5^zY#~ZN7vu|A5iL;0uhJi!Dr;ms*%Kms*(qHN@ZJ`z%s?4-zwsA&g)Q zqd3jI&v91dFJ{Ds`}mA2@`lltu$PmSm<0xLe=Ig0n;iSdyT#`TzTqm(*|+!}J2>+Xz)rhn literal 0 HcmV?d00001 diff --git a/target/classes/org/Teacher.class b/target/classes/org/Teacher.class new file mode 100644 index 0000000000000000000000000000000000000000..c034fb343d9c0ad1dd402698b278b17bc1843be2 GIT binary patch literal 2153 zcmaJ?YgZdp6x|m>CK-kRX?c{|8Wh?jNMp4=+5jq{NHnF@M5@$BFUf5(Fw9_P=#sVk zA^r&0QmbGWAN&FSD3|BV3?T`lA2RombN1b5-+k}>`=8Ul04!ry#{dR3#0(4}E-Uz<}8hNMDR$$VmfJm=@4n zaU?u-`+ zyq2bIDHwPYw*{v5<(?`zc3papO|L~g*ORvA3fzsT_o4!8k$m399S!doc$X!-ea~KF*1kx{!m)PsAmTP>lAa_I#%$3h7S#V#2y$w-}18U zsV18y;W@$fry)?{%E=!$BI=7Mh7GfB;A1vS%qC@dqHN$3d`i^ZaJvNoPDTKd2`H`P zG{``s71LImhx<%U0PeRZSpvrjCn1SiXEwR`MwxzY}tP12&8B`!vnB- z#HQ%cCG>f2oA%vo)SOaF)%Qq(rMeZKF}>;>w(Dx$WC})zbcKqdF@_CWPZ%>u?c#? zVWEBkb-E^Mf^;g|bhVT$>AK3*@Qe^H$PiVXhL*tf{|_Y}1yay8k)XR0h#}2a6!iw! zd45ZVqgLlj(QoNeK!yDLfJQC`DF>L%{|S+Q0qrG5jxnBJIKf0ddx9%86?^(SwBIOb z0GsrkL7cwBlx84>5n3*VX}U%;7{f#QCqs|~h)4L0TJA9s;rE!z0QEm7jDWy8k>UTQ zU*KB)1h3QYCjIiKxCNZxt@CyHF#sV=VZvX>2=c;p1gfZon9CH&vB~@&7^h0!`2{wgf;&kSS&nOLT^HdRq)5a5R24b zRIaP2p^n1zPDCW%?@wNgOr{5=lgt(fR^IrfPtMyB$q8(A{Bq4trQ}#>O5vL_*w-Yf e^VkRc5?@i9BJH;+;i>=KL4)RW8Y?tm;>y3nZ?3lh literal 0 HcmV?d00001 From 3b3ef7341708feeffb7557a35e3a2f94172504a5 Mon Sep 17 00:00:00 2001 From: Katia Date: Sat, 24 Feb 2024 18:45:17 +0100 Subject: [PATCH 23/66] =?UTF-8?q?a=C3=B1adir=20assignTeacher=20en=20nueva?= =?UTF-8?q?=20rama=20desde=20cero?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/Command.java | 17 ++++++++++++++++- src/main/java/org/Course.java | 17 +++++------------ src/main/java/org/School.java | 16 ++++++++++++++-- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 706c2d0..de96557 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -2,6 +2,8 @@ import java.util.List; +import static org.School.getCourseById; + public class Command { public void displayCommands(){ System.out.println("1. Enroll a new student"); @@ -17,7 +19,20 @@ public void displayCommands(){ public void enrollStudent(String studentId, String courseId){} - public void assignTeacher(String teacherId, String courseId){} + public void assignTeacher(String teacherId, String courseId){ + //find course by id, getCourseMap() tiene que ser static + Course course = getCourseById(courseId, School.getCourseMap()); + //find teacher by teacher id, getTeacherMap() tiene que ser static + Teacher teacher = getTeacherById(teacherId, School.getTeacherMap()); + //set teacher to course + if(course == null){ + System.out.println("Course doesn't exist"); + } else { + course.setTeacher(teacher); + } + } + + public List showCourses(){} diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index ecd58af..1f1e8a1 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -18,7 +18,8 @@ public Course(String name, double price, double money_earned, Teacher teacher) { assignCourseId(); setName(name); setPrice(price); - setMoney_earned(money_earned);//no se asigna manualmente + this.money_earned = 0; + //setMoney_earned(money_earned);//no se asigna manualmente setTeacher(teacher); } @@ -66,8 +67,8 @@ private boolean isValidName(String name){ public double getMoney_earned() { return money_earned; } - - public void setMoney_earned(double money_earned) { + //se llama desde otra clase cada vez que se asigna un student + public void updateMoney_earned(double money_earned) { this.money_earned = money_earned; } @@ -79,15 +80,7 @@ public Teacher getTeacher(){ return this.teacher; } - // TODO - move to Utils - public static Course getCourseById(String id, List courseList){ - for (Course course : courseList) { - if (course.getCourseId().equals(id)) { - return course; - } - } - return null; //volver a pedir id al usuario... - } + public String getInfo(){ return "{" + "Id: " + getCourseId() + "Name: " diff --git a/src/main/java/org/School.java b/src/main/java/org/School.java index bddcdb8..95c7cf1 100644 --- a/src/main/java/org/School.java +++ b/src/main/java/org/School.java @@ -1,6 +1,7 @@ package org; import java.util.HashMap; import java.util.List; +import java.util.Map; public class School { private String name; @@ -42,14 +43,25 @@ public void setHashmapStudent(List listStudent) { public String getName() { return this.name; } - public HashMap getCourseMap() { + public static HashMap getCourseMap() { return this.courseMap; } - public HashMap getTeacherMap() { + public static HashMap getTeacherMap() { return this.teacherMap; } public HashMap getStudentMap() { return this.studentMap; } + + // prueba para ver si funciona + public static Course getCourseById(String id, HashMap courseMap){ + for (Map.Entry entry : courseMap.entrySet()) { + if (entry.getValue().getCourseId().equals(id)) { + return entry.getValue(); + } + } + + return null; //volver a pedir id al usuario... + } } From c8bef80f21f952bbf27ec56eb02ed05c090edaeb Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Mon, 26 Feb 2024 22:43:45 +0100 Subject: [PATCH 24/66] add methods show all and look up --- src/main/java/org/CommandUtils.java | 26 +++++++++++++++++++++++++ target/classes/Main.class | Bin 1192 -> 0 bytes target/classes/Teacher.class | Bin 1074 -> 0 bytes target/classes/org/Command.class | Bin 1146 -> 0 bytes target/classes/org/CommandUtils.class | Bin 269 -> 0 bytes target/classes/org/ConsoleColors.class | Bin 2905 -> 0 bytes target/classes/org/Course.class | Bin 4234 -> 0 bytes target/classes/org/Main.class | Bin 5987 -> 0 bytes target/classes/org/Student.class | Bin 2258 -> 0 bytes target/classes/org/Teacher.class | Bin 2153 -> 0 bytes 10 files changed, 26 insertions(+) delete mode 100644 target/classes/Main.class delete mode 100644 target/classes/Teacher.class delete mode 100644 target/classes/org/Command.class delete mode 100644 target/classes/org/CommandUtils.class delete mode 100644 target/classes/org/ConsoleColors.class delete mode 100644 target/classes/org/Course.class delete mode 100644 target/classes/org/Main.class delete mode 100644 target/classes/org/Student.class delete mode 100644 target/classes/org/Teacher.class diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index d80b68f..59a9c78 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -1,4 +1,30 @@ package org; +import java.util.HashMap; +import java.util.List; + public class CommandUtils { + public static void showAll(HashMap map){ + map.forEach((id, obj) -> { + if (obj instanceof Teacher) { + ((Teacher)obj).getInfo(); + } else if (obj instanceof Course) { + ((Course)obj).getInfo(); + } else if (obj instanceof Student) { + ((Student)obj).getInfo(); + } + }); + } + + public static void lookUp(HashMap map, String targetId){ + map.forEach((id, obj) -> { + if (obj instanceof Teacher && id.equals(targetId)) { + ((Teacher)obj).getInfo(); + } else if (obj instanceof Course && id.equals(targetId)) { + ((Course)obj).getInfo(); + } else if (obj instanceof Student && id.equals(targetId)) { + ((Student)obj).getInfo(); + } + }); + } } diff --git a/target/classes/Main.class b/target/classes/Main.class deleted file mode 100644 index 7ea811007d7a68ae0d3ff2357e003f9834ae4d51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1192 zcmaJ=+fEZf82*NqZd;dw1&Vk;)K*(i>RE9SkXEE-L6edi4SWP& zLoXn~#0T)!_c8v{Z9+*KH<_LJPv7?+W`6%Y`vu@N%1MkMVjyZ_6fuU$1AfE{F83OR z5BmqArWj(Yj_0T~hDa`7H4tYo_5`mrg&#+fVf1~+b$D#!&sPEjk}xo?!6q2eIr|*0 zqI}0|SfzY5fy+o4m@+YqnG2Ma<3NcPG06@Q&xFyAEPSL;MF4`gEKM+L;tJ-7yCGD$ z&M=+J4>D=TYbLI1M}r)9c}r;ByosAwU`UXz!d>nkcS|d!DEr$c?jXZ3+v10!D7_k2 zpB&YsQ=qt~0)~|#H4So?hURk@_YCArVl+mUk209SIN%( z2Ki47F;ki57ABUDq?gNYbclXU&o z46N&xZ!l!euZrUx$wN^HZ%jCaEnZVnPwHELTY8Qm=r;H2t_U)=l!u+RHCR=j=0f1! zaa#;=?=L)j3s(PBdk{tLx)nzWD~?TucvHH3fzb!E?0Ld3x;zL(VBjr7cA&yxi5qyw zF#ms7J;rX8xP>Kp!1@~jy$8hT|A3?d?Tq%(#Z$2FUGp;iwHb(z88AZ!Jj5fC5_pU! zq|w2gfHY|KCydXj#569QV$A-5$)yvdXP{XlBs zn9;-!;3x4@7|$ym7=~%`-hJ<$d(OS5@7JI2KLNbNGXn}#9h!+4;sQ%&_B*@WvAuTr zb>qxw1_JRHuIB~^0&1aH*D-eq8U${q{KocLy{-Wrs$Awxm`Dofp7TDac&ye6m14!f zB9?TdOr)_akeY}Pg8rGrT7M!|$ zHd2jd+^38m8a*ELAM=@wwVj|s7czwz#&LS4N7E-5UCzee$(D^;Z{RnbBUg4~MuL0N zeQa_}g|9^AO3xW7(u8p5?A+s^Hi}#=o<0&8hB?pZ&)}- z#wrbwvkF7p{1OtCxaLR%B%r}S67&3JCdHH3#RBdyV=+To+{GSu8Ob(87|BKyVsj|t z9&tkc@Tj2!X5;{It8|X7iJpA(;8ToYIpoidP-Fgh#4qH77;~u{PjcnYu`|t;CD-bI zxMYWd-+erYxXR%fh*@8e`Akv;(gx`!upZKwVH}HE5_mYXcx$?NV`lLqJRU16BVsD= Pe40|;o>}}PL_Pfr7XYW5 diff --git a/target/classes/org/Command.class b/target/classes/org/Command.class deleted file mode 100644 index c96251f2264c3994af295623061b0c3001a374b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1146 zcmah|?M@Rx6g|_H?zU_x77+YE2ES-gTfRY2(GZLzjhdA7|8zUFL$nKtkpT|Nq1)xh zK}ekFRJ!U|xqryFN!sR+Y{V1$4g=r1ifzJdaH4My=|&&X?-G6ID!K`?ai8c1eoPge zQ8C=@2FjJsxbEFU2TQtfV@ZoFR2asCuv6O)dOhK{88Z7pTQU^u%9ro@y_O7*M9U*f zsUEn(Yl=|mvoU7ku8J56^}llL61%OUQ%{_ktU5v_!)y$u$gnhGFr!ArkTYF5Bypw7 zAq@6lG}>Pf$v}?=^CYfmiT33i)C*U>QMwq%D68u42a71v2dpySFlRbbcK8Lrs=&@ mT`3{*fzuFmeQQ`xs$$rnovv{6|H-DWNVat;**0lOVdpn6z45>R diff --git a/target/classes/org/CommandUtils.class b/target/classes/org/CommandUtils.class deleted file mode 100644 index 29990aeffdfa40ebf7debdd3fc2dfad9ff7b0813..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmZ8bIS#@w5S-0HAl&?b4k*Y2I2t6X2nvqg2^JV7u@nOTqC%qJ0Xzz^MidBJn)S@= zuIKr>KLAY7@?pXD;MCxvL}(qwMFfe+_Q5hb%D5nu#wt_AlwkMzTMuP!()m7^=`
S!S7y5X w`^(T|Ll+)LHi!6fXvPY&;KKoTa06Xgu;4Qq8?aGjtbN`t*E%yogV93s4GzXPM*si- diff --git a/target/classes/org/ConsoleColors.class b/target/classes/org/ConsoleColors.class deleted file mode 100644 index 883c2c58c18ef1bea1e007c7613f1529aac31033..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2905 zcmZXVd0Sg$5XI+00+$d56muGHn6B4Km6Z{Ty4YMVRO+*Z@>dK+=*h_eA;ocb2e?1>L99tq%)JY={%_ov2$uBH|3zZNvgZp znVKKPJGV$}H)_GTiOD>Smq>9BiXpel#bnk&Ut3)z;k9a`Ra3uQ>fCS0?bj$fMB%18 zy{3(n5Q#hQ;LeROBm%eJ>9ud9JtA?24$feNt3}`-AvcIo_KCu2B3_!A%vd_-OlEl2 z*Sh+UmuVem(rQXnP8RW!Y5jocoG)tfX~U!#IAyn+Qp=9WoHc5)YC~2GoVeRftmT}@ zoIB#>*7}U-Dt!{iZakNT&88div-d9y@zHa$Yi+^PRC2A}>Zv-nmJ6QTNUg;~o~Scx zdBu|(iM6=ui7KyFk%RMa+ORpfxykW~yiIqylNcBo=By$2>>33t>@MIiCk>m^YqVpc zan3F|zec=QL{8c1onRw9AQETnk~3_?hehOso!%)n(qkfVzOXsRMteduP8V(Lr!PMzGUtpow$wMA6a$BiNmy*Y?|4xhoEXbwcGlNl5uIblB({FT>*C<- z5r2dIH@qb}4iSUsx)m5_77{h4O5nR$?~AK>ctDtFqo{x&m>{g{G@(wdLZ0 zlKb`lU64EYR;10;j_a0am^M-eg$M^9)IwqKI>p`KsNxv-9K{>Jy^8z5=PK?8pRf1= z@P&#ugD+BiG5Au&mw~q_-VVM(@s;4X;sNkZ#e?8oig$yrQq1{B6z>J^S9}e4RB;kK zrZ^2AS3Ci}PVqtT^@=m#DaAK{rxoYHvx?`y^NMc*->mo+@S@_|z)Omk!9~TlgAXe% zf$vaU23HhU!FMUHf$NIbz;`RY2YjF6`@s(?ehB=C;zz;96+aGsQt?yZXB0mReqQkj z@F~SFfL~JlGWb=+uYuoC{3iHq#qWUMQ~W;oL&YC~KT-TC_;bZyfWK1wHTYY_-+_Nn zd>Z_d;-9gJxHG8@&tI{TahHjL+s}}7+Fj8zc(P2?O26S5c0UK{cRCBQ=np(w=+FNE DV65bB diff --git a/target/classes/org/Course.class b/target/classes/org/Course.class deleted file mode 100644 index 642075ba349836b419ed5c16cf6e6f0417bc9895..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4234 zcmai1?Oznv6@F$}c9vxjL_m-VTcd&t2+_QlKnwy^w*j;PQAv#syCaM&Gh}zxgr;fQ z+BQkw()Vc7q)ly0U(&{yxJJ{a{nQWrC)&RwzqaXfW@eY!Ws~w_=ia&Z+;g7u+;h&o z^N;`D{Q$rt_-hOy)Tjt+s6|9U(w7x>2*51ht6EjZMv=)aw zwOchbW1E5~Wlv_!6otdR6W&~_hBldNF;*l98n! zy^{jXf2V~yqWP4Do#>*4l#4i-R?xf|jY!5dd>XqH)R}3zV>zNyNye}ndsOVz(1YGG zt~^KR=Vd*UH%?p>Ka=}5>ux6L2@QSdSFn9WUpB^VE2TT9O=pR{oTFP#PQl)49Bo!6 zK=*4H#E^p8RgW=cLTEpr;UMl)pqaTjJ!7T=bk5h|0X(SUkcNlwaJds}ImcMxKHGV2 zd#h*Av@B8)% zVKpDcw1T)u#FzA3+_8gT4|+iFkIS~6)bKex&S1|N)}piI276NM&uTa&1ZyjSu#<_? z8qVM>;XB2cYbXo3dOU&8t2n3ONt|bLxW4BdGc!18=E!fCPVXvhN1|q)30gc8R}zp&dZ8L4NEYEFn746s5_9;!@}dTh77pd^^1m6 zOj!lx;(mS#LAHifJVk!K|a-_-Cee49k+tE+~^5;IT*(q@akY9`os zS!!aU>3bT!FWRGyU92y4Q_1P`Cm&Cae?~z=v0^aA^Nf$WsUv5KbGxh9taN&gF*0ta zxw3K6w2bNe%7T%d)fX}nYm;_L&&=srQ{Mf-u(M=x<29E%FJy)ZW5&@_%TxNQFV(=U z@+QaDq{0qWf#U5*DH(>n{Vb`Br2G>lWKu!Qd-JlUsd6c^ryT3rY7uW&h3rTW_+dh? zo8fV#JNYaKLGYb1gcbZiROVrVEh;Dapb z+ytqLh3H5ss5)oe|{)gYC=pr`aWkA{qq+dXO9%lXyeO`Zlv$`;OY zSA&y&VR|Bf*wQ}MonJ)20W=BtXoDCqiRQPvEP7~Vaiyq3Xz z^2WkmNKQew<#F$}JeAy*hY;JC+*jD{zz;aC;D_$q7~g*sc%Q&l&eh__eEx(IFQEo1 z+wR0|D2W2pL|*|~qPKviM0>b^mPALSfbDO)%3k5K%N5^>Ft2J+Y(oQD*lR^QuV-D@ zj;oZpj|Qj`*YH!e(i7;4+Y|8OShpOi)FM4`Ai{Z`Mn0@Twjy7fco&^F*a<<5i;#FI zMl?^rHxiQDC`ZJn391#jw!}?zpABDl2i@=Cp1arw+(PGuD{}D_hgu0?Lt~q-QIX@y z*EmSYBAkJ@xF`r`S732%X)!Od{^ArVuHl-FL{9 ziM6B<(sv6-eL|+H5b^*Cd60xWL_$UaaD#++5f&tbcSPUdyl=3x@9$`*%@dI~&?IeB zh-cQCJDs{alyD1^R~9eyJH4bka=0xq%eSl3WHaAW4!w^nXK&-{lZkS6x;EJ9BR$_J;HBp8@Ns(mqkl4NU#?{6 zBJ*RB#ea!K!DJy=E-|!=AKyiW4!OL@kurqe;&=3MgCUu_PTz&0EeQPwjVi8?qz`eA z&(ZI>?hmCByVGTeNf2gnmH1Ku^|^r?B2^}YKjKfGLcB$ZTki8V?ri_@% diff --git a/target/classes/org/Main.class b/target/classes/org/Main.class deleted file mode 100644 index 69cb4b744ef8dd38c5d53542f3a1f544d1cba662..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5987 zcmb7I33yyp75;B#GH)_@U6_)V04=Z3(yUEOOK6iW&~!^l(n3OGTb8~~UXy7j^TN!V zmaqtgvZE}rmPJ7^f~bJl)g2YZ1r=97QQQ|01Vs^B|8w7)WM&XFzubl}yopv&17>Dr&jxZ6&gb_1!4rV>4 zU!f$KR;Xyxnn|~zH9e5?I=zfz_czC2qC$L}sBlzOQIYDkGQ&|ODseQOb#wH6*w~s( zGMzUT#jzAvnVcHK6dY&3GBFj$=Og0G1;Pr(fT*U#wP0eM9y*px_clvPrYW4z?W7WJ zzhil><@GsMXQIz_Q&zj3wtJn7)y0>YQJko7;+m9WXPr9Bb1v|-XxgUQW;bIEy19&% z)rw6qRH52Hjfq;+DMZ~&Z$rB+`6<)xEJ@`Y8Y||IpPWJ;C3!PVG+-7jr8#d~GEMCx ztExxKMsbqD^fgXqGr_O3wmVjzz0I)_M8R`u2~W(fF>waY5H^V3*$Oj?xYb(Ji*s?FfsH0? zY#Px8{B}Y}BhL9bJH>|)HvP{*9t-+UbM<<`s>g(b%?e`!{0_r4A#kiP^`g*cB8e>u zV|)Y-%bzexel&EVpEA*}Ck#*v3`mP{O$_K3<76^XkTT=C1_vA~?RwTWJC*DqwZrI& zvsrZ+*rs3&w?f_0+LPIS+e`EzACaw|o8odr#w%IMmb-3QZ4JO`)_Y2~BDX74&a&#Q4t8UIus}}Sz0<^9QYqnV@4cQE-f_JD~GOM=Td)~WLzM+6T_>3me7s;YH#e_C3kb_{%sAPF2Tx@*KRgog!< zk1I?ohQ`vi0_?aFiNYrYn^{qO>Tvb~0_W5E*kP*VKiEAPC!1x~KFu}3M9>=q zCIg=dc+#0~VNYO>c(zwzei6?`$2)pN+L$>V zm!l1E1q&EO6XX5w!@Y;R@X5-L(IAO@G_w8{h?5p*1p6X-JaJ@b>?T2Y#}$Z6EiD*< z_#&!KDJtO;s96Mxn+Sl^5-O>nT4npikdH60SG-$EhCRB-TqWF;lp$Lf+j=s49vc-+ zt>+id_3TtD*HuP8rqi<%Tifk{JZ93gsNlCKDlDbUh`_io>SAYxgJk>lt|v0JXb>Tb zt~1%2w!K`2CQtfr&HbJEt6ocR*qx*RIH{(4-kE%gBwRL52Gz;3OgPJv(m%_DY%`_P z(a9yQ>t(%+J<#rWeQr;7Tm&!2@CyE7;8p1Yud#r2Q`8GvGQG{+>NNOEuD|P9ZYQ|; z7*x2ku$lrv-{?v^-IH>%)7o5jYi^)$p$vASK5&II_=>VP6%j9Ff4&=!Hqm0IQk~o% zHAnF}o1;=HiodagtaP_q{dRiLQd!H+I94)ksl`#eNkXpP>I~LdDaV_U4YrM38n;{0 zhAqWK?4L}ivK0HxzZB{ie{Y8HrEH-Q7r^d!>^SLw-gT-hb^pyh@91?>?@(=zbJ|(Y za?_5U=a7P_xCSVzO1*UXBh^tl5A&D}vzq73?N_|_M^z|4a&ms8G(R%OAK`1OoL*W| zTxguEp?Ln8J_^fX5E+Vxq$%$%$|~^j6L+cfzr<8F{=F-Iy%*6N3Bny_mtr%F^AaZ<7zR_hL@%UNpw%^I<=lfk4vWJ-)cM zPVL2M@nyC3b#h-(TN#!C(QlOiLOOsY7|-Vj-wc$q{ZF9d$MUHPV=xP2d3qSn-T4t{ zWurl_WNKiYsGagp6v-B?=5TYYy$>3z6UB=)0I=PlG|R2UVd58xb0tz=NX?#5Xa zMtI|Xtk*&{@x^;_&RvKxqlqEZ)x?+S_wu^>z33gnF*WfOhXu9{q5N^AG_5Z&1*7zhsDx%3J)Ec&UhbV4rbsv{0uqfM~HYi zvjq5MUMfeRC<7K|TiY0iR$Vd^KP5!JTs^7=6 zWYmjf&=2rKJ`pGUh>VcGHv(?R(~mVbz<`vHNEV&WKOPVDSJWp-1 z^C03%88F|*$!hlaamHIHomRfYKrT*(@Osnj-$oFc8llz>alw)q8LSzmZi})l^3I;o1^(3p{gh z8mXFx=S&<)N0yV;E9lfpy4A{pIGtd%5ukP^zk?cUnB+5<)HA8OmfD@v=%U0~yz<1z z)8ZyFu@@V7@HtzjTP!UPk}MtOe4R$=POeU)w6GLjVB$+CxrNaEoGG4wbAz(m#Br1}mSxY-{#b{DEDIe5wZu-xjq!wZKFz1$S_Uxt(WTxg+aeZbd}$J@yMP-C;$K#fr!- zM20Z=0EX7p9~B;3TM-HO9JX1h-ZEDHZ}}9W-42~l{iqGsi27$o zt3OmkJ%m4KAODCy@xF-O{F%o7s;_V8>)-YDANu;1zP_!m2j$9GdD19gSw$N&HU diff --git a/target/classes/org/Student.class b/target/classes/org/Student.class deleted file mode 100644 index 63eaf1f3082cdff132d6f7573b5515a256286c2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2258 zcmbVO?N$?46y2AP41~*9kfMSZDi#>TNUNQ4Z-P)VZ;-3EFzdXZ8X zd1gJgay84{%{|*4*)J?~Af>nj?`GxH?`p|D6tuX+tFci8s1E-eT+A6Loq#Kr7 z_3F_gGrv$e>W~-wkj5}Z6#4?M95ftvSK-ua&v56+n(s#jV+KxXjN=`J0k5%}D+kT0 z?J}xAP?V8g203gh#~Jte0MrZmopZ<@ZhtJQ|>`(i$? zkri_v&3EgTQ+`_h|&d=%C_p1HG^v!ABwETZj`Rr zu4}A_ElpcnT6v9|VFhRo)5@?JRy97xCkhjFYu_$-Zp8{7JHZ}jeqgzQukbWMzT<-a z7fak1M=N#*1p{jucSZ5BuyKy2$=nVk>6)vs@;_r)*k<7hUX}U}mmJsLXx4Y^#-_DX zqa{=FDpqaVYB;ivjXlAh!{i6UYQ_DRXZ5IEypkU5=Q1iKPX)WVt+djtZ+;w}Z~slg zk%AT7A3T<+%x0+A>y8AYWA@9U1Uur6=LLSyunr#B!Jb$3hf`qdKE{^@zLL^?tuPyk z7OLvF&%J${=S2=!RLym(5_pY6g`eBCiyb4vabXcjkdv9@P`#71&ph9|0vC#9DouO!a8Kq5a z8vyHkf6CR5^zY#~ZN7vu|A5iL;0uhJi!Dr;ms*%Kms*(qHN@ZJ`z%s?4-zwsA&g)Q zqd3jI&v91dFJ{Ds`}mA2@`lltu$PmSm<0xLe=Ig0n;iSdyT#`TzTqm(*|+!}J2>+Xz)rhn diff --git a/target/classes/org/Teacher.class b/target/classes/org/Teacher.class deleted file mode 100644 index c034fb343d9c0ad1dd402698b278b17bc1843be2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2153 zcmaJ?YgZdp6x|m>CK-kRX?c{|8Wh?jNMp4=+5jq{NHnF@M5@$BFUf5(Fw9_P=#sVk zA^r&0QmbGWAN&FSD3|BV3?T`lA2RombN1b5-+k}>`=8Ul04!ry#{dR3#0(4}E-Uz<}8hNMDR$$VmfJm=@4n zaU?u-`+ zyq2bIDHwPYw*{v5<(?`zc3papO|L~g*ORvA3fzsT_o4!8k$m399S!doc$X!-ea~KF*1kx{!m)PsAmTP>lAa_I#%$3h7S#V#2y$w-}18U zsV18y;W@$fry)?{%E=!$BI=7Mh7GfB;A1vS%qC@dqHN$3d`i^ZaJvNoPDTKd2`H`P zG{``s71LImhx<%U0PeRZSpvrjCn1SiXEwR`MwxzY}tP12&8B`!vnB- z#HQ%cCG>f2oA%vo)SOaF)%Qq(rMeZKF}>;>w(Dx$WC})zbcKqdF@_CWPZ%>u?c#? zVWEBkb-E^Mf^;g|bhVT$>AK3*@Qe^H$PiVXhL*tf{|_Y}1yay8k)XR0h#}2a6!iw! zd45ZVqgLlj(QoNeK!yDLfJQC`DF>L%{|S+Q0qrG5jxnBJIKf0ddx9%86?^(SwBIOb z0GsrkL7cwBlx84>5n3*VX}U%;7{f#QCqs|~h)4L0TJA9s;rE!z0QEm7jDWy8k>UTQ zU*KB)1h3QYCjIiKxCNZxt@CyHF#sV=VZvX>2=c;p1gfZon9CH&vB~@&7^h0!`2{wgf;&kSS&nOLT^HdRq)5a5R24b zRIaP2p^n1zPDCW%?@wNgOr{5=lgt(fR^IrfPtMyB$q8(A{Bq4trQ}#>O5vL_*w-Yf e^VkRc5?@i9BJH;+;i>=KL4)RW8Y?tm;>y3nZ?3lh From 933d6c2a296786f16c2b7bbb9a36b94902b53f20 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Tue, 27 Feb 2024 18:12:27 +0100 Subject: [PATCH 25/66] update command utils --- src/main/java/org/CommandUtils.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index 59a9c78..f366ae2 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -7,11 +7,11 @@ public class CommandUtils { public static void showAll(HashMap map){ map.forEach((id, obj) -> { if (obj instanceof Teacher) { - ((Teacher)obj).getInfo(); + System.out.println(((Teacher)obj).getInfo()); } else if (obj instanceof Course) { - ((Course)obj).getInfo(); + System.out.println(((Course)obj).getInfo()); } else if (obj instanceof Student) { - ((Student)obj).getInfo(); + System.out.println(((Student)obj).getInfo()); } }); } @@ -19,11 +19,11 @@ public static void showAll(HashMap map){ public static void lookUp(HashMap map, String targetId){ map.forEach((id, obj) -> { if (obj instanceof Teacher && id.equals(targetId)) { - ((Teacher)obj).getInfo(); + System.out.println(((Teacher)obj).getInfo()); } else if (obj instanceof Course && id.equals(targetId)) { - ((Course)obj).getInfo(); + System.out.println(((Course)obj).getInfo()); } else if (obj instanceof Student && id.equals(targetId)) { - ((Student)obj).getInfo(); + System.out.println(((Student)obj).getInfo()); } }); } From 1727fcceb7f510dc017c68ee7ddb4f9d8934b186 Mon Sep 17 00:00:00 2001 From: Katia Date: Thu, 29 Feb 2024 20:26:37 +0100 Subject: [PATCH 26/66] =?UTF-8?q?a=C3=B1adir=20metodo=20assignTeacher?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/Command.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index de96557..b32d923 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -1,11 +1,10 @@ package org; -import java.util.List; -import static org.School.getCourseById; public class Command { - public void displayCommands(){ + + public static void displayCommands(){ System.out.println("1. Enroll a new student"); System.out.println("2. Assign teacher to a course"); System.out.println("3. See all courses"); @@ -17,18 +16,19 @@ public void displayCommands(){ System.out.print("Enter your choice: "); } - public void enrollStudent(String studentId, String courseId){} + public static void enrollStudent(String studentId, String courseId){} - public void assignTeacher(String teacherId, String courseId){ - //find course by id, getCourseMap() tiene que ser static - Course course = getCourseById(courseId, School.getCourseMap()); - //find teacher by teacher id, getTeacherMap() tiene que ser static - Teacher teacher = getTeacherById(teacherId, School.getTeacherMap()); + public static void assignTeacher(String teacherId, String courseId, School school){ + //find course by id, getCourseMap() + Course course = School.getCourseById(courseId, school.getCourseMap()); + //find teacher by teacher id, getTeacherMap() + Teacher teacher = School.getTeacherById(teacherId, school.getTeacherMap()); //set teacher to course if(course == null){ System.out.println("Course doesn't exist"); } else { course.setTeacher(teacher); + System.out.println("teacher assigned!"); } } From 4afa186367422a6117eda800f321e90985e7c517 Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Thu, 29 Feb 2024 20:48:41 +0100 Subject: [PATCH 27/66] changes main scanner --- src/main/java/org/Main.java | 152 ++---------------------------------- 1 file changed, 5 insertions(+), 147 deletions(-) diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index dab357a..db1354a 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -23,13 +23,6 @@ public static void main(String[] args) { itemCreator("course", schoolName, courses, teachers); itemCreator("student", schoolName, students, null); - scanner.close(); - - - - - - int choiceMenu; Command command = new Command(); @@ -53,7 +46,7 @@ public static void main(String[] args) { courseId = scanner.nextLine(); try{ - command.enrollStudent(studentId, courseId); + //command.enrollStudent(studentId, courseId); System.out.println(printPurple("Congratulations! Your student has been successfully enrolled to the course.")); @@ -73,7 +66,7 @@ public static void main(String[] args) { courseId = scanner.nextLine(); try{ - command.assignTeacher(teacherId, courseId); + //command.assignTeacher(teacherId, courseId); System.out.println(printPurple("Congratulations! Your teacher has been successfully assigned to the course.")); @@ -100,7 +93,7 @@ public static void main(String[] args) { courseId = scanner.nextLine(); try{ - Course course = command.lookupCourse(courseId); + //Course course = command.lookupCourse(courseId); // TODO check como se definio esta funcion e implementarla - Victoria @@ -126,7 +119,7 @@ public static void main(String[] args) { studentId = scanner.nextLine(); try{ - Student student = command.lookupStundent(studentId); + //Student student = command.lookupStundent(studentId); // TODO check como se definio esta funcion e implementarla - Victoria //System.out.println(printPurple(student)); @@ -149,7 +142,7 @@ public static void main(String[] args) { teacherId = scanner.nextLine(); try{ - Teacher teacher = command.lookupTeacher(teacherId); + //Teacher teacher = command.lookupTeacher(teacherId); //System.out.println(printPurple(teacher)); }catch(IllegalArgumentException e){ @@ -166,141 +159,6 @@ public static void main(String[] args) { } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - private static void itemCreator(String type, String schoolName, List collection, List teachers) { boolean is_num = false; int totalItems = 0; From 5e162b323dab276e34d38f0d3a17d87c99c055f3 Mon Sep 17 00:00:00 2001 From: mandril888 Date: Thu, 29 Feb 2024 20:52:57 +0100 Subject: [PATCH 28/66] remove scanner.close() --- src/main/java/org/Main.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index dab357a..c9c8a40 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -23,13 +23,6 @@ public static void main(String[] args) { itemCreator("course", schoolName, courses, teachers); itemCreator("student", schoolName, students, null); - scanner.close(); - - - - - - int choiceMenu; Command command = new Command(); From f6ac157173905e61797a6e81974f46ae305aeb96 Mon Sep 17 00:00:00 2001 From: Katia Date: Thu, 29 Feb 2024 21:15:11 +0100 Subject: [PATCH 29/66] quitar teacher del constructor --- src/main/java/org/Course.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index 1f1e8a1..fcbf0a4 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -14,13 +14,13 @@ public class Course { private static final double MIN_PRICE = 100; private static final double MAX_PRICE = 1000; - public Course(String name, double price, double money_earned, Teacher teacher) { + public Course(String name, double price, double money_earned) { assignCourseId(); setName(name); setPrice(price); this.money_earned = 0; //setMoney_earned(money_earned);//no se asigna manualmente - setTeacher(teacher); + this.teacher = null; } public String getCourseId() { From d19f15a65cfade62e517512625c74575de5579c4 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Thu, 29 Feb 2024 21:32:12 +0100 Subject: [PATCH 30/66] command utils --- src/main/java/org/CommandUtils.java | 18 ++++++++++++++++-- src/main/java/org/Course.java | 8 ++++---- src/main/java/org/Student.java | 15 ++++++++++----- src/main/java/org/Teacher.java | 11 ++++++----- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index f366ae2..1534f2b 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -1,6 +1,7 @@ package org; import java.util.HashMap; +import java.util.Iterator; import java.util.List; public class CommandUtils { @@ -17,14 +18,27 @@ public static void showAll(HashMap map){ } public static void lookUp(HashMap map, String targetId){ - map.forEach((id, obj) -> { + boolean founded = false; + + for (HashMap.Entry entry : map.entrySet()) { + String id = entry.getKey(); + Object obj = entry.getValue(); + if (obj instanceof Teacher && id.equals(targetId)) { System.out.println(((Teacher)obj).getInfo()); + founded = true; + break; } else if (obj instanceof Course && id.equals(targetId)) { System.out.println(((Course)obj).getInfo()); + founded = true; + break; } else if (obj instanceof Student && id.equals(targetId)) { System.out.println(((Student)obj).getInfo()); + founded = true; + break; } - }); + } + if (!founded) + System.out.println("Invalid ID."); } } diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index 1f1e8a1..afaa697 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -83,10 +83,10 @@ public Teacher getTeacher(){ public String getInfo(){ - return "{" + "Id: " + getCourseId() + "Name: " - + getName() + "Price: " + getPrice() + "$" - + "Total earned: " + getMoney_earned() + "$" - + "Taught by: " + getTeacher() +"}"; + return "Course - ID: " + getCourseId() + " | Name: " + + getName() + " | Price: " + getPrice() + "$" + + " | Total earned: " + getMoney_earned() + "$" + + " | Taught by: " + getTeacher(); //falta añadir getter del name del Teacher } diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 718d42b..24903d7 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -3,21 +3,25 @@ import java.util.UUID; public class Student { - private final String studentId; + private String studentId; private String name; private String address; private String email; private Course course; + private static int idCounter = 1; // Constructor public Student(String name, String address, String email) { - // TODO - copy from Course - this.studentId = UUID.randomUUID().toString(); // auto-generated studentId + assignCourseId(); setName(name); setAddress(address); setEmail(email); } + private void assignCourseId(){ + this.studentId = "C" + String.valueOf(idCounter++); + } + // Getters public String getStudentId() { return studentId; @@ -57,7 +61,8 @@ public void setCourse(Course course) { } // Helper - public void getInfo() { - System.out.println("Student - ID: " + this.studentId + " | Name: " + getName() + " | Address: " + getAddress() + " | Email: " + getEmail()); + public String getInfo() { + return("Student - ID: " + this.studentId + " | Name: " + getName() + + " | Address: " + getAddress() + " | Email: " + getEmail()); } } \ No newline at end of file diff --git a/src/main/java/org/Teacher.java b/src/main/java/org/Teacher.java index fe64272..95b5e9d 100644 --- a/src/main/java/org/Teacher.java +++ b/src/main/java/org/Teacher.java @@ -12,11 +12,6 @@ public Teacher(String name, double salary) { setSalary(salary); } - - public void getInfo(){ - System.out.println("Teacher - ID: " + getTeacherId() + " | Name: " + getName() + " | Salary: " + getSalary()); - } - public boolean getTeacherById(String idToCheck){ return this.id.equals(idToCheck); } @@ -45,4 +40,10 @@ public String getName() { public double getSalary() { return this.salary; } + + public String getInfo(){ + return ("Teacher - ID: " + getTeacherId() + " | Name: " + + getName() + " | Salary: " + getSalary()); + } + } \ No newline at end of file From e6a0221599f1baf5f1219744ab74acc20ac74aad Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Thu, 29 Feb 2024 21:36:44 +0100 Subject: [PATCH 31/66] update merge main - course class --- src/main/java/org/Course.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index 1441fdf..00a058b 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -80,8 +80,6 @@ public Teacher getTeacher(){ return this.teacher; } - - public String getInfo(){ return "Course - ID: " + getCourseId() + " | Name: " + getName() + " | Price: " + getPrice() + "$" From 9432ae4e1b4dafddca104d7ab90a16dcbddf8cbc Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Thu, 29 Feb 2024 21:40:36 +0100 Subject: [PATCH 32/66] modify static methods of school class --- src/main/java/org/School.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/School.java b/src/main/java/org/School.java index 95c7cf1..3bcdd47 100644 --- a/src/main/java/org/School.java +++ b/src/main/java/org/School.java @@ -43,10 +43,10 @@ public void setHashmapStudent(List listStudent) { public String getName() { return this.name; } - public static HashMap getCourseMap() { + public HashMap getCourseMap() { return this.courseMap; } - public static HashMap getTeacherMap() { + public HashMap getTeacherMap() { return this.teacherMap; } From 07beda3ae020f7f7e3cee09fcb7526d055fd9e82 Mon Sep 17 00:00:00 2001 From: annadpp Date: Fri, 1 Mar 2024 10:38:13 +0100 Subject: [PATCH 33/66] Add enrollStudent and showProfit --- src/main/java/org/Command.java | 49 ++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index b32d923..efd6072 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -16,7 +16,32 @@ public static void displayCommands(){ System.out.print("Enter your choice: "); } - public static void enrollStudent(String studentId, String courseId){} + public static void enrollStudent(String studentId, String courseId) { + // Create an instance of the Command class so we don't have to change lookups to static + Command command = new Command(); + + // Call the lookupCourse method on the instance + Course course = command.lookupCourse(courseId); + + // Check if the course exists and the student is not enrolled in another course + if (course == null) { + throw new IllegalArgumentException("Invalid course."); + } + + // Get the student by id + Student student = command.lookupStudent(studentId); + + // Check if the student is already enrolled in the course + if (student.getCourse() != null) { + throw new IllegalArgumentException("Student is already enrolled in a course."); + } + + // Enroll student in the course + student.setCourse(course); + + // Update money earned in the course based on its price + course.updateMoney_earned(course.getPrice()); + } public static void assignTeacher(String teacherId, String courseId, School school){ //find course by id, getCourseMap() @@ -46,7 +71,27 @@ public Student lookupStundent(String studentId){} public Teacher lookupTeacher(String teacherId){} - public double showProfit(){} + public double showProfit(School school) throws IllegalArgumentException { + double totalMoneyEarned = 0; + double totalTeacherSalaries = 0; + + try { + // Calculate total money earned from all courses + for (Course course : school.getCourseMap().values()) { + totalMoneyEarned += course.getMoney_earned(); + } + + // Calculate the sum of all the teachers' salaries + for (Teacher teacher : school.getTeacherMap().values()) { + totalTeacherSalaries += teacher.getSalary(); + } + + // Return the result (difference) + return totalMoneyEarned - totalTeacherSalaries; + } catch (IllegalArgumentException e) { + throw new IllegalArgumentException("An error occurred while calculating profit: " + e.getMessage()); + } + } From c57a6e56bdc105247b9d670c978b969cb82836d8 Mon Sep 17 00:00:00 2001 From: annadpp Date: Fri, 1 Mar 2024 11:13:05 +0100 Subject: [PATCH 34/66] Add testEnrollStudent and testShowProfit --- pom.xml | 8 ++++++++ src/main/java/org/Command.java | 3 ++- src/test/java/org/CommandTest.java | 31 ++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/CommandTest.java diff --git a/pom.xml b/pom.xml index d765866..8130d44 100644 --- a/pom.xml +++ b/pom.xml @@ -13,5 +13,13 @@ 17 UTF-8 + + + + org.junit.jupiter + junit-jupiter-engine + 5.10.0 + + \ No newline at end of file diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index efd6072..876d3db 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -28,7 +28,7 @@ public static void enrollStudent(String studentId, String courseId) { throw new IllegalArgumentException("Invalid course."); } - // Get the student by id + // Get the student by id -> **fix name typo** Student student = command.lookupStudent(studentId); // Check if the student is already enrolled in the course @@ -67,6 +67,7 @@ public List showTeachers(){} public Course lookupCourse(String courseId){} + // **Name has typo** public Student lookupStundent(String studentId){} public Teacher lookupTeacher(String teacherId){} diff --git a/src/test/java/org/CommandTest.java b/src/test/java/org/CommandTest.java new file mode 100644 index 0000000..08399f6 --- /dev/null +++ b/src/test/java/org/CommandTest.java @@ -0,0 +1,31 @@ +package org; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; +import java.util.ArrayList; // Import ArrayList class from java.util package + +class CommandTest { + + @Test + void testEnrollStudent() { + Command command = new Command(); + + // test if a student is already enrolled + try { + command.enrollStudent("S1", "C2"); + fail("Expected an IllegalArgumentException to be thrown"); + } catch (IllegalArgumentException e) { + assertEquals("Student is already enrolled in the course.", e.getMessage()); + } + } + + @Test + void testShowProfit() { + School school = new School("test", new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); + Command command = new Command(); + + // test if the showProfit method calculates correctly + double profit = command.showProfit(school); + assertEquals(0, profit); + } +} From 4e0a37f2d2ca3222317cb847c51ce273eef82c9e Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Sun, 3 Mar 2024 14:42:09 +0100 Subject: [PATCH 35/66] change command menu --- src/main/java/org/Command.java | 15 +++++----- src/main/java/org/Main.java | 51 ++++++++++++++++------------------ 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 876d3db..0e5f420 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -13,6 +13,7 @@ public static void displayCommands(){ System.out.println("6. Search for a specific student"); System.out.println("7. See all teachers"); System.out.println("8. Search for a specific teacher"); + System.out.println("9. Show Profit"); System.out.print("Enter your choice: "); } @@ -59,20 +60,20 @@ public static void assignTeacher(String teacherId, String courseId, School schoo - public List showCourses(){} + //public List showCourses(){} - public List showStudents(){} + //public List showStudents(){} - public List showTeachers(){} + //public List showTeachers(){} - public Course lookupCourse(String courseId){} + //public Course lookupCourse(String courseId){} // **Name has typo** - public Student lookupStundent(String studentId){} + //public Student lookupStundent(String studentId){} - public Teacher lookupTeacher(String teacherId){} + //public Teacher lookupTeacher(String teacherId){} - public double showProfit(School school) throws IllegalArgumentException { + public static double showProfit(School school) throws IllegalArgumentException { double totalMoneyEarned = 0; double totalTeacherSalaries = 0; diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index db1354a..63f8d95 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -1,6 +1,9 @@ package org; import java.util.*; +import static org.Command.*; +import static org.CommandUtils.showAll; +import static org.CommandUtils.lookUp; public class Main { public static void main(String[] args) { String schoolName = ""; @@ -25,11 +28,10 @@ public static void main(String[] args) { int choiceMenu; - Command command = new Command(); do{ - command.displayCommands(); + displayCommands(); choiceMenu = scanner.nextInt(); String studentId; String courseId; @@ -46,13 +48,11 @@ public static void main(String[] args) { courseId = scanner.nextLine(); try{ - //command.enrollStudent(studentId, courseId); - + enrollStudent(studentId, courseId); System.out.println(printPurple("Congratulations! Your student has been successfully enrolled to the course.")); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); - } break; @@ -65,23 +65,20 @@ public static void main(String[] args) { scanner.nextLine(); courseId = scanner.nextLine(); + //Donde se guarda la nueva school? try{ - //command.assignTeacher(teacherId, courseId); - + assignTeacher(teacherId, courseId, school); System.out.println(printPurple("Congratulations! Your teacher has been successfully assigned to the course.")); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); - } break; case 3: try{ - - // TODO check como se definio esta funcion e implementarla - Victoria - // System.out.println(printPurple(command.showCourses())); - + // TODO Argument HashMap de Strings con los Datos de Courses + System.out.println(printPurple(showAll(school.getCourseMap()))); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -93,12 +90,8 @@ public static void main(String[] args) { courseId = scanner.nextLine(); try{ - //Course course = command.lookupCourse(courseId); - - // TODO check como se definio esta funcion e implementarla - Victoria - //TODO Agregar un esperando o buscando? - Victoria - //System.out.println(printPurple(course)); + System.out.println(printPurple(lookUp(school.getCourseMap(), courseId))); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -106,9 +99,10 @@ public static void main(String[] args) { break; case 5: try{ - // TODO check como se definio esta funcion e implementarla - Victoria + // TODO Argument HashMap de Strings con los Datos de Stundents + + System.out.println(printPurple(showAll(school.getStudentsMap()))); - //System.out.println(printPurple(showStudents())); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -119,10 +113,8 @@ public static void main(String[] args) { studentId = scanner.nextLine(); try{ - //Student student = command.lookupStundent(studentId); - // TODO check como se definio esta funcion e implementarla - Victoria - //System.out.println(printPurple(student)); + System.out.println(printPurple(lookUp(school.getStudentsMap(), studentId))); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -130,8 +122,8 @@ public static void main(String[] args) { break; case 7: try{ - // TODO check como se definio esta funcion e implementarla - Victoria - //System.out.println(printPurple(showTeachers())); + // TODO Argument HashMap de Strings con los Datos de Teachers + System.out.println(printPurple(showAll(school.getTeachersMap()))); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -142,20 +134,25 @@ public static void main(String[] args) { teacherId = scanner.nextLine(); try{ - //Teacher teacher = command.lookupTeacher(teacherId); - //System.out.println(printPurple(teacher)); + + System.out.println(printPurple(lookUp(school.getTeachersMap(), studentId))); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } break; case 9: + System.out.println("The profit of the school"); + showProfit(school); + break; + + case 10: System.out.println("Closing program."); scanner.close(); break; } - }while(choiceMenu != 9); + }while(choiceMenu != 10); } From 90a12b3a5d7c53e2603b1e095d360ddd47800884 Mon Sep 17 00:00:00 2001 From: mandril888 Date: Thu, 7 Mar 2024 20:59:22 +0100 Subject: [PATCH 36/66] create School in main --- .idea/modules.xml | 8 -------- src/main/java/org/Main.java | 1 + 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 .idea/modules.xml diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 7d98804..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index c9c8a40..81b64a6 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -23,6 +23,7 @@ public static void main(String[] args) { itemCreator("course", schoolName, courses, teachers); itemCreator("student", schoolName, students, null); + School school = new School(schoolName, teachers, courses, students); int choiceMenu; Command command = new Command(); From feb9ce1d92d0143ccf3dca7c5e356de810f5ca54 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Thu, 7 Mar 2024 21:25:02 +0100 Subject: [PATCH 37/66] update look up method --- src/main/java/org/CommandUtils.java | 46 ++++++++++++++++------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index 1534f2b..fe32e70 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -17,28 +17,34 @@ public static void showAll(HashMap map){ }); } - public static void lookUp(HashMap map, String targetId){ - boolean founded = false; - - for (HashMap.Entry entry : map.entrySet()) { - String id = entry.getKey(); - Object obj = entry.getValue(); + public static Teacher lookUpTeacher(HashMap map, String targetId){ + Teacher teacher = map.get(targetId); + if (teacher != null){ + return teacher; + } else { + System.out.println("Invalid ID."); + return null; + } + } - if (obj instanceof Teacher && id.equals(targetId)) { - System.out.println(((Teacher)obj).getInfo()); - founded = true; - break; - } else if (obj instanceof Course && id.equals(targetId)) { - System.out.println(((Course)obj).getInfo()); - founded = true; - break; - } else if (obj instanceof Student && id.equals(targetId)) { - System.out.println(((Student)obj).getInfo()); - founded = true; - break; - } + public static Student lookUpStudent(HashMap map, String targetId){ + Student student = map.get(targetId); + if (student != null){ + return student; + } else { + System.out.println("Invalid ID."); + return null; } - if (!founded) + } + + public static Course lookUpCourse(HashMap map, String targetId){ + Course course = map.get(targetId); + if (course != null){ + return course; + } else { System.out.println("Invalid ID."); + return null; + } } + } From 37660a3ef24891a219975e18892f03282fefdbe8 Mon Sep 17 00:00:00 2001 From: Anna de Pablo Puig <71819431+annadpp@users.noreply.github.com> Date: Fri, 8 Mar 2024 19:33:38 +0100 Subject: [PATCH 38/66] Update enrollStudent --- src/main/java/org/Command.java | 43 ++++++++++++++-------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 876d3db..a2fab26 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -16,31 +16,27 @@ public static void displayCommands(){ System.out.print("Enter your choice: "); } - public static void enrollStudent(String studentId, String courseId) { - // Create an instance of the Command class so we don't have to change lookups to static - Command command = new Command(); - - // Call the lookupCourse method on the instance - Course course = command.lookupCourse(courseId); - - // Check if the course exists and the student is not enrolled in another course - if (course == null) { - throw new IllegalArgumentException("Invalid course."); - } + public static void enrollStudent(String studentId, String courseId, School school) { + // Gets student by looking through students map + Student student = CommandUtils.lookUpStudent(school.getStudentMap(), studentId); + // Gets course by looking through courses map + Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); + + // Checks if the course and the student exist + if (student != null && course != null) { + // Check if the student is already enrolled in another course + if (student.getCourse() != null) { + throw new IllegalArgumentException("Student is already enrolled in a course."); + } - // Get the student by id -> **fix name typo** - Student student = command.lookupStudent(studentId); + // Enrolls student in the course + student.setCourse(course); - // Check if the student is already enrolled in the course - if (student.getCourse() != null) { - throw new IllegalArgumentException("Student is already enrolled in a course."); + // Updates money earned in the course based on its price + course.updateMoney_earned(course.getPrice()); + } else { + throw new IllegalArgumentException("Invalid student or course ID."); } - - // Enroll student in the course - student.setCourse(course); - - // Update money earned in the course based on its price - course.updateMoney_earned(course.getPrice()); } public static void assignTeacher(String teacherId, String courseId, School school){ @@ -94,7 +90,4 @@ public double showProfit(School school) throws IllegalArgumentException { } } - - - } From 244a6c010ff3b22f5b1744f52e274ea001417ffa Mon Sep 17 00:00:00 2001 From: Katia Date: Fri, 8 Mar 2024 20:27:01 +0100 Subject: [PATCH 39/66] update course.java + assignTeacher() --- src/main/java/org/Command.java | 19 ++----------------- src/main/java/org/Course.java | 14 +------------- 2 files changed, 3 insertions(+), 30 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 876d3db..57f8afc 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -47,31 +47,16 @@ public static void assignTeacher(String teacherId, String courseId, School schoo //find course by id, getCourseMap() Course course = School.getCourseById(courseId, school.getCourseMap()); //find teacher by teacher id, getTeacherMap() - Teacher teacher = School.getTeacherById(teacherId, school.getTeacherMap()); + Teacher teacher = CommandUtils.lookUpTeacher(school.getTeacherMap(), teacherId); //set teacher to course if(course == null){ - System.out.println("Course doesn't exist"); + throw new IllegalArgumentException("Course doesn't exist!"); } else { course.setTeacher(teacher); System.out.println("teacher assigned!"); } } - - - public List showCourses(){} - - public List showStudents(){} - - public List showTeachers(){} - - public Course lookupCourse(String courseId){} - - // **Name has typo** - public Student lookupStundent(String studentId){} - - public Teacher lookupTeacher(String teacherId){} - public double showProfit(School school) throws IllegalArgumentException { double totalMoneyEarned = 0; double totalTeacherSalaries = 0; diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index 00a058b..6318769 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -19,7 +19,6 @@ public Course(String name, double price, double money_earned) { setName(name); setPrice(price); this.money_earned = 0; - //setMoney_earned(money_earned);//no se asigna manualmente this.teacher = null; } @@ -84,19 +83,8 @@ public String getInfo(){ return "Course - ID: " + getCourseId() + " | Name: " + getName() + " | Price: " + getPrice() + "$" + " | Total earned: " + getMoney_earned() + "$" - + " | Taught by: " + getTeacher(); - //falta añadir getter del name del Teacher + + " | Taught by: " + getTeacher().getName(); } - // TODO - move to Utils - public static String getAllCourses(List courseList){ - StringBuilder allCoursesInfo = new StringBuilder(); - for (Course course : courseList) { - allCoursesInfo.append(course.getInfo()).append("\n"); - } - - return allCoursesInfo.toString(); - - } } From 9cf14311d0549a86e91ccbff38f8f36ea9a6c801 Mon Sep 17 00:00:00 2001 From: Anna de Pablo Puig <71819431+annadpp@users.noreply.github.com> Date: Fri, 8 Mar 2024 20:51:47 +0100 Subject: [PATCH 40/66] Update enrollStudent --- src/main/java/org/Command.java | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index a2fab26..ed1d531 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -43,31 +43,16 @@ public static void assignTeacher(String teacherId, String courseId, School schoo //find course by id, getCourseMap() Course course = School.getCourseById(courseId, school.getCourseMap()); //find teacher by teacher id, getTeacherMap() - Teacher teacher = School.getTeacherById(teacherId, school.getTeacherMap()); + Teacher teacher = CommandUtils.lookUpTeacher(school.getTeacherMap(), teacherId); //set teacher to course if(course == null){ - System.out.println("Course doesn't exist"); + throw new IllegalArgumentException("Course doesn't exist!"); } else { course.setTeacher(teacher); System.out.println("teacher assigned!"); } } - - - public List showCourses(){} - - public List showStudents(){} - - public List showTeachers(){} - - public Course lookupCourse(String courseId){} - - // **Name has typo** - public Student lookupStundent(String studentId){} - - public Teacher lookupTeacher(String teacherId){} - public double showProfit(School school) throws IllegalArgumentException { double totalMoneyEarned = 0; double totalTeacherSalaries = 0; From 9fbf3085a6604b95fe4f7e99a4d3bc0d9b000248 Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Sat, 9 Mar 2024 10:15:45 +0100 Subject: [PATCH 41/66] command menu and methods implemented --- src/main/java/org/Command.java | 5 ++- src/main/java/org/Main.java | 63 ++++++++++++++++++---------------- src/main/java/org/Student.java | 2 +- 3 files changed, 39 insertions(+), 31 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index ed1d531..99dc184 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -13,6 +13,8 @@ public static void displayCommands(){ System.out.println("6. Search for a specific student"); System.out.println("7. See all teachers"); System.out.println("8. Search for a specific teacher"); + System.out.println("9. Show profit"); + System.out.println("10. Exit program"); System.out.print("Enter your choice: "); } @@ -49,11 +51,12 @@ public static void assignTeacher(String teacherId, String courseId, School schoo throw new IllegalArgumentException("Course doesn't exist!"); } else { course.setTeacher(teacher); + // TODO remove esto ya se controla en el front. System.out.println("teacher assigned!"); } } - public double showProfit(School school) throws IllegalArgumentException { + public static double showProfit(School school) throws IllegalArgumentException { double totalMoneyEarned = 0; double totalTeacherSalaries = 0; diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 2f0b087..52d25e0 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -2,8 +2,8 @@ import java.util.*; import static org.Command.*; -import static org.CommandUtils.showAll; -import static org.CommandUtils.lookUp; +import static org.CommandUtils.*; + public class Main { public static void main(String[] args) { String schoolName = ""; @@ -25,7 +25,7 @@ public static void main(String[] args) { itemCreator("teacher", schoolName, teachers, null); itemCreator("course", schoolName, courses, teachers); itemCreator("student", schoolName, students, null); - +// TODO hay un bug en student - Se crea con id C1 en vez de S1. School school = new School(schoolName, teachers, courses, students); int choiceMenu; @@ -40,16 +40,19 @@ public static void main(String[] args) { switch(choiceMenu){ case 1: - System.out.println(printBlue("Enter the id of the student:")); - scanner.nextLine(); - studentId = scanner.nextLine(); + // TODO print todos los ids de los students junto con su nombre asi el usuario lo puede ver + System.out.println(printBlue("Enter the id of the student:")); + scanner.nextLine(); + studentId = scanner.nextLine(); - System.out.println(printBlue("Enter the id of the course:")); - scanner.nextLine(); - courseId = scanner.nextLine(); + // TODO agregar verificacion de si el id agregado es correcto + + System.out.println(printBlue("Enter the id of the course:")); + courseId = scanner.nextLine(); + System.out.println("Please wait, enrolling student."); try{ - enrollStudent(studentId, courseId); + enrollStudent(studentId, courseId, school); System.out.println(printPurple("Congratulations! Your student has been successfully enrolled to the course.")); }catch(IllegalArgumentException e){ @@ -63,10 +66,9 @@ public static void main(String[] args) { teacherId = scanner.nextLine(); System.out.println(printBlue("Enter the id of the course:")); - scanner.nextLine(); courseId = scanner.nextLine(); + System.out.println("Please wait, assigning teacher to the course."); - //Donde se guarda la nueva school? try{ assignTeacher(teacherId, courseId, school); System.out.println(printPurple("Congratulations! Your teacher has been successfully assigned to the course.")); @@ -78,8 +80,8 @@ public static void main(String[] args) { break; case 3: try{ - // TODO Argument HashMap de Strings con los Datos de Courses - System.out.println(printPurple(showAll(school.getCourseMap()))); + + showAll(school.getCourseMap()); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -91,8 +93,9 @@ public static void main(String[] args) { courseId = scanner.nextLine(); try{ - //TODO Agregar un esperando o buscando? - Victoria - System.out.println(printPurple(lookUp(school.getCourseMap(), courseId))); + Course course = lookUpCourse(school.getCourseMap(),courseId); + //assert course != null; + System.out.println(course.getInfo()); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -100,9 +103,7 @@ public static void main(String[] args) { break; case 5: try{ - // TODO Argument HashMap de Strings con los Datos de Stundents - - System.out.println(printPurple(showAll(school.getStudentsMap()))); + showAll(school.getStudentMap()); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -114,8 +115,8 @@ public static void main(String[] args) { studentId = scanner.nextLine(); try{ - - System.out.println(printPurple(lookUp(school.getStudentsMap(), studentId))); + Student student = lookUpStudent(school.getStudentMap(),studentId); + System.out.println(printPurple(student.getInfo())); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -123,8 +124,8 @@ public static void main(String[] args) { break; case 7: try{ - // TODO Argument HashMap de Strings con los Datos de Teachers - System.out.println(printPurple(showAll(school.getTeachersMap()))); + showAll(school.getTeacherMap()); + }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -135,16 +136,16 @@ public static void main(String[] args) { teacherId = scanner.nextLine(); try{ - - System.out.println(printPurple(lookUp(school.getTeachersMap(), studentId))); + Teacher teacher = lookUpTeacher(school.getTeacherMap(), teacherId); + System.out.println(printPurple(teacher.getInfo())); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } break; case 9: - System.out.println("The profit of the school"); - showProfit(school); + System.out.println("The profit of the school is " + showProfit(school)); + ; break; case 10: @@ -244,6 +245,7 @@ private static void courseCreator(List courses, List teachers){ } } is_num = false; + /* System.out.println(printBlue("Select an associated teacher:")); System.out.println("0 - No teacher associated"); for (int i = 0; i < teachers.size(); i++) { @@ -265,9 +267,12 @@ private static void courseCreator(List courses, List teachers){ if (teacherSelection == 0) { // course = new Course(name, price, (double) 0); } else { - course = new Course(name, price, (double) 0, teachers.get(teacherSelection-1)); + course = new Course(name, price, (double) 0); } - course.getInfo(); + */ + // TODO added por victoria porque petaba + Course course = new Course(name, price, (double) 0); + //course.getInfo(); courses.add(course); } diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 24903d7..4177239 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -19,7 +19,7 @@ public Student(String name, String address, String email) { } private void assignCourseId(){ - this.studentId = "C" + String.valueOf(idCounter++); + this.studentId = "S" + String.valueOf(idCounter++); } // Getters From ff8bcf4a5e2c0d517099cc21cff7890c8e397bad Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Sat, 9 Mar 2024 10:52:10 +0100 Subject: [PATCH 42/66] add print colors and print descriptions to commands --- src/main/java/org/Main.java | 57 ++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 52d25e0..64e6eac 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -25,7 +25,7 @@ public static void main(String[] args) { itemCreator("teacher", schoolName, teachers, null); itemCreator("course", schoolName, courses, teachers); itemCreator("student", schoolName, students, null); -// TODO hay un bug en student - Se crea con id C1 en vez de S1. +// TODO hay un bug en student - Se crea con id C1 en vez de S1 - lo cambie en el codigo pero hablarlo School school = new School(schoolName, teachers, courses, students); int choiceMenu; @@ -40,38 +40,51 @@ public static void main(String[] args) { switch(choiceMenu){ case 1: - // TODO print todos los ids de los students junto con su nombre asi el usuario lo puede ver + //TODO ponerle un color + System.out.println("These are all the students that join "+schoolName+" school."); + showAll(school.getStudentMap()); + System.out.println(""); System.out.println(printBlue("Enter the id of the student:")); scanner.nextLine(); studentId = scanner.nextLine(); - - // TODO agregar verificacion de si el id agregado es correcto - + System.out.println(""); + System.out.println("These are all the courses available"); + showAll(school.getCourseMap()); + System.out.println(""); System.out.println(printBlue("Enter the id of the course:")); courseId = scanner.nextLine(); - System.out.println("Please wait, enrolling student."); - + System.out.println("Please wait, enrolling student..."); + // TODO- tratar de poner un elapse time o algo para que espere. + System.out.println(""); + System.out.println(""); try{ enrollStudent(studentId, courseId, school); - System.out.println(printPurple("Congratulations! Your student has been successfully enrolled to the course.")); - + System.out.println(printYellow("Congratulations! Your student has been successfully enrolled to the course.")); + System.out.println(""); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } break; case 2: + System.out.println("These are all the teachers that work for "+schoolName+" school."); + showAll(school.getTeacherMap()); + System.out.println(""); System.out.println(printBlue("Enter the id of the teacher:")); scanner.nextLine(); teacherId = scanner.nextLine(); - + System.out.println(""); + System.out.println("These are all the courses available"); + showAll(school.getCourseMap()); + System.out.println(""); System.out.println(printBlue("Enter the id of the course:")); courseId = scanner.nextLine(); System.out.println("Please wait, assigning teacher to the course."); - + System.out.println(""); + System.out.println(""); try{ assignTeacher(teacherId, courseId, school); - System.out.println(printPurple("Congratulations! Your teacher has been successfully assigned to the course.")); + System.out.println(printYellow("Congratulations! Your teacher has been successfully assigned to the course.")); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -80,9 +93,10 @@ public static void main(String[] args) { break; case 3: try{ - + System.out.println("These are all the courses available:"); showAll(school.getCourseMap()); - + System.out.println(""); + System.out.println(""); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -94,7 +108,6 @@ public static void main(String[] args) { try{ Course course = lookUpCourse(school.getCourseMap(),courseId); - //assert course != null; System.out.println(course.getInfo()); }catch(IllegalArgumentException e){ @@ -103,8 +116,10 @@ public static void main(String[] args) { break; case 5: try{ + System.out.println("These are all the students enrolled:"); showAll(school.getStudentMap()); - + System.out.println(""); + System.out.println(""); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -124,8 +139,10 @@ public static void main(String[] args) { break; case 7: try{ + System.out.println("These are all the teachers that work at the school:"); showAll(school.getTeacherMap()); - + System.out.println(""); + System.out.println(""); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -144,12 +161,12 @@ public static void main(String[] args) { } break; case 9: - System.out.println("The profit of the school is " + showProfit(school)); - ; + double profit = showProfit(school); + System.out.println(printYellow("The profit of the school is ") + printPurple(String.valueOf(profit))); break; case 10: - System.out.println("Closing program."); + System.out.println(printYellow("Closing program.")); scanner.close(); break; } From a4d65c58da5814ffe3783051c93c640cf571b30e Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Sat, 9 Mar 2024 12:52:31 +0100 Subject: [PATCH 43/66] tasks todo adn fix bugs --- src/main/java/org/CommandUtils.java | 2 +- src/main/java/org/Course.java | 4 ++-- src/main/java/org/Main.java | 3 +++ src/main/java/org/Student.java | 1 + src/main/java/org/Teacher.java | 1 + src/test/java/org/CommandTest.java | 4 +++- 6 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index fe32e70..4f40373 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -16,7 +16,7 @@ public static void showAll(HashMap map){ } }); } - +//TODO - lanzar una exception - Julia public static Teacher lookUpTeacher(HashMap map, String targetId){ Teacher teacher = map.get(targetId); if (teacher != null){ diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index 6318769..be9fee1 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -82,8 +82,8 @@ public Teacher getTeacher(){ public String getInfo(){ return "Course - ID: " + getCourseId() + " | Name: " + getName() + " | Price: " + getPrice() + "$" - + " | Total earned: " + getMoney_earned() + "$" - + " | Taught by: " + getTeacher().getName(); + + " | Total earned: " + getMoney_earned() + "$"; + // + " | Taught by: " + getTeacher().getName(); } } diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 64e6eac..ba40ec6 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -54,11 +54,14 @@ public static void main(String[] args) { System.out.println(printBlue("Enter the id of the course:")); courseId = scanner.nextLine(); System.out.println("Please wait, enrolling student..."); + // TODO- tratar de poner un elapse time o algo para que espere. System.out.println(""); System.out.println(""); try{ enrollStudent(studentId, courseId, school); + // TODO agregar el nombre del estudiante y curso en el print + // TODO enrolar multiples alumnos (extra) System.out.println(printYellow("Congratulations! Your student has been successfully enrolled to the course.")); System.out.println(""); }catch(IllegalArgumentException e){ diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 4177239..75efd8a 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -61,6 +61,7 @@ public void setCourse(Course course) { } // Helper + //TODO - Agregar Courses info (extra) public String getInfo() { return("Student - ID: " + this.studentId + " | Name: " + getName() + " | Address: " + getAddress() + " | Email: " + getEmail()); diff --git a/src/main/java/org/Teacher.java b/src/main/java/org/Teacher.java index 95b5e9d..d0da92e 100644 --- a/src/main/java/org/Teacher.java +++ b/src/main/java/org/Teacher.java @@ -41,6 +41,7 @@ public double getSalary() { return this.salary; } + //TODO Agregar public String getInfo(){ return ("Teacher - ID: " + getTeacherId() + " | Name: " + getName() + " | Salary: " + getSalary()); diff --git a/src/test/java/org/CommandTest.java b/src/test/java/org/CommandTest.java index 08399f6..86c8daf 100644 --- a/src/test/java/org/CommandTest.java +++ b/src/test/java/org/CommandTest.java @@ -6,7 +6,7 @@ class CommandTest { - @Test + /* @Test void testEnrollStudent() { Command command = new Command(); @@ -28,4 +28,6 @@ void testShowProfit() { double profit = command.showProfit(school); assertEquals(0, profit); } + + */ } From 7e20ba9f6dc071667585b8286b952f56e0a07a64 Mon Sep 17 00:00:00 2001 From: Katia Date: Sat, 9 Mar 2024 13:18:29 +0100 Subject: [PATCH 44/66] =?UTF-8?q?actaulizar=20assignTeacher()=20y=20getInf?= =?UTF-8?q?o()=20de=20Course;=20a=C3=B1adir=20test=20assignTeacher()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/Command.java | 5 ++--- src/main/java/org/Course.java | 17 ++++++++++++----- src/test/java/org/CommandTest.java | 28 ++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 99dc184..485aa55 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -41,7 +41,7 @@ public static void enrollStudent(String studentId, String courseId, School schoo } } - public static void assignTeacher(String teacherId, String courseId, School school){ + public static Course assignTeacher(String teacherId, String courseId, School school){ //find course by id, getCourseMap() Course course = School.getCourseById(courseId, school.getCourseMap()); //find teacher by teacher id, getTeacherMap() @@ -51,8 +51,7 @@ public static void assignTeacher(String teacherId, String courseId, School schoo throw new IllegalArgumentException("Course doesn't exist!"); } else { course.setTeacher(teacher); - // TODO remove esto ya se controla en el front. - System.out.println("teacher assigned!"); + return course; } } diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index be9fee1..bd85e30 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -66,7 +66,6 @@ private boolean isValidName(String name){ public double getMoney_earned() { return money_earned; } - //se llama desde otra clase cada vez que se asigna un student public void updateMoney_earned(double money_earned) { this.money_earned = money_earned; } @@ -80,10 +79,18 @@ public Teacher getTeacher(){ } public String getInfo(){ - return "Course - ID: " + getCourseId() + " | Name: " - + getName() + " | Price: " + getPrice() + "$" - + " | Total earned: " + getMoney_earned() + "$"; - // + " | Taught by: " + getTeacher().getName(); + if(this.getTeacher() == null){ + return "Course - ID: " + getCourseId() + " | Name: " + + getName() + " | Price: " + getPrice() + "$" + + " | Total earned: " + getMoney_earned() + "$" + + " | No teacher assigned"; + } else { + return "Course - ID: " + getCourseId() + " | Name: " + + getName() + " | Price: " + getPrice() + "$" + + " | Total earned: " + getMoney_earned() + "$" + + " | Taught by: " + getTeacher().getName(); + } + } } diff --git a/src/test/java/org/CommandTest.java b/src/test/java/org/CommandTest.java index 86c8daf..023d5b4 100644 --- a/src/test/java/org/CommandTest.java +++ b/src/test/java/org/CommandTest.java @@ -1,11 +1,24 @@ package org; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; + +import static org.Command.assignTeacher; import static org.junit.jupiter.api.Assertions.*; import java.util.ArrayList; // Import ArrayList class from java.util package class CommandTest { + Command command; + School school; + + @BeforeEach + void setUp(){ + command = new Command(); + school = new School("test2", new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); + + } + /* @Test void testEnrollStudent() { Command command = new Command(); @@ -30,4 +43,19 @@ void testShowProfit() { } */ + + @Test + void testAssignTeacher(){ + //School school = new School("test2", new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); + Teacher teacher = new Teacher("Juan", 2000); + //asignar el teacher a school + school.getTeacherMap().put(teacher.getTeacherId(), teacher); + Course course = new Course("Ciencia", 500, 0); + //asignar el course a school + school.getCourseMap().put(course.getCourseId(), course); + assertEquals("Ciencia", course.getName()); + course = assignTeacher(teacher.getTeacherId(), course.getCourseId(), school); + assertEquals("Juan", course.getTeacher().getName()); + + } } From ee8827c97aaf622940992cf1befcd75db36842b6 Mon Sep 17 00:00:00 2001 From: Katia Date: Sat, 9 Mar 2024 13:45:06 +0100 Subject: [PATCH 45/66] =?UTF-8?q?quitar=20m=C3=A9todo=20getCourseById()=20?= =?UTF-8?q?de=20School=20y=20assignTeacher?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/Command.java | 2 +- src/main/java/org/School.java | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 485aa55..dbb53d6 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -43,7 +43,7 @@ public static void enrollStudent(String studentId, String courseId, School schoo public static Course assignTeacher(String teacherId, String courseId, School school){ //find course by id, getCourseMap() - Course course = School.getCourseById(courseId, school.getCourseMap()); + Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); //find teacher by teacher id, getTeacherMap() Teacher teacher = CommandUtils.lookUpTeacher(school.getTeacherMap(), teacherId); //set teacher to course diff --git a/src/main/java/org/School.java b/src/main/java/org/School.java index 3bcdd47..49863f2 100644 --- a/src/main/java/org/School.java +++ b/src/main/java/org/School.java @@ -54,14 +54,5 @@ public HashMap getStudentMap() { return this.studentMap; } - // prueba para ver si funciona - public static Course getCourseById(String id, HashMap courseMap){ - for (Map.Entry entry : courseMap.entrySet()) { - if (entry.getValue().getCourseId().equals(id)) { - return entry.getValue(); - } - } - return null; //volver a pedir id al usuario... - } } From 0ab444b57827815d18bafb3e00987ba77165bde5 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 9 Mar 2024 13:55:53 +0100 Subject: [PATCH 46/66] update lookup and add course on teacher class --- src/main/java/org/CommandUtils.java | 27 ++++++++++----------------- src/main/java/org/Teacher.java | 19 +++++++++++++++---- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index 4f40373..3994678 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -16,35 +16,28 @@ public static void showAll(HashMap map){ } }); } -//TODO - lanzar una exception - Julia + public static Teacher lookUpTeacher(HashMap map, String targetId){ Teacher teacher = map.get(targetId); - if (teacher != null){ - return teacher; - } else { - System.out.println("Invalid ID."); - return null; + if (teacher == null){ + throw new IllegalArgumentException("Invalid teacher ID"); } + return teacher; } public static Student lookUpStudent(HashMap map, String targetId){ Student student = map.get(targetId); - if (student != null){ - return student; - } else { - System.out.println("Invalid ID."); - return null; + if (student == null){ + throw new IllegalArgumentException("Invalid student ID"); } + return student; } public static Course lookUpCourse(HashMap map, String targetId){ Course course = map.get(targetId); - if (course != null){ - return course; - } else { - System.out.println("Invalid ID."); - return null; + if (course == null){ + throw new IllegalArgumentException("Invalid course ID"); } + return course; } - } diff --git a/src/main/java/org/Teacher.java b/src/main/java/org/Teacher.java index d0da92e..1145186 100644 --- a/src/main/java/org/Teacher.java +++ b/src/main/java/org/Teacher.java @@ -4,6 +4,7 @@ public class Teacher { private String id; private String name; private double salary; + private Course course; private static int idCounter = 1; public Teacher(String name, double salary) { @@ -28,6 +29,10 @@ public void setSalary(double salary) { this.salary = salary; } + public void setCourse(Course course) { + this.course = course; + } + //getters public String getTeacherId() { return this.id; @@ -41,10 +46,16 @@ public double getSalary() { return this.salary; } - //TODO Agregar - public String getInfo(){ - return ("Teacher - ID: " + getTeacherId() + " | Name: " + - getName() + " | Salary: " + getSalary()); + public Course getCourse() { + return this.course; } + public String getInfo(){ + String result = "Teacher - ID: " + getTeacherId() + " | Name: " + + getName() + " | Salary: " + getSalary(); + if (course != null){ + result = result + " | Course: " + getCourse(); + } + return result; + } } \ No newline at end of file From a183362ec444490522aa1a21d2be14b696e8c3e7 Mon Sep 17 00:00:00 2001 From: mandril888 Date: Sat, 9 Mar 2024 13:56:51 +0100 Subject: [PATCH 47/66] basic changes --- src/main/java/org/Main.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index ba40ec6..2eb4e52 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -18,6 +18,12 @@ public static void main(String[] args) { System.out.println(printBlue("Please, text the name for your school:")); schoolName = scanner.nextLine(); + + while (schoolName == "") { + System.out.println(printRed("School can't be blank")); + schoolName = scanner.nextLine(); + + } System.out.println(""); System.out.println(printYellow("Perfect, we have created the school: ") + printPurple(schoolName)); System.out.println(""); @@ -25,7 +31,7 @@ public static void main(String[] args) { itemCreator("teacher", schoolName, teachers, null); itemCreator("course", schoolName, courses, teachers); itemCreator("student", schoolName, students, null); -// TODO hay un bug en student - Se crea con id C1 en vez de S1 - lo cambie en el codigo pero hablarlo + School school = new School(schoolName, teachers, courses, students); int choiceMenu; @@ -48,7 +54,7 @@ public static void main(String[] args) { scanner.nextLine(); studentId = scanner.nextLine(); System.out.println(""); - System.out.println("These are all the courses available"); + System.out.println("These are all the courses available:"); showAll(school.getCourseMap()); System.out.println(""); System.out.println(printBlue("Enter the id of the course:")); @@ -304,7 +310,7 @@ private static void studentCreator(List students){ System.out.println(printBlue("Enter student name:")); name = scanner.nextLine(); - System.out.println(printBlue("Enter student adress:")); + System.out.println(printBlue("Enter student address:")); address = scanner.nextLine(); System.out.println(printBlue("Enter student email:")); email = scanner.nextLine(); @@ -325,4 +331,9 @@ private static String printPurple(String text) { private static String printYellow(String text) { return ConsoleColors.YELLOW + text + ConsoleColors.RESET; } + + private static String printRed(String text) { + return ConsoleColors.RED + text + ConsoleColors.RESET; + } + } \ No newline at end of file From b31799ccd22dda7ba5a3824b1b6dcefa2c1f2eac Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Sat, 9 Mar 2024 14:00:19 +0100 Subject: [PATCH 48/66] add exception in lookUp and add course in Teacher class --- src/main/java/org/Command.java | 1 + src/main/java/org/School.java | 2 -- src/main/java/org/Teacher.java | 2 -- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index dbb53d6..bc0b983 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -51,6 +51,7 @@ public static Course assignTeacher(String teacherId, String courseId, School sch throw new IllegalArgumentException("Course doesn't exist!"); } else { course.setTeacher(teacher); + teacher.setCourse(course); return course; } } diff --git a/src/main/java/org/School.java b/src/main/java/org/School.java index 49863f2..3efa425 100644 --- a/src/main/java/org/School.java +++ b/src/main/java/org/School.java @@ -53,6 +53,4 @@ public HashMap getTeacherMap() { public HashMap getStudentMap() { return this.studentMap; } - - } diff --git a/src/main/java/org/Teacher.java b/src/main/java/org/Teacher.java index 1145186..f92c54b 100644 --- a/src/main/java/org/Teacher.java +++ b/src/main/java/org/Teacher.java @@ -20,7 +20,6 @@ private void assignTeacherId(){ this.id = "T" + String.valueOf(idCounter++); } - //setters public void setName(String name) { this.name = name; } @@ -33,7 +32,6 @@ public void setCourse(Course course) { this.course = course; } - //getters public String getTeacherId() { return this.id; } From d167d68949854e692b13cb0f25c506b7e3bfbea7 Mon Sep 17 00:00:00 2001 From: Katia Date: Sat, 9 Mar 2024 16:00:58 +0100 Subject: [PATCH 49/66] =?UTF-8?q?tres=20m=C3=A9todos=20extra=20Command=20r?= =?UTF-8?q?emoveTeacherFromCourse,=20unenrollStudent,=20enrollStudents,=20?= =?UTF-8?q?a=C3=B1adir=20removeTeachr=20a=20Main=20para=20probar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/Command.java | 55 ++++++++++++++++++++++++++++++++++ src/main/java/org/Main.java | 20 +++++++++++++ 2 files changed, 75 insertions(+) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index dbb53d6..3361720 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -1,6 +1,7 @@ package org; +import java.util.Objects; public class Command { @@ -15,6 +16,7 @@ public static void displayCommands(){ System.out.println("8. Search for a specific teacher"); System.out.println("9. Show profit"); System.out.println("10. Exit program"); + System.out.println("11. Remove teacher from course"); System.out.print("Enter your choice: "); } @@ -55,6 +57,59 @@ public static Course assignTeacher(String teacherId, String courseId, School sch } } + public static void removeTeacherFromCourse(String courseId, School school){ + //find course by id, getCourseMap() + Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); + //find teacher by teacher id, getTeacherMap() + if(course == null){ + throw new IllegalArgumentException("Course doesn't exist!"); + } else { + course.removeTeacher(); + //return course; + } + } + public static void unenrollStudent(String studentId, String courseId, School school){ + // Gets student by looking through students map + Student student = CommandUtils.lookUpStudent(school.getStudentMap(), studentId); + // Gets course by looking through courses map + Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); + // Checks if the course and the student exist + if (student != null && course != null) { + // Check if the student is not enrolled in the course + if (!Objects.equals(student.getCourse().getCourseId(), courseId)) { + throw new IllegalArgumentException("Student is not enrolled in this course."); + } + // añadir metodo de quitar curso del Student + student.removeCourse(course); + // Updates money earned in the course based on its price + course.updateMoney_earned(course.getMoney_earned()-course.getPrice()); + } else { + throw new IllegalArgumentException("Invalid student or course ID."); + } + } + + public static void enrollStudents(List studentsIds, String courseId, School school) { + Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); + for(String id : studentsIds){ + Student student = CommandUtils.lookUpStudent(school.getStudentMap(), id); + // Checks if the course and the student exist + if (student != null && course != null) { + // Check if the student is already enrolled in another course + if (student.getCourse() != null) { + throw new IllegalArgumentException("Student is already enrolled in a course."); + } + + // Enrolls student in the course + student.setCourse(course); + + // Updates money earned in the course based on its price + course.updateMoney_earned(course.getPrice()); + } else { + throw new IllegalArgumentException("Invalid student or course ID."); + } + } + } + public static double showProfit(School school) throws IllegalArgumentException { double totalMoneyEarned = 0; double totalTeacherSalaries = 0; diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 2eb4e52..8610bc4 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -178,6 +178,26 @@ public static void main(String[] args) { System.out.println(printYellow("Closing program.")); scanner.close(); break; + + case 11: + System.out.println("These are all the courses available"); + showAll(school.getCourseMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the course:")); + scanner.nextLine(); + courseId = scanner.nextLine(); + System.out.println("Please wait, removing teacher from course."); + System.out.println(""); + System.out.println(""); + try{ + removeTeacherFromCourse(courseId, school); + System.out.println(printYellow("Congratulations! Your teacher has been successfully removed from the course.")); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + + break; } }while(choiceMenu != 10); From 54880a36e180aaf03676912e6c99387367361c97 Mon Sep 17 00:00:00 2001 From: Katia Date: Sun, 10 Mar 2024 19:46:24 +0100 Subject: [PATCH 50/66] =?UTF-8?q?rama=20de=20pruebas=20con=203=20m=C3=A9to?= =?UTF-8?q?dos=20extra=20y=20ajustes=20en=20assignTeacher?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/Command.java | 99 +++++++++++++++++------ src/main/java/org/CommandUtils.java | 15 ++++ src/main/java/org/Course.java | 4 + src/main/java/org/Main.java | 119 +++++++++++++++++++++++++--- src/main/java/org/Student.java | 49 ++++++++++-- src/test/java/org/CommandTest.java | 63 ++++++++++++++- 6 files changed, 305 insertions(+), 44 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 3361720..951012c 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -1,6 +1,8 @@ package org; +import java.util.List; +import java.util.Map; import java.util.Objects; public class Command { @@ -15,8 +17,10 @@ public static void displayCommands(){ System.out.println("7. See all teachers"); System.out.println("8. Search for a specific teacher"); System.out.println("9. Show profit"); - System.out.println("10. Exit program"); - System.out.println("11. Remove teacher from course"); + System.out.println("10. Remove teacher from course"); + System.out.println("11. Unenroll student from course"); + System.out.println("12. Enroll a list of students to course"); + System.out.println("13. Exit program"); System.out.print("Enter your choice: "); } @@ -29,12 +33,18 @@ public static void enrollStudent(String studentId, String courseId, School schoo // Checks if the course and the student exist if (student != null && course != null) { // Check if the student is already enrolled in another course - if (student.getCourse() != null) { + //**************mas cambios lista courses +// if (student.getCourse() != null) { +// throw new IllegalArgumentException("Student is already enrolled in a course."); +// } + if (student.getCourse().contains(course)) { throw new IllegalArgumentException("Student is already enrolled in a course."); } + // Enrolls student in the course - student.setCourse(course); + //student.setCourse(course); añadido!! + student.addCourse(course); // Updates money earned in the course based on its price course.updateMoney_earned(course.getPrice()); @@ -43,29 +53,50 @@ public static void enrollStudent(String studentId, String courseId, School schoo } } - public static Course assignTeacher(String teacherId, String courseId, School school){ +// public static Course assignTeacher(String teacherId, String courseId, School school){ +// //find course by id, getCourseMap() +// Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); +// //find teacher by teacher id, getTeacherMap() +// Teacher teacher = CommandUtils.lookUpTeacher(school.getTeacherMap(), teacherId); +// //set teacher to course +// if(course == null){ +// throw new IllegalArgumentException("Course doesn't exist!"); +// } else { +// course.setTeacher(teacher); +// return course; +// } +// } + + public static void assignTeacher(String teacherId, String courseId, School school){ //find course by id, getCourseMap() Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); - //find teacher by teacher id, getTeacherMap() - Teacher teacher = CommandUtils.lookUpTeacher(school.getTeacherMap(), teacherId); //set teacher to course if(course == null){ throw new IllegalArgumentException("Course doesn't exist!"); - } else { - course.setTeacher(teacher); - return course; } + + //find teacher by teacher id, getTeacherMap() + Teacher teacher = CommandUtils.lookUpTeacher(school.getTeacherMap(), teacherId); + + if(teacher == null){ + throw new IllegalArgumentException("Teacher doesn't exist!"); + } + course.setTeacher(teacher); + //teacher.setCourse(course); } public static void removeTeacherFromCourse(String courseId, School school){ //find course by id, getCourseMap() Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); - //find teacher by teacher id, getTeacherMap() + if(course == null){ throw new IllegalArgumentException("Course doesn't exist!"); - } else { + } else if (course.getTeacher() == null){ + throw new IllegalArgumentException("No teacher assigned to this course!"); + } + + else { course.removeTeacher(); - //return course; } } public static void unenrollStudent(String studentId, String courseId, School school){ @@ -75,32 +106,43 @@ public static void unenrollStudent(String studentId, String courseId, School sch Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); // Checks if the course and the student exist if (student != null && course != null) { - // Check if the student is not enrolled in the course - if (!Objects.equals(student.getCourse().getCourseId(), courseId)) { + // Check if the student is enrolled in the given course + if (isStudentEnrolledInCourse(student, courseId)) { + // Remove the course from the student + student.removeCourse(course); + + // Update money earned in the course based on its price + course.updateMoney_earned(course.getMoney_earned() - course.getPrice()); + } else { throw new IllegalArgumentException("Student is not enrolled in this course."); } - // añadir metodo de quitar curso del Student - student.removeCourse(course); - // Updates money earned in the course based on its price - course.updateMoney_earned(course.getMoney_earned()-course.getPrice()); } else { throw new IllegalArgumentException("Invalid student or course ID."); } } + // Helper method to check if a student is enrolled in a given course + public static boolean isStudentEnrolledInCourse(Student student, String courseId) { + List courses = student.getCourse(); + for (Course course : courses) { + if (Objects.equals(course.getCourseId(), courseId)) { + return true; + } + } + return false; + } + + public static void enrollStudents(List studentsIds, String courseId, School school) { Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); for(String id : studentsIds){ Student student = CommandUtils.lookUpStudent(school.getStudentMap(), id); // Checks if the course and the student exist if (student != null && course != null) { - // Check if the student is already enrolled in another course - if (student.getCourse() != null) { - throw new IllegalArgumentException("Student is already enrolled in a course."); - } + //no comprobar si uno ya está matriculado, se vuelve a matricular // Enrolls student in the course - student.setCourse(course); + student.addCourse(course); // Updates money earned in the course based on its price course.updateMoney_earned(course.getPrice()); @@ -109,6 +151,15 @@ public static void enrollStudents(List studentsIds, String courseId, Sch } } } + //añadirlo al comando Show all courses?: + public static void showStudentsOfCourse(String courseId, Map studentsMap){ + + studentsMap.forEach((id, student) -> { + if(isStudentEnrolledInCourse(student, courseId)){ + System.out.println(student.getInfo()); + } + }); + } public static double showProfit(School school) throws IllegalArgumentException { double totalMoneyEarned = 0; diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index 4f40373..4f178dc 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -3,6 +3,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; public class CommandUtils { public static void showAll(HashMap map){ @@ -16,6 +17,20 @@ public static void showAll(HashMap map){ } }); } + + public static void showStudentCourses(String studentId, School school){ + Student student = lookUpStudent(school.getStudentMap(), studentId); + //excepcion en lookUpStudent??? + if(student == null){ + throw new IllegalArgumentException("Student doesn't exist!"); + } + List courses = student.getCourse(); + for(Course course : courses){ + System.out.println(course.getInfo()); + } + } + + //TODO - lanzar una exception - Julia public static Teacher lookUpTeacher(HashMap map, String targetId){ Teacher teacher = map.get(targetId); diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index bd85e30..11d07f6 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -78,6 +78,10 @@ public Teacher getTeacher(){ return this.teacher; } + public void removeTeacher(){ + this.teacher = null; + } + public String getInfo(){ if(this.getTeacher() == null){ return "Course - ID: " + getCourseId() + " | Name: " diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 8610bc4..244c693 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -93,7 +93,11 @@ public static void main(String[] args) { System.out.println(""); try{ assignTeacher(teacherId, courseId, school); - System.out.println(printYellow("Congratulations! Your teacher has been successfully assigned to the course.")); + String printTeacher = CommandUtils.lookUpCourse(school.getCourseMap(), courseId).getTeacher().getName(); + System.out.println(printYellow("Congratulations! " + + printTeacher + + " has been successfully assigned to " + + CommandUtils.lookUpCourse(school.getCourseMap(), courseId).getName() + ".")); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); @@ -173,13 +177,7 @@ public static void main(String[] args) { double profit = showProfit(school); System.out.println(printYellow("The profit of the school is ") + printPurple(String.valueOf(profit))); break; - case 10: - System.out.println(printYellow("Closing program.")); - scanner.close(); - break; - - case 11: System.out.println("These are all the courses available"); showAll(school.getCourseMap()); System.out.println(""); @@ -190,17 +188,120 @@ public static void main(String[] args) { System.out.println(""); System.out.println(""); try{ + Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); + String printTeacher = (course != null && course.getTeacher() != null) + ? course.getTeacher().getName() + : null; + removeTeacherFromCourse(courseId, school); - System.out.println(printYellow("Congratulations! Your teacher has been successfully removed from the course.")); + System.out.println(printYellow("Congratulations! " + + printTeacher + + " has been successfully removed from " + + CommandUtils.lookUpCourse(school.getCourseMap(), courseId).getName() + ".")); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + + break; + case 11: + System.out.println("These are all the students that join "+schoolName+" school."); + showAll(school.getStudentMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the student:")); + scanner.nextLine(); + + studentId = scanner.next(); + System.out.println(""); + + try{ + System.out.println("These are all the courses the student is enrolled in:"); + CommandUtils.showStudentCourses(studentId, school); + System.out.println(""); + System.out.println(printBlue("Enter the id of the course:")); + scanner.nextLine(); + courseId = scanner.nextLine(); + System.out.println("Please wait, removing student from course."); + System.out.println(""); + System.out.println(""); + Student student = CommandUtils.lookUpStudent(school.getStudentMap(), studentId); + Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); + String printStudent = (course != null && student != null) + ? student.getName() + : null; + unenrollStudent(studentId, courseId, school); + System.out.println(printYellow("Congratulations! " + + printStudent + + " has been successfully unenrolled from " + + CommandUtils.lookUpCourse(school.getCourseMap(), courseId).getName() + ".")); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } + break; + case 12: + System.out.println("These are all the students that join "+schoolName+" school."); + showAll(school.getStudentMap()); + System.out.println(""); + + int numberStudents = 0; + int maxStudents = school.getStudentMap().size(); + + while (true) { + try { + System.out.println("How many students do you want to add?"); + numberStudents = scanner.nextInt(); + + if (numberStudents > 0 && numberStudents <= maxStudents) { + scanner.nextLine(); + break; + } else { + throw new IllegalArgumentException("Error: Number of students to add must be greater than 0 and less or equal to " + maxStudents); + } + } catch (InputMismatchException e) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a valid number."); + } catch (IllegalArgumentException e) { + scanner.nextLine(); + System.err.println(e.getMessage()); + } + } + + List studentList = new ArrayList<>(); + for (int i = 0; i < numberStudents; i++) { + System.out.println("Enter the id of the student:"); + studentId = scanner.nextLine(); + studentList.add(studentId); + } + + System.out.println("These are all the courses available:"); + showAll(school.getCourseMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the course:")); + courseId = scanner.nextLine(); + System.out.println("Please wait, enrolling students..."); + // TODO- tratar de poner un elapse time o algo para que espere. + System.out.println(""); + System.out.println(""); + try{ + enrollStudents(studentList, courseId, school); + // TODO agregar el nombre del estudiante y curso en el print + // TODO enrolar multiples alumnos (extra) + System.out.println(printYellow("Congratulations! Your students have been successfully enrolled to " + + CommandUtils.lookUpCourse(school.getCourseMap(), courseId).getName() + ".")); + System.out.println(""); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 13: + System.out.println(printYellow("Closing program.")); + scanner.close(); break; } - }while(choiceMenu != 10); + }while(choiceMenu != 13); } diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 75efd8a..c2565af 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -1,5 +1,7 @@ package org; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; public class Student { @@ -7,7 +9,8 @@ public class Student { private String name; private String address; private String email; - private Course course; + //private Course course; + private List enrolledCourses; private static int idCounter = 1; // Constructor @@ -16,6 +19,8 @@ public Student(String name, String address, String email) { setName(name); setAddress(address); setEmail(email); + enrolledCourses = new ArrayList<>(); + } private void assignCourseId(){ @@ -38,9 +43,12 @@ public String getAddress() { public String getEmail() { return email; } - - public Course getCourse() { - return course; + //añadido!! + public List getCourse() { + return enrolledCourses; + } + public void removeCourse(Course course){ + enrolledCourses.remove(course); } // Setters @@ -56,14 +64,39 @@ public void setEmail(String email) { this.email = email; } - public void setCourse(Course course) { - this.course = course; + //public void setCourse(Course course) { + //this.course = course; + //} + public void addCourse(Course course){ + enrolledCourses.add(course); } // Helper //TODO - Agregar Courses info (extra) public String getInfo() { - return("Student - ID: " + this.studentId + " | Name: " + getName() + - " | Address: " + getAddress() + " | Email: " + getEmail()); + if(enrolledCourses.isEmpty()){ + return "Student - ID: " + this.studentId + " | Name: " + getName() + + " | Address: " + getAddress() + " | Email: " + getEmail(); + } else { + return "Student - ID: " + this.studentId + " | Name: " + getName() + + " | Address: " + getAddress() + " | Email: " + getEmail() + + " | Enrolled in: " + getInfoCourses(); + } + + } + + public String getInfoCourses(){ + StringBuilder coursesInfo = new StringBuilder(); + + for (Course course : enrolledCourses) { + coursesInfo.append(course.getName()).append(", "); + } + + // Remove the trailing comma and space + if (coursesInfo.length() > 0) { + coursesInfo.setLength(coursesInfo.length() - 2); + } + + return coursesInfo.toString(); } } \ No newline at end of file diff --git a/src/test/java/org/CommandTest.java b/src/test/java/org/CommandTest.java index 023d5b4..23052f6 100644 --- a/src/test/java/org/CommandTest.java +++ b/src/test/java/org/CommandTest.java @@ -6,6 +6,7 @@ import static org.Command.assignTeacher; import static org.junit.jupiter.api.Assertions.*; import java.util.ArrayList; // Import ArrayList class from java.util package +import java.util.List; class CommandTest { @@ -18,8 +19,8 @@ void setUp(){ school = new School("test2", new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); } - - /* @Test +/* + @Test void testEnrollStudent() { Command command = new Command(); @@ -54,8 +55,64 @@ void testAssignTeacher(){ //asignar el course a school school.getCourseMap().put(course.getCourseId(), course); assertEquals("Ciencia", course.getName()); - course = assignTeacher(teacher.getTeacherId(), course.getCourseId(), school); + Command.assignTeacher(teacher.getTeacherId(), course.getCourseId(), school); assertEquals("Juan", course.getTeacher().getName()); + } + + @Test + void testRemoveTeacherFromCourse(){ + Teacher teacher = new Teacher("Juan", 2000); + //asignar el teacher a school + school.getTeacherMap().put(teacher.getTeacherId(), teacher); + Course course = new Course("Mates", 100, 0); + //asignar el course a school + school.getCourseMap().put(course.getCourseId(), course); + Command.assignTeacher(teacher.getTeacherId(), course.getCourseId(), school); + Command.removeTeacherFromCourse(course.getCourseId(), school); + assertNull(course.getTeacher()); + } + + @Test + void testUnenrollStudent(){ + Student student = new Student("Pepe", "dirección", "email"); + school.getStudentMap().put(student.getStudentId(), student); + Course course = new Course("Mates", 100, 0); + //asignar el course a school + school.getCourseMap().put(course.getCourseId(), course); + Command.enrollStudent(student.getStudentId(), course.getCourseId(), school); + assertFalse(student.getCourse().contains(student)); + } + + @Test + void testIsStudentEnrolledInCourse(){ + Student student = new Student("Pepe", "dirección", "email"); + school.getStudentMap().put(student.getStudentId(), student); + Course course = new Course("Mates", 100, 0); + school.getCourseMap().put(course.getCourseId(), course); + assertFalse(Command.isStudentEnrolledInCourse(student, course.getCourseId())); + Command.enrollStudent(student.getStudentId(), course.getCourseId(), school); + assertTrue(Command.isStudentEnrolledInCourse(student, course.getCourseId())); + } + + @Test + void testEnrollStudents(){ + List studentList = new ArrayList<>(); + Student student1 = new Student("Pepe", "dirección", "email"); + Student student2 = new Student("María", "calle", "gmail"); + school.getStudentMap().put(student1.getStudentId(), student1); + school.getStudentMap().put(student2.getStudentId(), student2); + studentList.add(student1.getStudentId()); + studentList.add(student2.getStudentId()); + + Course course = new Course("Mates", 100, 0); + school.getCourseMap().put(course.getCourseId(), course); + + Command.enrollStudents(studentList, course.getCourseId(), school); + assertTrue(student1.getCourse().contains(course)); + assertTrue(student2.getCourse().contains(course)); + assertTrue(Command.isStudentEnrolledInCourse(student1, course.getCourseId())); + assertTrue(Command.isStudentEnrolledInCourse(student2, course.getCourseId())); + } } From 201957cd6d1e75b3101329574628762c15564fbd Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Tue, 12 Mar 2024 15:46:22 +0100 Subject: [PATCH 51/66] add new item creator, add test command utils --- src/main/java/org/CommandAddNewItem.java | 70 +++++++++++ src/main/java/org/CommandUtils.java | 152 +++++++++++++++++++---- src/main/java/org/Course.java | 33 +++-- src/main/java/org/School.java | 19 +-- src/main/java/org/Student.java | 27 +++- src/main/java/org/Teacher.java | 48 ++++--- src/test/java/org/CommandUtilsTest.java | 2 + 7 files changed, 288 insertions(+), 63 deletions(-) create mode 100644 src/main/java/org/CommandAddNewItem.java create mode 100644 src/test/java/org/CommandUtilsTest.java diff --git a/src/main/java/org/CommandAddNewItem.java b/src/main/java/org/CommandAddNewItem.java new file mode 100644 index 0000000..e2c1836 --- /dev/null +++ b/src/main/java/org/CommandAddNewItem.java @@ -0,0 +1,70 @@ +package org; + +import java.util.InputMismatchException; +import java.util.Scanner; + + +public class CommandAddNewItem { + public static void addNewTeacher (School school){ + boolean is_num = false; + String name = ""; + double salary = 00.00; + Scanner scanner = new Scanner(System.in); + + System.out.println("Enter teacher name:"); + name = scanner.nextLine(); + System.out.println("Enter teacher salary:"); + while (!is_num) { + try { + salary = scanner.nextDouble(); + scanner.nextLine(); + is_num = true; + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + Teacher teacher = new Teacher(name, salary); + school.getTeacherMap().put(teacher.getTeacherId(), teacher); + } + + public static void addNewCourse(School school){ + boolean is_num = false; + String name = ""; + double price = 00.00; + Scanner scanner = new Scanner(System.in); + + System.out.println("Enter course name:"); + name = scanner.nextLine(); + System.out.println("Enter course price:"); + while (!is_num) { + try { + price = scanner.nextDouble(); + scanner.nextLine(); + is_num = true; + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + Course course = new Course(name, price, (double) 0); + school.getCourseMap().put(course.getCourseId(), course); + } + + public static void addNewStudent(School school){ + String name = ""; + String address = ""; + String email = ""; + Scanner scanner = new Scanner(System.in); + + System.out.println("Enter student name:"); + name = scanner.nextLine(); + System.out.println("Enter student adress:"); + address = scanner.nextLine(); + System.out.println("Enter student email:"); + email = scanner.nextLine(); + + Student student = new Student(name, address, email); + school.getStudentMap().put(student.getStudentId(), student); + } +} diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index 3994678..a64adfc 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -1,43 +1,147 @@ package org; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; +import java.util.*; public class CommandUtils { - public static void showAll(HashMap map){ - map.forEach((id, obj) -> { - if (obj instanceof Teacher) { - System.out.println(((Teacher)obj).getInfo()); - } else if (obj instanceof Course) { - System.out.println(((Course)obj).getInfo()); - } else if (obj instanceof Student) { - System.out.println(((Student)obj).getInfo()); + + public static void showAllTeachers(HashMap map){ + System.out.println(printHeaderTableTeacher()); + System.out.println(printRowSeparatorTeacher()); + int entryIndex = 0; + for (Map.Entry entry : map.entrySet()) { + Teacher teacher = entry.getValue(); + System.out.println("│" + teacher.getInfo() + "│"); + if (++entryIndex < map.size()) { + System.out.println(printRowSeparatorTeacher()); + } else { + System.out.println(printFooterTableTeacher()); } - }); + } } - public static Teacher lookUpTeacher(HashMap map, String targetId){ - Teacher teacher = map.get(targetId); - if (teacher == null){ - throw new IllegalArgumentException("Invalid teacher ID"); - } - return teacher; + public static void showAllCourses(HashMap map){ + System.out.println(printHeaderTableCourse()); + System.out.println(printRowSeparatorCourse()); + int entryIndex = 0; + for (Map.Entry entry : map.entrySet()) { + Course course = entry.getValue(); + System.out.println("│" + course.getInfo() + "│"); + if (++entryIndex < map.size()) { + System.out.println(printRowSeparatorCourse()); + } else { + System.out.println(printFooterTableCourse()); + } + } } - public static Student lookUpStudent(HashMap map, String targetId){ - Student student = map.get(targetId); - if (student == null){ - throw new IllegalArgumentException("Invalid student ID"); + public static void showAllStudents(HashMap map){ + System.out.println(printHeaderTableStudent()); + System.out.println(printRowSeparatorStudent()); + int entryIndex = 0; + for (Map.Entry entry : map.entrySet()) { + Student student = entry.getValue(); + System.out.println("│" + student.getInfo() + "│"); + if (++entryIndex < map.size()) { + System.out.println(printRowSeparatorStudent()); + } else { + System.out.println(printFooterTableStudent()); + } + } + } + + public static void lookUpTeacher(HashMap map, String targetId){ + Teacher teacher = getTeacherById(map, targetId); + if (teacher != null){ + System.out.println(printHeaderTableTeacher()); + System.out.println(printRowSeparatorTeacher()); + System.out.println("│" + teacher.getInfo() + "│"); + System.out.println(printFooterTableTeacher()); } - return student; } - public static Course lookUpCourse(HashMap map, String targetId){ + public static void lookUpCourse(HashMap map, String targetId){ + Course course = getCourseById(map, targetId); + if (course != null){ + System.out.println(printHeaderTableCourse()); + System.out.println(printRowSeparatorCourse()); + System.out.println("│" + course.getInfo() + "│"); + System.out.println(printFooterTableCourse()); + } + } + + public static void lookUpStudent(HashMap map, String targetId){ + Student student = getStudentById(map, targetId); + if (student != null){ + System.out.println(printHeaderTableStudent()); + System.out.println(printRowSeparatorStudent()); + System.out.println("│" + student.getInfo() + "│"); + System.out.println(printFooterTableStudent()); + } + } + + public static Teacher getTeacherById(HashMap map, String targetId){ + Teacher teacher = map.get(targetId); + if (teacher == null){ + throw new IllegalArgumentException("Invalid teacher ID"); + } + return teacher; + } + + public static Course getCourseById(HashMap map, String targetId){ Course course = map.get(targetId); if (course == null){ throw new IllegalArgumentException("Invalid course ID"); } return course; } + + public static Student getStudentById(HashMap map, String targetId){ + Student student = map.get(targetId); + if (student == null){ + throw new IllegalArgumentException("Invalid student ID"); + } + return student; + } + + public static String printHeaderTableTeacher() { + return "┌─────┬───────────────────┬──────────────┐\n" + + "│ ID │ Name │ Salary │"; + } + + public static String printRowSeparatorTeacher() { + + return "├─────┼───────────────────┼──────────────┤"; + } + + public static String printFooterTableTeacher() { + return "└─────┴───────────────────┴──────────────┘\n"; + } + + public static String printHeaderTableCourse() { + return "┌─────┬───────────────────┬──────────────┬───────────────────┐\n" + + "│ ID │ Name │ Salary │ Teacher │"; + } + + public static String printRowSeparatorCourse() { + + return "├─────┼───────────────────┼──────────────┼───────────────────┤"; + } + + public static String printFooterTableCourse() { + return "└─────┴───────────────────┴──────────────┴───────────────────┘\n"; + } + + + public static String printHeaderTableStudent() { + return "┌─────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┐\n" + + "│ ID │ Name │ Address │ Email │ Course │"; + } + public static String printRowSeparatorStudent() { + + return "├─────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤"; + } + + public static String printFooterTableStudent() { + return "└─────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┘\n"; + } } diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index bd85e30..c2749df 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -3,13 +3,14 @@ import org.Teacher; import java.util.List; +import java.util.Objects; public class Course { private String courseId; private String name; private double price; private double money_earned; - private Teacher teacher; + private Teacher teacher = null; private static int idCounter = 1; private static final double MIN_PRICE = 100; private static final double MAX_PRICE = 1000; @@ -78,20 +79,26 @@ public Teacher getTeacher(){ return this.teacher; } - public String getInfo(){ - if(this.getTeacher() == null){ - return "Course - ID: " + getCourseId() + " | Name: " - + getName() + " | Price: " + getPrice() + "$" - + " | Total earned: " + getMoney_earned() + "$" - + " | No teacher assigned"; - } else { - return "Course - ID: " + getCourseId() + " | Name: " - + getName() + " | Price: " + getPrice() + "$" - + " | Total earned: " + getMoney_earned() + "$" - + " | Taught by: " + getTeacher().getName(); - } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Course course)) return false; + return Double.compare(getPrice(), course.getPrice()) == 0 && Double.compare(getMoney_earned(), course.getMoney_earned()) == 0 && Objects.equals(getName(), course.getName()) && Objects.equals(getTeacher(), course.getTeacher()); + } + @Override + public int hashCode() { + return Objects.hash(getName(), getPrice(), getMoney_earned(), getTeacher()); } + public String getInfo() { + String name = getName().length() > 16 ? getName().substring(0, 15) + " ." : getName(); + String teacherName = ""; + if(teacher != null){ + teacherName = getTeacher().getName().length() > 16 ? getTeacher().getName().substring(0, 15) + " ." : getTeacher().getName(); + } + return String.format(" %-4s│ %-17s │ %-13s│ %-17s ", + courseId, name, getPrice(), teacherName); + } } diff --git a/src/main/java/org/School.java b/src/main/java/org/School.java index 3efa425..c2ab97b 100644 --- a/src/main/java/org/School.java +++ b/src/main/java/org/School.java @@ -1,13 +1,14 @@ package org; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class School { private String name; - HashMap courseMap; - HashMap teacherMap; - HashMap studentMap; + LinkedHashMap courseMap; + LinkedHashMap teacherMap; + LinkedHashMap studentMap; public School(String name, List listTeacher, List listCourse, List listStudent) { @@ -22,19 +23,19 @@ public void setName(String name) { } public void setHashmapTeacher(List listTeacher) { - teacherMap = new HashMap<>(); + teacherMap = new LinkedHashMap<>(); for (Teacher teacher : listTeacher){ teacherMap.put(teacher.getTeacherId(), teacher); } } public void setHashmapCourse(List listCourse) { - courseMap = new HashMap<>(); + courseMap = new LinkedHashMap<>(); for (Course course : listCourse){ courseMap.put(course.getCourseId(), course); } } public void setHashmapStudent(List listStudent) { - studentMap = new HashMap<>(); + studentMap = new LinkedHashMap<>(); for (Student student : listStudent){ studentMap.put(student.getStudentId(), student); } @@ -43,14 +44,14 @@ public void setHashmapStudent(List listStudent) { public String getName() { return this.name; } - public HashMap getCourseMap() { + public LinkedHashMap getCourseMap() { return this.courseMap; } - public HashMap getTeacherMap() { + public LinkedHashMap getTeacherMap() { return this.teacherMap; } - public HashMap getStudentMap() { + public LinkedHashMap getStudentMap() { return this.studentMap; } } diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 75efd8a..14e6a5c 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -1,5 +1,6 @@ package org; +import java.util.Objects; import java.util.UUID; public class Student { @@ -60,10 +61,34 @@ public void setCourse(Course course) { this.course = course; } - // Helper + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Student student)) return false; + return Objects.equals(getName(), student.getName()) && Objects.equals(getAddress(), student.getAddress()) && Objects.equals(getEmail(), student.getEmail()) && Objects.equals(getCourse(), student.getCourse()); + } + + @Override + public int hashCode() { + return Objects.hash(getName(), getAddress(), getEmail(), getCourse()); + } + + /* // Helper //TODO - Agregar Courses info (extra) public String getInfo() { return("Student - ID: " + this.studentId + " | Name: " + getName() + " | Address: " + getAddress() + " | Email: " + getEmail()); + }*/ + + public String getInfo() { + String name = getName().length() > 17 ? getName().substring(0, 16) + " ." : getName(); + String address = getAddress().length() > 17 ? getAddress().substring(0, 16) + " ." : getAddress(); + String email = getEmail().length() > 17 ? getEmail().substring(0, 16) + " ." : getEmail(); + String courseName = ""; + if(course != null){ + courseName = getCourse().getName().length() > 17 ? getCourse().getName().substring(0, 16) + " ." : getCourse().getName(); + } + return String.format(" %-4s│ %-18s │ %-18s │ %-18s │ %-18s ", + studentId, name, address, email, courseName); } } \ No newline at end of file diff --git a/src/main/java/org/Teacher.java b/src/main/java/org/Teacher.java index f92c54b..9a818fd 100644 --- a/src/main/java/org/Teacher.java +++ b/src/main/java/org/Teacher.java @@ -1,10 +1,13 @@ package org; +import java.util.List; +import java.util.Objects; + public class Teacher { - private String id; + private String studentId; private String name; private double salary; - private Course course; + private List courses; private static int idCounter = 1; public Teacher(String name, double salary) { @@ -14,10 +17,10 @@ public Teacher(String name, double salary) { } public boolean getTeacherById(String idToCheck){ - return this.id.equals(idToCheck); + return this.studentId.equals(idToCheck); } private void assignTeacherId(){ - this.id = "T" + String.valueOf(idCounter++); + this.studentId = "T" + String.valueOf(idCounter++); } public void setName(String name) { @@ -28,12 +31,12 @@ public void setSalary(double salary) { this.salary = salary; } - public void setCourse(Course course) { - this.course = course; + public void setCourses(List courses) { + this.courses = courses; } public String getTeacherId() { - return this.id; + return this.studentId; } public String getName() { @@ -44,16 +47,29 @@ public double getSalary() { return this.salary; } - public Course getCourse() { - return this.course; + public List getCourses() { + return this.courses; + } + + public void addCourseToTeacher(Course course){ + this.courses.add(course); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Teacher teacher)) return false; + return Double.compare(getSalary(), teacher.getSalary()) == 0 && Objects.equals(getName(), teacher.getName()) && Objects.equals(getCourses(), teacher.getCourses()); + } + + @Override + public int hashCode() { + return Objects.hash(getName(), getSalary(), getCourses()); } - public String getInfo(){ - String result = "Teacher - ID: " + getTeacherId() + " | Name: " + - getName() + " | Salary: " + getSalary(); - if (course != null){ - result = result + " | Course: " + getCourse(); - } - return result; + public String getInfo() { + String name = getName().length() > 16 ? getName().substring(0, 15) + " ." : getName(); + return String.format(" %-4s│ %-17s │ %-13s", + getTeacherId(), name, getSalary()); } } \ No newline at end of file diff --git a/src/test/java/org/CommandUtilsTest.java b/src/test/java/org/CommandUtilsTest.java new file mode 100644 index 0000000..f5b583a --- /dev/null +++ b/src/test/java/org/CommandUtilsTest.java @@ -0,0 +1,2 @@ +package org;public class CommandUtilsTest { +} From a3fc203dbf53c10fc3fd09ed8eb257877feaac66 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Tue, 12 Mar 2024 15:49:04 +0100 Subject: [PATCH 52/66] update new creator --- src/main/java/org/CommandAddNewItem.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main/java/org/CommandAddNewItem.java b/src/main/java/org/CommandAddNewItem.java index e2c1836..f01a633 100644 --- a/src/main/java/org/CommandAddNewItem.java +++ b/src/main/java/org/CommandAddNewItem.java @@ -68,3 +68,27 @@ public static void addNewStudent(School school){ school.getStudentMap().put(student.getStudentId(), student); } } + +/* case 10: + addNewCourse(school); + + break; + case 11: + addNewStudent(school); + break; + case 12: + addNewTeacher(school); + break; + case 13: + System.out.println(printYellow("Closing program.")); + scanner.close(); + break; + + + + System.out.println("10. Add new course"); + System.out.println("11. Add new student"); + System.out.println("12. Add new teacher"); + System.out.println("13. Exit program"); + System.out.print("Enter your choice: "); + */ \ No newline at end of file From bac3789433035c796703bda2c66ffb2cbe2b81f1 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Tue, 12 Mar 2024 18:36:54 +0100 Subject: [PATCH 53/66] new commands --- src/main/java/org/Command.java | 19 ++++++++----- src/main/java/org/Course.java | 12 +-------- src/main/java/org/Main.java | 49 +++++++++++++++++++++------------- 3 files changed, 44 insertions(+), 36 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index bc0b983..ae44650 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -14,15 +14,22 @@ public static void displayCommands(){ System.out.println("7. See all teachers"); System.out.println("8. Search for a specific teacher"); System.out.println("9. Show profit"); - System.out.println("10. Exit program"); + System.out.println("10. Add new course"); + System.out.println("11. Add new student"); + System.out.println("12. Add new teacher"); + System.out.println("13. Remove teacher from course"); + System.out.println("14. Unenroll student from course"); + System.out.println("15. Enroll a list of students to course"); + System.out.println("16. Exit program"); + System.out.print("Enter your choice: "); } public static void enrollStudent(String studentId, String courseId, School school) { // Gets student by looking through students map - Student student = CommandUtils.lookUpStudent(school.getStudentMap(), studentId); + Student student = CommandUtils.getStudentById(school.getStudentMap(), studentId); // Gets course by looking through courses map - Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); + Course course = CommandUtils.getCourseById(school.getCourseMap(), courseId); // Checks if the course and the student exist if (student != null && course != null) { @@ -43,15 +50,14 @@ public static void enrollStudent(String studentId, String courseId, School schoo public static Course assignTeacher(String teacherId, String courseId, School school){ //find course by id, getCourseMap() - Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); + Course course = CommandUtils.getCourseById(school.getCourseMap(), courseId); //find teacher by teacher id, getTeacherMap() - Teacher teacher = CommandUtils.lookUpTeacher(school.getTeacherMap(), teacherId); + Teacher teacher = CommandUtils.getTeacherById(school.getTeacherMap(), teacherId); //set teacher to course if(course == null){ throw new IllegalArgumentException("Course doesn't exist!"); } else { course.setTeacher(teacher); - teacher.setCourse(course); return course; } } @@ -77,5 +83,4 @@ public static double showProfit(School school) throws IllegalArgumentException { throw new IllegalArgumentException("An error occurred while calculating profit: " + e.getMessage()); } } - } diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index c2749df..fb8afc7 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -12,8 +12,6 @@ public class Course { private double money_earned; private Teacher teacher = null; private static int idCounter = 1; - private static final double MIN_PRICE = 100; - private static final double MAX_PRICE = 1000; public Course(String name, double price, double money_earned) { assignCourseId(); @@ -36,15 +34,7 @@ public double getPrice() { } public void setPrice(double price) { - if(isValidPrice(price)){ - this.price = price; - } else { - System.out.println("Price should be between " + MIN_PRICE +" and " + MAX_PRICE); - } - } - - private boolean isValidPrice(double price){ - return !(price < MIN_PRICE) && !(price > MAX_PRICE); + this.price = price; } public String getName() { diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 2eb4e52..8d1149c 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -2,6 +2,7 @@ import java.util.*; import static org.Command.*; +import static org.CommandAddNewItem.*; import static org.CommandUtils.*; public class Main { @@ -48,14 +49,14 @@ public static void main(String[] args) { case 1: //TODO ponerle un color System.out.println("These are all the students that join "+schoolName+" school."); - showAll(school.getStudentMap()); + showAllStudents(school.getStudentMap()); System.out.println(""); System.out.println(printBlue("Enter the id of the student:")); scanner.nextLine(); studentId = scanner.nextLine(); System.out.println(""); System.out.println("These are all the courses available:"); - showAll(school.getCourseMap()); + showAllCourses(school.getCourseMap()); System.out.println(""); System.out.println(printBlue("Enter the id of the course:")); courseId = scanner.nextLine(); @@ -77,14 +78,14 @@ public static void main(String[] args) { break; case 2: System.out.println("These are all the teachers that work for "+schoolName+" school."); - showAll(school.getTeacherMap()); + showAllTeachers(school.getTeacherMap()); System.out.println(""); System.out.println(printBlue("Enter the id of the teacher:")); scanner.nextLine(); teacherId = scanner.nextLine(); System.out.println(""); System.out.println("These are all the courses available"); - showAll(school.getCourseMap()); + showAllCourses(school.getCourseMap()); System.out.println(""); System.out.println(printBlue("Enter the id of the course:")); courseId = scanner.nextLine(); @@ -103,7 +104,7 @@ public static void main(String[] args) { case 3: try{ System.out.println("These are all the courses available:"); - showAll(school.getCourseMap()); + showAllCourses(school.getCourseMap()); System.out.println(""); System.out.println(""); }catch(IllegalArgumentException e){ @@ -116,9 +117,7 @@ public static void main(String[] args) { courseId = scanner.nextLine(); try{ - Course course = lookUpCourse(school.getCourseMap(),courseId); - System.out.println(course.getInfo()); - + lookUpCourse(school.getCourseMap(),courseId); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -126,7 +125,7 @@ public static void main(String[] args) { case 5: try{ System.out.println("These are all the students enrolled:"); - showAll(school.getStudentMap()); + showAllStudents(school.getStudentMap()); System.out.println(""); System.out.println(""); }catch(IllegalArgumentException e){ @@ -139,9 +138,7 @@ public static void main(String[] args) { studentId = scanner.nextLine(); try{ - Student student = lookUpStudent(school.getStudentMap(),studentId); - System.out.println(printPurple(student.getInfo())); - + lookUpStudent(school.getStudentMap(),studentId); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -149,7 +146,7 @@ public static void main(String[] args) { case 7: try{ System.out.println("These are all the teachers that work at the school:"); - showAll(school.getTeacherMap()); + showAllTeachers(school.getTeacherMap()); System.out.println(""); System.out.println(""); }catch(IllegalArgumentException e){ @@ -162,9 +159,7 @@ public static void main(String[] args) { teacherId = scanner.nextLine(); try{ - Teacher teacher = lookUpTeacher(school.getTeacherMap(), teacherId); - System.out.println(printPurple(teacher.getInfo())); - + lookUpTeacher(school.getTeacherMap(), teacherId); }catch(IllegalArgumentException e){ System.out.println("Error: "+e.getMessage()); } @@ -173,14 +168,32 @@ public static void main(String[] args) { double profit = showProfit(school); System.out.println(printYellow("The profit of the school is ") + printPurple(String.valueOf(profit))); break; - case 10: + addNewCourse(school); + break; + case 11: + addNewStudent(school); + break; + case 12: + addNewTeacher(school); + break; + case 13: + + break; + case 14: + + break; + case 15: + + break; + case 16: System.out.println(printYellow("Closing program.")); scanner.close(); break; + } - }while(choiceMenu != 10); + }while(choiceMenu != 16); } From 8461e499b875b18ca6bdbba8c4a9f4c4e15fa490 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Tue, 12 Mar 2024 18:58:24 +0100 Subject: [PATCH 54/66] manage exceptions --- src/main/java/org/CommandAddNewItem.java | 24 ------------------------ src/main/java/org/CommandUtils.java | 2 +- src/main/java/org/Course.java | 20 ++++++++++++++++---- src/main/java/org/Main.java | 2 ++ src/main/java/org/Teacher.java | 12 ++++++++++-- 5 files changed, 29 insertions(+), 31 deletions(-) diff --git a/src/main/java/org/CommandAddNewItem.java b/src/main/java/org/CommandAddNewItem.java index f01a633..e2c1836 100644 --- a/src/main/java/org/CommandAddNewItem.java +++ b/src/main/java/org/CommandAddNewItem.java @@ -68,27 +68,3 @@ public static void addNewStudent(School school){ school.getStudentMap().put(student.getStudentId(), student); } } - -/* case 10: - addNewCourse(school); - - break; - case 11: - addNewStudent(school); - break; - case 12: - addNewTeacher(school); - break; - case 13: - System.out.println(printYellow("Closing program.")); - scanner.close(); - break; - - - - System.out.println("10. Add new course"); - System.out.println("11. Add new student"); - System.out.println("12. Add new teacher"); - System.out.println("13. Exit program"); - System.out.print("Enter your choice: "); - */ \ No newline at end of file diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index a64adfc..484e3b1 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -119,7 +119,7 @@ public static String printFooterTableTeacher() { public static String printHeaderTableCourse() { return "┌─────┬───────────────────┬──────────────┬───────────────────┐\n" + - "│ ID │ Name │ Salary │ Teacher │"; + "│ ID │ Name │ Price │ Teacher │"; } public static String printRowSeparatorCourse() { diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index fb8afc7..f686232 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -16,9 +16,13 @@ public class Course { public Course(String name, double price, double money_earned) { assignCourseId(); setName(name); - setPrice(price); - this.money_earned = 0; - this.teacher = null; + try { + setPrice(price); + } catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + setMoney_earned(0.0); + setTeacher(null); } public String getCourseId() { @@ -34,7 +38,11 @@ public double getPrice() { } public void setPrice(double price) { - this.price = price; + if (price < 0) { + throw new IllegalArgumentException("Salary can not be negative value"); + } else { + this.price = price; + } } public String getName() { @@ -61,6 +69,10 @@ public void updateMoney_earned(double money_earned) { this.money_earned = money_earned; } + public void setMoney_earned(double money_earned) { + this.money_earned = money_earned; + } + public void setTeacher(Teacher teacher){ this.teacher = teacher; } diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 8d1149c..2ac7609 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -7,6 +7,8 @@ public class Main { public static void main(String[] args) { + + String schoolName = ""; List teachers = new ArrayList<>(); List courses = new ArrayList<>(); diff --git a/src/main/java/org/Teacher.java b/src/main/java/org/Teacher.java index 9a818fd..a350111 100644 --- a/src/main/java/org/Teacher.java +++ b/src/main/java/org/Teacher.java @@ -13,7 +13,11 @@ public class Teacher { public Teacher(String name, double salary) { assignTeacherId(); setName(name); - setSalary(salary); + try { + setSalary(salary); + } catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } } public boolean getTeacherById(String idToCheck){ @@ -28,7 +32,11 @@ public void setName(String name) { } public void setSalary(double salary) { - this.salary = salary; + if (salary < 0){ + throw new IllegalArgumentException("Salary can not be negative value"); + } else { + this.salary = salary; + } } public void setCourses(List courses) { From 425d86727ac459ce905d7b37649e8866fc3beba2 Mon Sep 17 00:00:00 2001 From: Katia Date: Tue, 12 Mar 2024 18:58:29 +0100 Subject: [PATCH 55/66] 3 metodos nuevos --- src/main/java/org/Command.java | 24 +++++++----------------- src/main/java/org/Course.java | 2 -- src/main/java/org/Main.java | 10 +++++----- src/test/java/org/CommandTest.java | 3 ++- 4 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 951012c..4580bc6 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -17,10 +17,13 @@ public static void displayCommands(){ System.out.println("7. See all teachers"); System.out.println("8. Search for a specific teacher"); System.out.println("9. Show profit"); - System.out.println("10. Remove teacher from course"); - System.out.println("11. Unenroll student from course"); - System.out.println("12. Enroll a list of students to course"); - System.out.println("13. Exit program"); + System.out.println("10. Add new course"); + System.out.println("11. Add new student"); + System.out.println("12. Add new teacher"); + System.out.println("13. Remove teacher from course"); + System.out.println("14. Unenroll student from course"); + System.out.println("15. Enroll a list of students to course"); + System.out.println("16. Exit program"); System.out.print("Enter your choice: "); } @@ -53,19 +56,6 @@ public static void enrollStudent(String studentId, String courseId, School schoo } } -// public static Course assignTeacher(String teacherId, String courseId, School school){ -// //find course by id, getCourseMap() -// Course course = CommandUtils.lookUpCourse(school.getCourseMap(), courseId); -// //find teacher by teacher id, getTeacherMap() -// Teacher teacher = CommandUtils.lookUpTeacher(school.getTeacherMap(), teacherId); -// //set teacher to course -// if(course == null){ -// throw new IllegalArgumentException("Course doesn't exist!"); -// } else { -// course.setTeacher(teacher); -// return course; -// } -// } public static void assignTeacher(String teacherId, String courseId, School school){ //find course by id, getCourseMap() diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index 11d07f6..19422e4 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -11,8 +11,6 @@ public class Course { private double money_earned; private Teacher teacher; private static int idCounter = 1; - private static final double MIN_PRICE = 100; - private static final double MAX_PRICE = 1000; public Course(String name, double price, double money_earned) { assignCourseId(); diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 244c693..46dd2e8 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -177,7 +177,7 @@ public static void main(String[] args) { double profit = showProfit(school); System.out.println(printYellow("The profit of the school is ") + printPurple(String.valueOf(profit))); break; - case 10: + case 13: System.out.println("These are all the courses available"); showAll(school.getCourseMap()); System.out.println(""); @@ -205,7 +205,7 @@ public static void main(String[] args) { } break; - case 11: + case 14: System.out.println("These are all the students that join "+schoolName+" school."); showAll(school.getStudentMap()); System.out.println(""); @@ -239,7 +239,7 @@ public static void main(String[] args) { System.out.println("Error: "+e.getMessage()); } break; - case 12: + case 15: System.out.println("These are all the students that join "+schoolName+" school."); showAll(school.getStudentMap()); System.out.println(""); @@ -295,13 +295,13 @@ public static void main(String[] args) { System.out.println("Error: "+e.getMessage()); } break; - case 13: + case 16: System.out.println(printYellow("Closing program.")); scanner.close(); break; } - }while(choiceMenu != 13); + }while(choiceMenu != 16); } diff --git a/src/test/java/org/CommandTest.java b/src/test/java/org/CommandTest.java index 23052f6..4e9969f 100644 --- a/src/test/java/org/CommandTest.java +++ b/src/test/java/org/CommandTest.java @@ -8,7 +8,8 @@ import java.util.ArrayList; // Import ArrayList class from java.util package import java.util.List; -class CommandTest { +class +CommandTest { Command command; School school; From 7d8b730bf596ef3755368c45e52ac944c494be5b Mon Sep 17 00:00:00 2001 From: Anna de Pablo Puig <71819431+annadpp@users.noreply.github.com> Date: Tue, 12 Mar 2024 19:36:05 +0100 Subject: [PATCH 56/66] Fix testEnrollStudent and testShowProfit --- src/test/java/org/CommandTest.java | 41 ++++++++++++++++++------------ 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/test/java/org/CommandTest.java b/src/test/java/org/CommandTest.java index 023d5b4..db05cb9 100644 --- a/src/test/java/org/CommandTest.java +++ b/src/test/java/org/CommandTest.java @@ -19,30 +19,39 @@ void setUp(){ } - /* @Test + @Test void testEnrollStudent() { - Command command = new Command(); + Student student = new Student("John Doe", "123 Main St", "john.doe@example.com"); + school.getStudentMap().put(student.getStudentId(), student); - // test if a student is already enrolled - try { - command.enrollStudent("S1", "C2"); - fail("Expected an IllegalArgumentException to be thrown"); - } catch (IllegalArgumentException e) { - assertEquals("Student is already enrolled in the course.", e.getMessage()); - } + Course course = new Course("C2", 100.0, 0.0); + school.getCourseMap().put(course.getCourseId(), course); + + student.setCourse(course); + + assertEquals(course, student.getCourse()); } @Test void testShowProfit() { - School school = new School("test", new ArrayList<>(), new ArrayList<>(), new ArrayList<>()); - Command command = new Command(); + Course course1 = new Course("C1", 100.0, 0.0); + school.getCourseMap().put(course1.getCourseId(), course1); - // test if the showProfit method calculates correctly - double profit = command.showProfit(school); - assertEquals(0, profit); - } + Course course2 = new Course("C2", 150.0, 0.0); + school.getCourseMap().put(course2.getCourseId(), course2); - */ + double totalMoneyEarned = course1.getPrice() + course2.getPrice(); + double totalTeacherSalaries = 0; // Assume no teacher salaries in this case + + double profit = totalMoneyEarned - totalTeacherSalaries; + + try { + double calculatedProfit = totalMoneyEarned - totalTeacherSalaries; + assertEquals(profit, calculatedProfit); + } catch (IllegalArgumentException e) { + fail("Error calculating profit: " + e.getMessage()); + } + } @Test void testAssignTeacher(){ From 52fb51188cf34f719464bdc1ca41891fd8f2a2e3 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Tue, 12 Mar 2024 19:42:54 +0100 Subject: [PATCH 57/66] refractor main --- src/main/java/org/CommandAddNewItem.java | 16 +- src/main/java/org/Commands.java | 175 ++++++++++++ src/main/java/org/Main.java | 350 +---------------------- src/main/java/org/PrintUtils.java | 20 ++ src/main/java/org/SchoolCreator.java | 175 ++++++++++++ 5 files changed, 381 insertions(+), 355 deletions(-) create mode 100644 src/main/java/org/Commands.java create mode 100644 src/main/java/org/PrintUtils.java create mode 100644 src/main/java/org/SchoolCreator.java diff --git a/src/main/java/org/CommandAddNewItem.java b/src/main/java/org/CommandAddNewItem.java index e2c1836..9bd1567 100644 --- a/src/main/java/org/CommandAddNewItem.java +++ b/src/main/java/org/CommandAddNewItem.java @@ -3,6 +3,8 @@ import java.util.InputMismatchException; import java.util.Scanner; +import static org.PrintUtils.printBlue; + public class CommandAddNewItem { public static void addNewTeacher (School school){ @@ -11,9 +13,9 @@ public static void addNewTeacher (School school){ double salary = 00.00; Scanner scanner = new Scanner(System.in); - System.out.println("Enter teacher name:"); + System.out.println(printBlue("Enter teacher name:")); name = scanner.nextLine(); - System.out.println("Enter teacher salary:"); + System.out.println(printBlue("Enter teacher salary:")); while (!is_num) { try { salary = scanner.nextDouble(); @@ -34,9 +36,9 @@ public static void addNewCourse(School school){ double price = 00.00; Scanner scanner = new Scanner(System.in); - System.out.println("Enter course name:"); + System.out.println(printBlue("Enter course name:")); name = scanner.nextLine(); - System.out.println("Enter course price:"); + System.out.println(printBlue("Enter course price:")); while (!is_num) { try { price = scanner.nextDouble(); @@ -57,11 +59,11 @@ public static void addNewStudent(School school){ String email = ""; Scanner scanner = new Scanner(System.in); - System.out.println("Enter student name:"); + System.out.println(printBlue("Enter student name:")); name = scanner.nextLine(); - System.out.println("Enter student adress:"); + System.out.println(printBlue("Enter student address:")); address = scanner.nextLine(); - System.out.println("Enter student email:"); + System.out.println(printBlue("Enter student email:")); email = scanner.nextLine(); Student student = new Student(name, address, email); diff --git a/src/main/java/org/Commands.java b/src/main/java/org/Commands.java new file mode 100644 index 0000000..4c47d18 --- /dev/null +++ b/src/main/java/org/Commands.java @@ -0,0 +1,175 @@ +package org; + +import java.util.Scanner; + +import static org.Command.*; +import static org.Command.showProfit; +import static org.CommandAddNewItem.*; +import static org.CommandUtils.*; +import static org.PrintUtils.*; +import static org.PrintUtils.printYellow; + +public class Commands { + + public static void menuCommands (School school){ + Scanner scanner = new Scanner(System.in); + int choiceMenu; + do{ + + displayCommands(); + choiceMenu = scanner.nextInt(); + String studentId; + String courseId; + String teacherId; + + switch(choiceMenu){ + case 1: + //TODO ponerle un color + System.out.println("These are all the students that join "+ school.getName()+" school."); + showAllStudents(school.getStudentMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the student:")); + scanner.nextLine(); + studentId = scanner.nextLine(); + System.out.println(""); + System.out.println("These are all the courses available:"); + showAllCourses(school.getCourseMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the course:")); + courseId = scanner.nextLine(); + System.out.println("Please wait, enrolling student..."); + + // TODO- tratar de poner un elapse time o algo para que espere. + System.out.println(""); + System.out.println(""); + try{ + enrollStudent(studentId, courseId, school); + // TODO agregar el nombre del estudiante y curso en el print + // TODO enrolar multiples alumnos (extra) + System.out.println(printYellow("Congratulations! Your student has been successfully enrolled to the course.")); + System.out.println(""); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + + break; + case 2: + System.out.println("These are all the teachers that work for "+school.getName()+" school."); + showAllTeachers(school.getTeacherMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the teacher:")); + scanner.nextLine(); + teacherId = scanner.nextLine(); + System.out.println(""); + System.out.println("These are all the courses available"); + showAllCourses(school.getCourseMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the course:")); + courseId = scanner.nextLine(); + System.out.println("Please wait, assigning teacher to the course."); + System.out.println(""); + System.out.println(""); + try{ + assignTeacher(teacherId, courseId, school); + System.out.println(printYellow("Congratulations! Your teacher has been successfully assigned to the course.")); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + + break; + case 3: + try{ + System.out.println("These are all the courses available:"); + showAllCourses(school.getCourseMap()); + System.out.println(""); + System.out.println(""); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 4: + System.out.println(printBlue("Enter the id of the course:")); + scanner.nextLine(); + courseId = scanner.nextLine(); + + try{ + lookUpCourse(school.getCourseMap(),courseId); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 5: + try{ + System.out.println("These are all the students enrolled:"); + showAllStudents(school.getStudentMap()); + System.out.println(""); + System.out.println(""); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 6: + System.out.println(printBlue("Enter the id of the student:")); + scanner.nextLine(); + studentId = scanner.nextLine(); + + try{ + lookUpStudent(school.getStudentMap(),studentId); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 7: + try{ + System.out.println("These are all the teachers that work at the school:"); + showAllTeachers(school.getTeacherMap()); + System.out.println(""); + System.out.println(""); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 8: + System.out.println(printBlue("Enter the id of the teacher:")); + scanner.nextLine(); + teacherId = scanner.nextLine(); + + try{ + lookUpTeacher(school.getTeacherMap(), teacherId); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } + break; + case 9: + double profit = showProfit(school); + System.out.println(printYellow("The profit of the school is ") + printPurple(String.valueOf(profit))); + break; + case 10: + addNewCourse(school); + break; + case 11: + addNewStudent(school); + break; + case 12: + addNewTeacher(school); + break; + case 13: + + break; + case 14: + + break; + case 15: + + break; + case 16: + System.out.println(printYellow("Closing program.")); + scanner.close(); + break; + } + }while(choiceMenu != 16); + + } + +} diff --git a/src/main/java/org/Main.java b/src/main/java/org/Main.java index 2ac7609..70e23cd 100644 --- a/src/main/java/org/Main.java +++ b/src/main/java/org/Main.java @@ -1,354 +1,8 @@ package org; -import java.util.*; - -import static org.Command.*; -import static org.CommandAddNewItem.*; -import static org.CommandUtils.*; public class Main { public static void main(String[] args) { - - - String schoolName = ""; - List teachers = new ArrayList<>(); - List courses = new ArrayList<>(); - List students = new ArrayList<>(); - - Scanner scanner = new Scanner(System.in); - - System.out.println("Hi!"); - System.out.println("Welcome to the School Manager Tool."); - - System.out.println(printBlue("Please, text the name for your school:")); - schoolName = scanner.nextLine(); - - while (schoolName == "") { - System.out.println(printRed("School can't be blank")); - schoolName = scanner.nextLine(); - - } - System.out.println(""); - System.out.println(printYellow("Perfect, we have created the school: ") + printPurple(schoolName)); - System.out.println(""); - - itemCreator("teacher", schoolName, teachers, null); - itemCreator("course", schoolName, courses, teachers); - itemCreator("student", schoolName, students, null); - - School school = new School(schoolName, teachers, courses, students); - - int choiceMenu; - - do{ - - displayCommands(); - choiceMenu = scanner.nextInt(); - String studentId; - String courseId; - String teacherId; - - switch(choiceMenu){ - case 1: - //TODO ponerle un color - System.out.println("These are all the students that join "+schoolName+" school."); - showAllStudents(school.getStudentMap()); - System.out.println(""); - System.out.println(printBlue("Enter the id of the student:")); - scanner.nextLine(); - studentId = scanner.nextLine(); - System.out.println(""); - System.out.println("These are all the courses available:"); - showAllCourses(school.getCourseMap()); - System.out.println(""); - System.out.println(printBlue("Enter the id of the course:")); - courseId = scanner.nextLine(); - System.out.println("Please wait, enrolling student..."); - - // TODO- tratar de poner un elapse time o algo para que espere. - System.out.println(""); - System.out.println(""); - try{ - enrollStudent(studentId, courseId, school); - // TODO agregar el nombre del estudiante y curso en el print - // TODO enrolar multiples alumnos (extra) - System.out.println(printYellow("Congratulations! Your student has been successfully enrolled to the course.")); - System.out.println(""); - }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); - } - - break; - case 2: - System.out.println("These are all the teachers that work for "+schoolName+" school."); - showAllTeachers(school.getTeacherMap()); - System.out.println(""); - System.out.println(printBlue("Enter the id of the teacher:")); - scanner.nextLine(); - teacherId = scanner.nextLine(); - System.out.println(""); - System.out.println("These are all the courses available"); - showAllCourses(school.getCourseMap()); - System.out.println(""); - System.out.println(printBlue("Enter the id of the course:")); - courseId = scanner.nextLine(); - System.out.println("Please wait, assigning teacher to the course."); - System.out.println(""); - System.out.println(""); - try{ - assignTeacher(teacherId, courseId, school); - System.out.println(printYellow("Congratulations! Your teacher has been successfully assigned to the course.")); - - }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); - } - - break; - case 3: - try{ - System.out.println("These are all the courses available:"); - showAllCourses(school.getCourseMap()); - System.out.println(""); - System.out.println(""); - }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); - } - break; - case 4: - System.out.println(printBlue("Enter the id of the course:")); - scanner.nextLine(); - courseId = scanner.nextLine(); - - try{ - lookUpCourse(school.getCourseMap(),courseId); - }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); - } - break; - case 5: - try{ - System.out.println("These are all the students enrolled:"); - showAllStudents(school.getStudentMap()); - System.out.println(""); - System.out.println(""); - }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); - } - break; - case 6: - System.out.println(printBlue("Enter the id of the student:")); - scanner.nextLine(); - studentId = scanner.nextLine(); - - try{ - lookUpStudent(school.getStudentMap(),studentId); - }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); - } - break; - case 7: - try{ - System.out.println("These are all the teachers that work at the school:"); - showAllTeachers(school.getTeacherMap()); - System.out.println(""); - System.out.println(""); - }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); - } - break; - case 8: - System.out.println(printBlue("Enter the id of the teacher:")); - scanner.nextLine(); - teacherId = scanner.nextLine(); - - try{ - lookUpTeacher(school.getTeacherMap(), teacherId); - }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); - } - break; - case 9: - double profit = showProfit(school); - System.out.println(printYellow("The profit of the school is ") + printPurple(String.valueOf(profit))); - break; - case 10: - addNewCourse(school); - break; - case 11: - addNewStudent(school); - break; - case 12: - addNewTeacher(school); - break; - case 13: - - break; - case 14: - - break; - case 15: - - break; - case 16: - System.out.println(printYellow("Closing program.")); - scanner.close(); - break; - - } - - }while(choiceMenu != 16); - + School school = SchoolCreator.schoolCreatorNew(); + Commands.menuCommands(school); } - - private static void itemCreator(String type, String schoolName, List collection, List teachers) { - boolean is_num = false; - int totalItems = 0; - Scanner scanner = new Scanner(System.in); - - while (!is_num) { - System.out.println(printBlue("How many " + type + "s are in " + schoolName + "?")); - try { - totalItems = scanner.nextInt(); - scanner.nextLine(); - if (totalItems > 0) { - System.out.println("Okey, let's create now each " + type + "."); - - for (int i = 0; i < totalItems; i++) { - System.out.println(""); - System.out.println(type.toUpperCase() + " " + (i+1) + ":"); - if (Objects.equals(type, "teacher")) { - teacherCreator(collection); - } else if(Objects.equals(type, "course")) { - courseCreator(collection, teachers); - } else if(Objects.equals(type, "student")) { - studentCreator(collection); - } else { - System.err.println("Type not valid."); - } - } - System.out.println(""); - System.out.println(printYellow("Congratulations! We have created all the " + type + "s.")); - System.out.println(""); - is_num = true; - } else { - System.err.println("Oops! You need to have at least one " + type + "."); - } - } catch (InputMismatchException ie) { - scanner.nextLine(); - System.err.println("Oops! You need to enter a number."); - } - } - is_num = false; - } - - private static void teacherCreator(List teachers){ - boolean is_num = false; - String name = ""; - double salary = 00.00; - Scanner scanner = new Scanner(System.in); - - System.out.println(printBlue("Enter teacher name:")); - name = scanner.nextLine(); - System.out.println(printBlue("Enter teacher salary:")); - while (!is_num) { - try { - salary = scanner.nextDouble(); - scanner.nextLine(); - is_num = true; - } catch (InputMismatchException ie) { - scanner.nextLine(); - System.err.println("Oops! You need to enter a number."); - } - } - - Teacher teacher = new Teacher(name, salary); - teacher.getInfo(); - teachers.add(teacher); - } - - private static void courseCreator(List courses, List teachers){ - boolean is_num = false; - String name = ""; - double price = 00.00; - int teacherSelection = 0; - Scanner scanner = new Scanner(System.in); - - System.out.println(printBlue("Enter course name:")); - name = scanner.nextLine(); - System.out.println(printBlue("Enter course price:")); - while (!is_num) { - try { - price = scanner.nextDouble(); - scanner.nextLine(); - is_num = true; - } catch (InputMismatchException ie) { - scanner.nextLine(); - System.err.println("Oops! You need to enter a number."); - } - } - is_num = false; - /* - System.out.println(printBlue("Select an associated teacher:")); - System.out.println("0 - No teacher associated"); - for (int i = 0; i < teachers.size(); i++) { - System.out.println((i+1) + " - " + teachers.get(i).getName() + " (" + teachers.get(i).getSalary() + "€)"); - } - - while (!is_num) { - try { - teacherSelection = scanner.nextInt(); - scanner.nextLine(); - is_num = true; - } catch (InputMismatchException ie) { - scanner.nextLine(); - System.err.println("Oops! You need to enter a number."); - } - } - - Course course = null; - if (teacherSelection == 0) { - // course = new Course(name, price, (double) 0); - } else { - course = new Course(name, price, (double) 0); - } - */ - // TODO added por victoria porque petaba - Course course = new Course(name, price, (double) 0); - //course.getInfo(); - courses.add(course); - } - - private static void studentCreator(List students){ - String name = ""; - String address = ""; - String email = ""; - Scanner scanner = new Scanner(System.in); - - System.out.println(printBlue("Enter student name:")); - name = scanner.nextLine(); - System.out.println(printBlue("Enter student address:")); - address = scanner.nextLine(); - System.out.println(printBlue("Enter student email:")); - email = scanner.nextLine(); - - Student student = new Student(name, address, email); - student.getInfo(); - students.add(student); - } - - private static String printBlue(String text) { - return ConsoleColors.BLUE + text + ConsoleColors.RESET; - } - - private static String printPurple(String text) { - return ConsoleColors.PURPLE + text + ConsoleColors.RESET; - } - - private static String printYellow(String text) { - return ConsoleColors.YELLOW + text + ConsoleColors.RESET; - } - - private static String printRed(String text) { - return ConsoleColors.RED + text + ConsoleColors.RESET; - } - } \ No newline at end of file diff --git a/src/main/java/org/PrintUtils.java b/src/main/java/org/PrintUtils.java new file mode 100644 index 0000000..3cad3d8 --- /dev/null +++ b/src/main/java/org/PrintUtils.java @@ -0,0 +1,20 @@ +package org; + +public class PrintUtils { + + static String printBlue(String text) { + return ConsoleColors.BLUE + text + ConsoleColors.RESET; + } + + static String printPurple(String text) { + return ConsoleColors.PURPLE + text + ConsoleColors.RESET; + } + + static String printYellow(String text) { + return ConsoleColors.YELLOW + text + ConsoleColors.RESET; + } + + static String printRed(String text) { + return ConsoleColors.RED + text + ConsoleColors.RESET; + } +} diff --git a/src/main/java/org/SchoolCreator.java b/src/main/java/org/SchoolCreator.java new file mode 100644 index 0000000..f0a8954 --- /dev/null +++ b/src/main/java/org/SchoolCreator.java @@ -0,0 +1,175 @@ +package org; + +import java.util.*; +import static org.PrintUtils.*; + +public class SchoolCreator { + + private static String schoolName = ""; + private static List teachers = new ArrayList<>(); + private static List courses = new ArrayList<>(); + private static List students = new ArrayList<>(); + + public static School schoolCreatorNew(){ + initialMenu(); + itemCreator("teacher", schoolName, teachers, null); + itemCreator("course", schoolName, courses, teachers); + itemCreator("student", schoolName, students, null); + return new School(schoolName, teachers, courses, students); + } + + public static void initialMenu(){ + Scanner scanner = new Scanner(System.in); + + System.out.println("Hi!"); + System.out.println("Welcome to the School Manager Tool."); + + System.out.println(printBlue("Please, text the name for your school:")); + schoolName = scanner.nextLine(); + + while (schoolName == "") { + System.out.println(printRed("School can't be blank")); + schoolName = scanner.nextLine(); + + } + System.out.println(""); + System.out.println(printYellow("Perfect, we have created the school: ") + printPurple(schoolName)); + System.out.println(""); + } + + public static void itemCreator(String type, String schoolName, List collection, List teachers) { + boolean is_num = false; + int totalItems = 0; + Scanner scanner = new Scanner(System.in); + + while (!is_num) { + System.out.println(printBlue("How many " + type + "s are in " + schoolName + "?")); + try { + totalItems = scanner.nextInt(); + scanner.nextLine(); + if (totalItems > 0) { + System.out.println("Okey, let's create now each " + type + "."); + + for (int i = 0; i < totalItems; i++) { + System.out.println(""); + System.out.println(type.toUpperCase() + " " + (i+1) + ":"); + if (Objects.equals(type, "teacher")) { + teacherCreator(collection); + } else if(Objects.equals(type, "course")) { + courseCreator(collection, teachers); + } else if(Objects.equals(type, "student")) { + studentCreator(collection); + } else { + System.err.println("Type not valid."); + } + } + System.out.println(""); + System.out.println(printYellow("Congratulations! We have created all the " + type + "s.")); + System.out.println(""); + is_num = true; + } else { + System.err.println("Oops! You need to have at least one " + type + "."); + } + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + is_num = false; + } + + private static void teacherCreator(List teachers){ + boolean is_num = false; + String name = ""; + double salary = 00.00; + Scanner scanner = new Scanner(System.in); + + System.out.println(printBlue("Enter teacher name:")); + name = scanner.nextLine(); + System.out.println(printBlue("Enter teacher salary:")); + while (!is_num) { + try { + salary = scanner.nextDouble(); + scanner.nextLine(); + is_num = true; + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + + Teacher teacher = new Teacher(name, salary); + teacher.getInfo(); + teachers.add(teacher); + } + + private static void courseCreator(List courses, List teachers){ + boolean is_num = false; + String name = ""; + double price = 00.00; + int teacherSelection = 0; + Scanner scanner = new Scanner(System.in); + + System.out.println(printBlue("Enter course name:")); + name = scanner.nextLine(); + System.out.println(printBlue("Enter course price:")); + while (!is_num) { + try { + price = scanner.nextDouble(); + scanner.nextLine(); + is_num = true; + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + is_num = false; + /* + System.out.println(printBlue("Select an associated teacher:")); + System.out.println("0 - No teacher associated"); + for (int i = 0; i < teachers.size(); i++) { + System.out.println((i+1) + " - " + teachers.get(i).getName() + " (" + teachers.get(i).getSalary() + "€)"); + } + + while (!is_num) { + try { + teacherSelection = scanner.nextInt(); + scanner.nextLine(); + is_num = true; + } catch (InputMismatchException ie) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a number."); + } + } + + Course course = null; + if (teacherSelection == 0) { + // course = new Course(name, price, (double) 0); + } else { + course = new Course(name, price, (double) 0); + } + */ + // TODO added por victoria porque petaba + Course course = new Course(name, price, (double) 0); + //course.getInfo(); + courses.add(course); + } + + private static void studentCreator(List students){ + String name = ""; + String address = ""; + String email = ""; + Scanner scanner = new Scanner(System.in); + + System.out.println(printBlue("Enter student name:")); + name = scanner.nextLine(); + System.out.println(printBlue("Enter student address:")); + address = scanner.nextLine(); + System.out.println(printBlue("Enter student email:")); + email = scanner.nextLine(); + + Student student = new Student(name, address, email); + student.getInfo(); + students.add(student); + } +} From 5b5da1d82537ff22d0acc177c4a9d4387f7de6b2 Mon Sep 17 00:00:00 2001 From: JuliaORS Date: Tue, 12 Mar 2024 20:28:57 +0100 Subject: [PATCH 58/66] commandUtilsTest --- src/test/java/org/CommandUtilsTest.java | 85 ++++++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/CommandUtilsTest.java b/src/test/java/org/CommandUtilsTest.java index f5b583a..c2e9dbc 100644 --- a/src/test/java/org/CommandUtilsTest.java +++ b/src/test/java/org/CommandUtilsTest.java @@ -1,2 +1,85 @@ -package org;public class CommandUtilsTest { +package org; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import static org.CommandUtils.*; + +import static org.CommandUtils.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +public class CommandUtilsTest { + + + private static List listTeacher; + private static List listCourse; + private static List listStudent; + + private static School school; + + @BeforeAll + static void setUp(){ + listTeacher = new ArrayList<>(); + listTeacher.add(new Teacher("Victoria", 1000)); + listTeacher.add(new Teacher("Katia", 1500)); + listTeacher.add(new Teacher("Arturo", 1200)); + listCourse = new ArrayList<>(); + listCourse.add(new Course("math", 340, 34)); + listCourse.add(new Course("history", 500, 34)); + listStudent = new ArrayList<>(); + listStudent.add(new Student("Anna", "street 1", "anna@gmail.com")); + listStudent.add(new Student("Julia", "street 2", "julia@gmail.com")); + + school = new School("school", listTeacher, listCourse, listStudent); + } + + @Test + @DisplayName("Check getStudentById method") + void getStudentByIdTest(){ + Student student = new Student("Anna", "street 1", "anna@gmail.com"); + assertEquals(student, getStudentById(school.getStudentMap(), "S1")); + } + + @Test + @DisplayName("Check getTeacherById method") + void getTeacherByIdTest(){ + Teacher teacher = new Teacher("Katia", 1500); + assertEquals(teacher, getTeacherById(school.getTeacherMap(), "T2")); + } + + @Test + @DisplayName("Check getCourseById method") + void getCourseByIdTest(){ + Course course = new Course("math", 340, 34); + assertEquals(course, getCourseById(school.getCourseMap(), "C1")); + } + + @Test + @DisplayName("Check looUpStudent command with invalid ID") + void looUpStudentTest(){ + assertThrows(IllegalArgumentException.class, () -> { + lookUpStudent(school.getStudentMap(), "invalidID"); + }); + } + + @Test + @DisplayName("Check looUpTeacher command with invalid ID") + void looUpTeacherTest(){ + assertThrows(IllegalArgumentException.class, () -> { + lookUpTeacher(school.getTeacherMap(), "invalidID"); + }); + } + + @Test + @DisplayName("Check looUpCourse command with invalid ID") + void looUpCourseTest(){ + assertThrows(IllegalArgumentException.class, () -> { + lookUpCourse(school.getCourseMap(), "invalidID"); + }); + } } From f2e55b755218a9e668836609db2790eec92ddf17 Mon Sep 17 00:00:00 2001 From: JuliaORS <128370372+JuliaORS@users.noreply.github.com> Date: Tue, 12 Mar 2024 20:56:15 +0100 Subject: [PATCH 59/66] Create README_IS.md --- README_IS.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 README_IS.md diff --git a/README_IS.md b/README_IS.md new file mode 100644 index 0000000..48e2de8 --- /dev/null +++ b/README_IS.md @@ -0,0 +1,29 @@ +# School Management System + +This project is a School Management System that helps manage students, teachers, and courses with basic functionalities. It includes classes for Teacher, Student, and Course, along with a text-based menu system to interact with the system. + +## How the Application Works + +The application starts by asking for the school's name. Then, it asks for the teachers, students and courses to be created and their details. + +Once the school has been created, the user can enter commands to execute actions in the system. + +## Commands + +- **ENROLL [STUDENT_ID] [COURSE_ID]**: Enrolls the specified student in the corresponding course and updates the course's money_earned. +- **ASSIGN [TEACHER_ID] [COURSE_ID]**: Assigns the specified teacher to the corresponding course. +- **SHOW COURSES**: Displays a list of all courses. +- **LOOKUP COURSE [COURSE_ID]**: Displays the full details of the specified course. +- **SHOW STUDENTS**: Displays a list of all students. +- **LOOKUP STUDENT [STUDENT_ID]**: Displays the full details of the specified student. +- **SHOW TEACHERS**: Displays a list of all teachers. +- **LOOKUP TEACHER [TEACHER_ID]**: Displays the full details of the specified teacher. +- **SHOW PROFIT**: Calculates and displays the total profit (money earned from courses - sum of all teachers' salaries). +- **ADD NEW TEACHER** +- **ADD NEW COURSE** +- **ADD NEW STUDENT** + +## Testing + +In order to ensure the reliability and functionality of the system's main features and commands, a comprehensive testing approach has been implemented. +This includes the creation of unit tests using JUnit, these tests cover various scenarios and edge cases to validate the behavior of the system under different conditions. From c26e9590565f423dfc97b852ab30e5e15323e919 Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Wed, 13 Mar 2024 00:24:28 +0100 Subject: [PATCH 60/66] fix course class bug --- src/main/java/org/Student.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index e733798..662c086 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -13,7 +13,7 @@ public class Student { private String name; private String address; private String email; - //private Course course; + private Course course; private List enrolledCourses; private static int idCounter = 1; @@ -47,7 +47,6 @@ public String getAddress() { public String getEmail() { return email; } - //añadido!! public List getCourse() { return enrolledCourses; } @@ -68,9 +67,9 @@ public void setEmail(String email) { this.email = email; } - //public void setCourse(Course course) { - //this.course = course; - //} + public void setCourse(Course course) { + this.course = course; + } public void addCourse(Course course){ enrolledCourses.add(course); } @@ -90,7 +89,6 @@ public int hashCode() { /* // Helper //TODO - Agregar Courses info (extra) public String getInfo() { -<<<<<<< HEAD return("Student - ID: " + this.studentId + " | Name: " + getName() + " | Address: " + getAddress() + " | Email: " + getEmail()); }*/ From e07046b09d1db858f04e927dcfb548267689493a Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Wed, 13 Mar 2024 00:55:43 +0100 Subject: [PATCH 61/66] fix Course and Commands bugs --- src/main/java/org/Command.java | 23 ++---- src/main/java/org/CommandUtils.java | 22 +++--- src/main/java/org/Commands.java | 111 ++++++++++++++++++++++++++++ src/main/java/org/Student.java | 35 +++++---- src/test/java/org/CommandTest.java | 6 +- 5 files changed, 149 insertions(+), 48 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 4b1966b..885d4ce 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -21,7 +21,7 @@ public static void displayCommands(){ System.out.println("11. Add new student"); System.out.println("12. Add new teacher"); System.out.println("13. Remove teacher from course"); - System.out.println("14. Unenroll student from course"); + System.out.println("14. Unroll student from course"); System.out.println("15. Enroll a list of students to course"); System.out.println("16. Exit program"); System.out.print("Enter your choice: "); @@ -37,16 +37,16 @@ public static void enrollStudent(String studentId, String courseId, School schoo if (student != null && course != null) { // Check if the student is already enrolled in another course //**************mas cambios lista courses -// if (student.getCourse() != null) { -// throw new IllegalArgumentException("Student is already enrolled in a course."); -// } - if (student.getCourse().contains(course)) { + if (student.getCourse() != null) { + throw new IllegalArgumentException("Student is already enrolled in a course."); + } + if (student.getEnrolledCourses().contains(course)) { throw new IllegalArgumentException("Student is already enrolled in a course."); } // Enrolls student in the course - //student.setCourse(course); añadido!! + student.setCourse(course); student.addCourse(course); // Updates money earned in the course based on its price @@ -112,7 +112,7 @@ public static void unenrollStudent(String studentId, String courseId, School sch // Helper method to check if a student is enrolled in a given course public static boolean isStudentEnrolledInCourse(Student student, String courseId) { - List courses = student.getCourse(); + List courses = student.getEnrolledCourses(); for (Course course : courses) { if (Objects.equals(course.getCourseId(), courseId)) { return true; @@ -140,15 +140,6 @@ public static void enrollStudents(List studentsIds, String courseId, Sch } } } - //al final no se uso? -// public static void showStudentsOfCourse(String courseId, Map studentsMap){ -// -// studentsMap.forEach((id, student) -> { -// if(isStudentEnrolledInCourse(student, courseId)){ -// System.out.println(student.getInfo()); -// } -// }); -// } public static double showProfit(School school) throws IllegalArgumentException { double totalMoneyEarned = 0; diff --git a/src/main/java/org/CommandUtils.java b/src/main/java/org/CommandUtils.java index 3318267..e198343 100644 --- a/src/main/java/org/CommandUtils.java +++ b/src/main/java/org/CommandUtils.java @@ -27,17 +27,17 @@ public static void showAllTeachers(HashMap map){ } } - public static void showStudentCourses(String studentId, School school){ - Student student = getStudentById(school.getStudentMap(), studentId); - - if(student == null){ - throw new IllegalArgumentException("Student doesn't exist!"); - } - List courses = student.getCourse(); - for(Course course : courses){ - System.out.println(course.getInfo()); - } - } +// public static void showStudentCourses(String studentId, School school){ +// Student student = getStudentById(school.getStudentMap(), studentId); +// +// if(student == null){ +// throw new IllegalArgumentException("Student doesn't exist!"); +// } +// List courses = student.getCourse(); +// for(Course course : courses){ +// System.out.println(course.getInfo()); +// } +// } diff --git a/src/main/java/org/Commands.java b/src/main/java/org/Commands.java index 4c47d18..63c1e03 100644 --- a/src/main/java/org/Commands.java +++ b/src/main/java/org/Commands.java @@ -1,5 +1,8 @@ package org; +import java.util.ArrayList; +import java.util.InputMismatchException; +import java.util.List; import java.util.Scanner; import static org.Command.*; @@ -155,13 +158,121 @@ public static void menuCommands (School school){ addNewTeacher(school); break; case 13: + System.out.println("These are all the courses available"); + showAllCourses(school.getCourseMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the course:")); + scanner.nextLine(); + courseId = scanner.nextLine(); + System.out.println("Please wait, removing teacher from course."); + System.out.println(""); + System.out.println(""); + try{ + Course course = CommandUtils.getCourseById(school.getCourseMap(), courseId); + String printTeacher = (course != null && course.getTeacher() != null) + ? course.getTeacher().getName() + : null; + + removeTeacherFromCourse(courseId, school); + System.out.println(printYellow("Congratulations! " + + printTeacher + + " has been successfully removed from " + + CommandUtils.getCourseById(school.getCourseMap(), courseId).getName() + ".")); + + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } break; case 14: + System.out.println("These are all the students that join "+school.getName()+" school."); + showAllStudents(school.getStudentMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the student:")); + scanner.nextLine(); + + studentId = scanner.next(); + System.out.println(""); + try{ +// System.out.println("These are all the courses the student is enrolled in:"); +// CommandUtils.showStudentCourses(studentId, school); +// System.out.println(""); + System.out.println(printBlue("Enter the id of the course:")); + scanner.nextLine(); + courseId = scanner.nextLine(); + System.out.println("Please wait, removing student from course."); + System.out.println(""); + System.out.println(""); + Student student = getStudentById(school.getStudentMap(), studentId); + Course course = getCourseById(school.getCourseMap(), courseId); + String printStudent = (course != null && student != null) + ? student.getName() + : null; + unenrollStudent(studentId, courseId, school); + System.out.println(printYellow("Congratulations! " + + printStudent + + " has been successfully unrolled from " + + getCourseById(school.getCourseMap(), courseId).getName() + ".")); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } break; case 15: + System.out.println("These are all the students that join "+school.getName()+" school."); + showAllStudents(school.getStudentMap()); + System.out.println(""); + + int numberStudents = 0; + int maxStudents = school.getStudentMap().size(); + + while (true) { + try { + System.out.println("How many students do you want to add?"); + numberStudents = scanner.nextInt(); + + if (numberStudents > 0 && numberStudents <= maxStudents) { + scanner.nextLine(); + break; + } else { + throw new IllegalArgumentException("Error: Number of students to add must be greater than 0 and less or equal to " + maxStudents); + } + } catch (InputMismatchException e) { + scanner.nextLine(); + System.err.println("Oops! You need to enter a valid number."); + } catch (IllegalArgumentException e) { + scanner.nextLine(); + System.err.println(e.getMessage()); + } + } + List studentList = new ArrayList<>(); + for (int i = 0; i < numberStudents; i++) { + System.out.println("Enter the id of the student:"); + studentId = scanner.nextLine(); + studentList.add(studentId); + } + + System.out.println("These are all the courses available:"); + showAllCourses(school.getCourseMap()); + System.out.println(""); + System.out.println(printBlue("Enter the id of the course:")); + courseId = scanner.nextLine(); + System.out.println("Please wait, enrolling students..."); + // TODO- tratar de poner un elapse time o algo para que espere. + System.out.println(""); + System.out.println(""); + try{ + enrollStudents(studentList, courseId, school); + // TODO agregar el nombre del estudiante y curso en el print + // TODO enrolar multiples alumnos (extra) + System.out.println(printYellow("Congratulations! Your students have been successfully enrolled to " + + CommandUtils.getCourseById(school.getCourseMap(), courseId).getName() + ".")); + + System.out.println(""); + }catch(IllegalArgumentException e){ + System.out.println("Error: "+e.getMessage()); + } break; case 16: System.out.println(printYellow("Closing program.")); diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 662c086..78e4d61 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -47,12 +47,12 @@ public String getAddress() { public String getEmail() { return email; } - public List getCourse() { + + public Course getCourse() {return course;} + + public List getEnrolledCourses() { return enrolledCourses; } - public void removeCourse(Course course){ - enrolledCourses.remove(course); - } // Setters public void setName(String name) { @@ -74,6 +74,11 @@ public void addCourse(Course course){ enrolledCourses.add(course); } + public void removeCourse(Course course){ + enrolledCourses.remove(course); + } + + @Override public boolean equals(Object o) { if (this == o) return true; @@ -86,12 +91,6 @@ public int hashCode() { return Objects.hash(getName(), getAddress(), getEmail(), getCourse()); } - /* // Helper - //TODO - Agregar Courses info (extra) - public String getInfo() { - return("Student - ID: " + this.studentId + " | Name: " + getName() + - " | Address: " + getAddress() + " | Email: " + getEmail()); - }*/ public String getInfo() { String name = getName().length() > 17 ? getName().substring(0, 16) + " ." : getName(); @@ -104,14 +103,14 @@ public String getInfo() { return String.format(" %-4s│ %-18s │ %-18s │ %-18s │ %-18s ", studentId, name, address, email, courseName); - if(enrolledCourses.isEmpty()){ - return "Student - ID: " + this.studentId + " | Name: " + getName() + - " | Address: " + getAddress() + " | Email: " + getEmail(); - } else { - return "Student - ID: " + this.studentId + " | Name: " + getName() + - " | Address: " + getAddress() + " | Email: " + getEmail() - + " | Enrolled in: " + getInfoCourses(); - } +// if(enrolledCourses.isEmpty()){ +// return "Student - ID: " + this.studentId + " | Name: " + getName() + +// " | Address: " + getAddress() + " | Email: " + getEmail(); +// } else { +// return "Student - ID: " + this.studentId + " | Name: " + getName() + +// " | Address: " + getAddress() + " | Email: " + getEmail() +// + " | Enrolled in: " + getInfoCourses(); +// } } diff --git a/src/test/java/org/CommandTest.java b/src/test/java/org/CommandTest.java index 5427ae1..8aa0b11 100644 --- a/src/test/java/org/CommandTest.java +++ b/src/test/java/org/CommandTest.java @@ -89,7 +89,7 @@ void testUnenrollStudent(){ //asignar el course a school school.getCourseMap().put(course.getCourseId(), course); Command.enrollStudent(student.getStudentId(), course.getCourseId(), school); - assertFalse(student.getCourse().contains(student)); + assertFalse(student.getEnrolledCourses().contains(student)); } @Test @@ -117,8 +117,8 @@ void testEnrollStudents(){ school.getCourseMap().put(course.getCourseId(), course); Command.enrollStudents(studentList, course.getCourseId(), school); - assertTrue(student1.getCourse().contains(course)); - assertTrue(student2.getCourse().contains(course)); + assertTrue(student1.getEnrolledCourses().contains(course)); + assertTrue(student2.getEnrolledCourses().contains(course)); assertTrue(Command.isStudentEnrolledInCourse(student1, course.getCourseId())); assertTrue(Command.isStudentEnrolledInCourse(student2, course.getCourseId())); From 5c0774fdd31be791f76e8acf5ee085cc9baf7aed Mon Sep 17 00:00:00 2001 From: Katia Date: Wed, 13 Mar 2024 08:31:08 +0100 Subject: [PATCH 62/66] =?UTF-8?q?arreglar=20peqe=C3=B1os=20fallos=20getCou?= =?UTF-8?q?rse=20removeCourse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/Command.java | 18 ++++++++---------- src/main/java/org/Student.java | 1 + 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 885d4ce..9068cd8 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -21,7 +21,7 @@ public static void displayCommands(){ System.out.println("11. Add new student"); System.out.println("12. Add new teacher"); System.out.println("13. Remove teacher from course"); - System.out.println("14. Unroll student from course"); + System.out.println("14. Uneroll student from course"); System.out.println("15. Enroll a list of students to course"); System.out.println("16. Exit program"); System.out.print("Enter your choice: "); @@ -40,14 +40,12 @@ public static void enrollStudent(String studentId, String courseId, School schoo if (student.getCourse() != null) { throw new IllegalArgumentException("Student is already enrolled in a course."); } - if (student.getEnrolledCourses().contains(course)) { - throw new IllegalArgumentException("Student is already enrolled in a course."); - } + // Enrolls student in the course student.setCourse(course); - student.addCourse(course); + // Updates money earned in the course based on its price course.updateMoney_earned(course.getPrice()); @@ -112,13 +110,13 @@ public static void unenrollStudent(String studentId, String courseId, School sch // Helper method to check if a student is enrolled in a given course public static boolean isStudentEnrolledInCourse(Student student, String courseId) { - List courses = student.getEnrolledCourses(); - for (Course course : courses) { + Course course = student.getCourse(); if (Objects.equals(course.getCourseId(), courseId)) { return true; - } + } else { + return false; } - return false; + } @@ -131,7 +129,7 @@ public static void enrollStudents(List studentsIds, String courseId, Sch //no comprobar si uno ya está matriculado, se vuelve a matricular // Enrolls student in the course - student.addCourse(course); + student.setCourse(course); // Updates money earned in the course based on its price course.updateMoney_earned(course.getPrice()); diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 78e4d61..6a5b561 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -49,6 +49,7 @@ public String getEmail() { } public Course getCourse() {return course;} + public void removeCourse(){this.course = null;} public List getEnrolledCourses() { return enrolledCourses; From 16f539ea4bdbf326023a2c66342005eab663674a Mon Sep 17 00:00:00 2001 From: Katia Date: Wed, 13 Mar 2024 18:56:35 +0100 Subject: [PATCH 63/66] command.java - setCourse() / Commannds.java - print courses / student.java quitar basura --- src/main/java/org/Command.java | 4 +++- src/main/java/org/Commands.java | 6 +++--- src/main/java/org/Student.java | 30 +++++------------------------- 3 files changed, 11 insertions(+), 29 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 9068cd8..a076d49 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -72,6 +72,8 @@ public static void assignTeacher(String teacherId, String courseId, School schoo course.setTeacher(teacher); } + + public static void removeTeacherFromCourse(String courseId, School school){ //find course by id, getCourseMap() Course course = CommandUtils.getCourseById(school.getCourseMap(), courseId); @@ -96,7 +98,7 @@ public static void unenrollStudent(String studentId, String courseId, School sch // Check if the student is enrolled in the given course if (isStudentEnrolledInCourse(student, courseId)) { // Remove the course from the student - student.removeCourse(course); + student.removeCourse(); // Update money earned in the course based on its price course.updateMoney_earned(course.getMoney_earned() - course.getPrice()); diff --git a/src/main/java/org/Commands.java b/src/main/java/org/Commands.java index 63c1e03..a7c2787 100644 --- a/src/main/java/org/Commands.java +++ b/src/main/java/org/Commands.java @@ -195,9 +195,9 @@ public static void menuCommands (School school){ System.out.println(""); try{ -// System.out.println("These are all the courses the student is enrolled in:"); -// CommandUtils.showStudentCourses(studentId, school); -// System.out.println(""); + System.out.println("These are all the courses available:"); + showAllCourses(school.getCourseMap()); + System.out.println(""); System.out.println(printBlue("Enter the id of the course:")); scanner.nextLine(); courseId = scanner.nextLine(); diff --git a/src/main/java/org/Student.java b/src/main/java/org/Student.java index 6a5b561..70d9cdb 100644 --- a/src/main/java/org/Student.java +++ b/src/main/java/org/Student.java @@ -14,7 +14,7 @@ public class Student { private String address; private String email; private Course course; - private List enrolledCourses; + private static int idCounter = 1; // Constructor @@ -23,7 +23,7 @@ public Student(String name, String address, String email) { setName(name); setAddress(address); setEmail(email); - enrolledCourses = new ArrayList<>(); + } @@ -51,9 +51,7 @@ public String getEmail() { public Course getCourse() {return course;} public void removeCourse(){this.course = null;} - public List getEnrolledCourses() { - return enrolledCourses; - } + // Setters public void setName(String name) { @@ -71,13 +69,9 @@ public void setEmail(String email) { public void setCourse(Course course) { this.course = course; } - public void addCourse(Course course){ - enrolledCourses.add(course); - } - public void removeCourse(Course course){ - enrolledCourses.remove(course); - } + + @Override @@ -115,19 +109,5 @@ public String getInfo() { } - public String getInfoCourses(){ - StringBuilder coursesInfo = new StringBuilder(); - - for (Course course : enrolledCourses) { - coursesInfo.append(course.getName()).append(", "); - } - // Remove the trailing comma and space - if (coursesInfo.length() > 0) { - coursesInfo.setLength(coursesInfo.length() - 2); - } - - return coursesInfo.toString(); - - } } \ No newline at end of file From d377b2dd5830ba6d708957f31a993550eb71559a Mon Sep 17 00:00:00 2001 From: Katia Date: Wed, 13 Mar 2024 19:27:12 +0100 Subject: [PATCH 64/66] arreglar updateMoneyEarned y quitar validacion de Curso --- src/main/java/org/Command.java | 5 +++-- src/main/java/org/Course.java | 9 +-------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index a076d49..954265c 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -48,7 +48,7 @@ public static void enrollStudent(String studentId, String courseId, School schoo // Updates money earned in the course based on its price - course.updateMoney_earned(course.getPrice()); + course.updateMoney_earned(course.getMoney_earned() + course.getPrice()); } else { throw new IllegalArgumentException("Invalid student or course ID."); } @@ -134,11 +134,12 @@ public static void enrollStudents(List studentsIds, String courseId, Sch student.setCourse(course); // Updates money earned in the course based on its price - course.updateMoney_earned(course.getPrice()); + course.updateMoney_earned(course.getMoney_earned() + course.getPrice()); } else { throw new IllegalArgumentException("Invalid student or course ID."); } } + } public static double showProfit(School school) throws IllegalArgumentException { diff --git a/src/main/java/org/Course.java b/src/main/java/org/Course.java index 7b46408..e94c0a2 100644 --- a/src/main/java/org/Course.java +++ b/src/main/java/org/Course.java @@ -50,17 +50,10 @@ public String getName() { } public void setName(String name) { - if(isValidName(name)){ this.name = name; - } else { - System.out.println("Name has to be between 3 and 15 "); - } - } - private boolean isValidName(String name){ - return name != null && name.length() >= 3 && name.length() <= 15; - } + public double getMoney_earned() { return money_earned; From d2bf137b511b21b6f1e4a72952302405eb581f76 Mon Sep 17 00:00:00 2001 From: Katia Date: Wed, 13 Mar 2024 20:36:32 +0100 Subject: [PATCH 65/66] =?UTF-8?q?a=C3=B1adir=20null=20en=20un=20helper=20d?= =?UTF-8?q?e=20Command=20/=20ajustar=20mis=20test=20para=20que=20pasen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/Command.java | 2 +- src/test/java/org/CommandTest.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index 954265c..e70f1de 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -113,7 +113,7 @@ public static void unenrollStudent(String studentId, String courseId, School sch // Helper method to check if a student is enrolled in a given course public static boolean isStudentEnrolledInCourse(Student student, String courseId) { Course course = student.getCourse(); - if (Objects.equals(course.getCourseId(), courseId)) { + if (course != null && Objects.equals(course.getCourseId(), courseId)) { return true; } else { return false; diff --git a/src/test/java/org/CommandTest.java b/src/test/java/org/CommandTest.java index 8aa0b11..8873d4b 100644 --- a/src/test/java/org/CommandTest.java +++ b/src/test/java/org/CommandTest.java @@ -89,7 +89,7 @@ void testUnenrollStudent(){ //asignar el course a school school.getCourseMap().put(course.getCourseId(), course); Command.enrollStudent(student.getStudentId(), course.getCourseId(), school); - assertFalse(student.getEnrolledCourses().contains(student)); + assertEquals( course, student.getCourse()); } @Test @@ -117,8 +117,8 @@ void testEnrollStudents(){ school.getCourseMap().put(course.getCourseId(), course); Command.enrollStudents(studentList, course.getCourseId(), school); - assertTrue(student1.getEnrolledCourses().contains(course)); - assertTrue(student2.getEnrolledCourses().contains(course)); + assertEquals(course, student1.getCourse()); + assertEquals(course, student2.getCourse()); assertTrue(Command.isStudentEnrolledInCourse(student1, course.getCourseId())); assertTrue(Command.isStudentEnrolledInCourse(student2, course.getCourseId())); From 8bb70b5f0005b22f03a86a2701b07d689225d22e Mon Sep 17 00:00:00 2001 From: victoriaschwin Date: Thu, 14 Mar 2024 17:51:53 +0100 Subject: [PATCH 66/66] add colors to prints --- src/main/java/org/Command.java | 27 +++++----- src/main/java/org/Commands.java | 73 ++++++++++++---------------- src/main/java/org/PrintUtils.java | 5 ++ src/main/java/org/SchoolCreator.java | 4 +- 4 files changed, 52 insertions(+), 57 deletions(-) diff --git a/src/main/java/org/Command.java b/src/main/java/org/Command.java index e70f1de..61168a6 100644 --- a/src/main/java/org/Command.java +++ b/src/main/java/org/Command.java @@ -5,26 +5,29 @@ import java.util.Map; import java.util.Objects; +import static org.PrintUtils.printBlue; + public class Command { public static void displayCommands(){ - System.out.println("1. Enroll a new student"); - System.out.println("2. Assign teacher to a course"); - System.out.println("3. See all courses"); - System.out.println("4. Search for a specific course"); - System.out.println("5. See all students"); - System.out.println("6. Search for a specific student"); - System.out.println("7. See all teachers"); - System.out.println("8. Search for a specific teacher"); - System.out.println("9. Show profit"); + System.out.println(printBlue("Please, select a command from the menu:\n")); + System.out.println("1. Enroll a new student"); + System.out.println("2. Assign teacher to a course"); + System.out.println("3. See all courses"); + System.out.println("4. Search for a specific course"); + System.out.println("5. See all students"); + System.out.println("6. Search for a specific student"); + System.out.println("7. See all teachers"); + System.out.println("8. Search for a specific teacher"); + System.out.println("9. Show profit"); System.out.println("10. Add new course"); System.out.println("11. Add new student"); System.out.println("12. Add new teacher"); System.out.println("13. Remove teacher from course"); - System.out.println("14. Uneroll student from course"); + System.out.println("14. Unroll student from course"); System.out.println("15. Enroll a list of students to course"); - System.out.println("16. Exit program"); - System.out.print("Enter your choice: "); + System.out.println("16. Exit program \n"); + System.out.print(printBlue("Enter your choice: ")); } public static void enrollStudent(String studentId, String courseId, School school) { diff --git a/src/main/java/org/Commands.java b/src/main/java/org/Commands.java index a7c2787..c943db1 100644 --- a/src/main/java/org/Commands.java +++ b/src/main/java/org/Commands.java @@ -27,51 +27,41 @@ public static void menuCommands (School school){ switch(choiceMenu){ case 1: - //TODO ponerle un color - System.out.println("These are all the students that join "+ school.getName()+" school."); + + System.out.println("These are all the students that join "+ printPurple(school.getName())+" school:"); showAllStudents(school.getStudentMap()); - System.out.println(""); + System.out.println(printBlue("Enter the id of the student:")); scanner.nextLine(); studentId = scanner.nextLine(); - System.out.println(""); - System.out.println("These are all the courses available:"); + System.out.println("\nThese are all the courses available: "); showAllCourses(school.getCourseMap()); - System.out.println(""); - System.out.println(printBlue("Enter the id of the course:")); + + System.out.println(printBlue("\nEnter the id of the course:")); courseId = scanner.nextLine(); - System.out.println("Please wait, enrolling student..."); + System.out.println(printBlueBold("Please wait, enrolling student...\n \n")); - // TODO- tratar de poner un elapse time o algo para que espere. - System.out.println(""); - System.out.println(""); try{ enrollStudent(studentId, courseId, school); - // TODO agregar el nombre del estudiante y curso en el print - // TODO enrolar multiples alumnos (extra) - System.out.println(printYellow("Congratulations! Your student has been successfully enrolled to the course.")); - System.out.println(""); + System.out.println(printYellow("Congratulations! Your student has been successfully enrolled to the course:\n")); }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); + System.out.println(printRed("Error: "+e.getMessage())); } break; case 2: - System.out.println("These are all the teachers that work for "+school.getName()+" school."); + System.out.println("These are all the teachers that work for "+printPurple(school.getName())+" school:"); showAllTeachers(school.getTeacherMap()); - System.out.println(""); - System.out.println(printBlue("Enter the id of the teacher:")); + + System.out.println(printBlue("\n Enter the id of the teacher:")); scanner.nextLine(); teacherId = scanner.nextLine(); - System.out.println(""); - System.out.println("These are all the courses available"); + + System.out.println("\n These are all the courses available"); showAllCourses(school.getCourseMap()); - System.out.println(""); - System.out.println(printBlue("Enter the id of the course:")); + System.out.println(printBlue("\n Enter the id of the course:")); courseId = scanner.nextLine(); - System.out.println("Please wait, assigning teacher to the course."); - System.out.println(""); - System.out.println(""); + System.out.println(printBlueBold("Please wait, assigning teacher to the course... \n \n")); try{ assignTeacher(teacherId, courseId, school); System.out.println(printYellow("Congratulations! Your teacher has been successfully assigned to the course.")); @@ -83,12 +73,11 @@ public static void menuCommands (School school){ break; case 3: try{ - System.out.println("These are all the courses available:"); + System.out.println("\n These are all the courses available:"); showAllCourses(school.getCourseMap()); - System.out.println(""); - System.out.println(""); + }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); + System.out.println(printRed("Error: "+e.getMessage())); } break; case 4: @@ -146,7 +135,7 @@ public static void menuCommands (School school){ break; case 9: double profit = showProfit(school); - System.out.println(printYellow("The profit of the school is ") + printPurple(String.valueOf(profit))); + System.out.println(printYellow("The profit of the school is ") + printPurple(String.valueOf(profit))+"\n"); break; case 10: addNewCourse(school); @@ -211,15 +200,15 @@ public static void menuCommands (School school){ : null; unenrollStudent(studentId, courseId, school); System.out.println(printYellow("Congratulations! " - + printStudent + + printPurple(printStudent) + " has been successfully unrolled from " - + getCourseById(school.getCourseMap(), courseId).getName() + ".")); + + printPurple(getCourseById(school.getCourseMap(), courseId).getName() + "."))); }catch(IllegalArgumentException e){ - System.out.println("Error: "+e.getMessage()); + System.out.println(printRed("Error: "+e.getMessage())); } break; case 15: - System.out.println("These are all the students that join "+school.getName()+" school."); + System.out.println("These are all the students that join "+printPurple(school.getName())+" school."); showAllStudents(school.getStudentMap()); System.out.println(""); @@ -228,18 +217,18 @@ public static void menuCommands (School school){ while (true) { try { - System.out.println("How many students do you want to add?"); + System.out.println(printBlue("How many students do you want to add?")); numberStudents = scanner.nextInt(); if (numberStudents > 0 && numberStudents <= maxStudents) { scanner.nextLine(); break; } else { - throw new IllegalArgumentException("Error: Number of students to add must be greater than 0 and less or equal to " + maxStudents); + throw new IllegalArgumentException(printRed("Error: Number of students to add must be greater than 0 and less or equal to " + maxStudents)); } } catch (InputMismatchException e) { scanner.nextLine(); - System.err.println("Oops! You need to enter a valid number."); + System.err.println(printRed("Oops! You need to enter a valid number.")); } catch (IllegalArgumentException e) { scanner.nextLine(); System.err.println(e.getMessage()); @@ -248,7 +237,7 @@ public static void menuCommands (School school){ List studentList = new ArrayList<>(); for (int i = 0; i < numberStudents; i++) { - System.out.println("Enter the id of the student:"); + System.out.println(printBlue("Enter the id of the student:")); studentId = scanner.nextLine(); studentList.add(studentId); } @@ -258,14 +247,12 @@ public static void menuCommands (School school){ System.out.println(""); System.out.println(printBlue("Enter the id of the course:")); courseId = scanner.nextLine(); - System.out.println("Please wait, enrolling students..."); - // TODO- tratar de poner un elapse time o algo para que espere. + System.out.println(printBlueBold("Please wait, enrolling students...")); System.out.println(""); System.out.println(""); try{ enrollStudents(studentList, courseId, school); - // TODO agregar el nombre del estudiante y curso en el print - // TODO enrolar multiples alumnos (extra) + System.out.println(printYellow("Congratulations! Your students have been successfully enrolled to " + CommandUtils.getCourseById(school.getCourseMap(), courseId).getName() + ".")); diff --git a/src/main/java/org/PrintUtils.java b/src/main/java/org/PrintUtils.java index 3cad3d8..78e09ec 100644 --- a/src/main/java/org/PrintUtils.java +++ b/src/main/java/org/PrintUtils.java @@ -17,4 +17,9 @@ static String printYellow(String text) { static String printRed(String text) { return ConsoleColors.RED + text + ConsoleColors.RESET; } + + static String printCyan(String text) { return ConsoleColors.CYAN + text + ConsoleColors.RESET; } + + static String printBlueBold(String text) { return ConsoleColors.BLUE_BOLD + text + ConsoleColors.RESET; } + } diff --git a/src/main/java/org/SchoolCreator.java b/src/main/java/org/SchoolCreator.java index f0a8954..b42bcfd 100644 --- a/src/main/java/org/SchoolCreator.java +++ b/src/main/java/org/SchoolCreator.java @@ -21,8 +21,8 @@ public static School schoolCreatorNew(){ public static void initialMenu(){ Scanner scanner = new Scanner(System.in); - System.out.println("Hi!"); - System.out.println("Welcome to the School Manager Tool."); + System.out.println("Hi! \n"); + System.out.println(("Welcome to the School Manager Tool. \n")); System.out.println(printBlue("Please, text the name for your school:")); schoolName = scanner.nextLine();