From 06ae5bbab514bebe9c692fe593ab1c62daa3d3f0 Mon Sep 17 00:00:00 2001 From: johnS93 Date: Sat, 10 Jul 2021 23:05:10 -0400 Subject: [PATCH] finished lab --- src/main/java/io/zipcoder/Classroom.java | 66 ++++++++++ src/main/java/io/zipcoder/Student.java | 71 +++++++++- src/test/java/io/zipcoder/ClassroomTest.java | 94 +++++++++++++ src/test/java/io/zipcoder/StudentTest.java | 124 ++++++++++++++++++ target/classes/io/zipcoder/Classroom.class | Bin 0 -> 2438 bytes target/classes/io/zipcoder/Student.class | Bin 0 -> 2966 bytes .../io/zipcoder/ClassroomTest.class | Bin 0 -> 3477 bytes .../io/zipcoder/StudentTest.class | Bin 0 -> 3068 bytes 8 files changed, 354 insertions(+), 1 deletion(-) create mode 100644 target/classes/io/zipcoder/Classroom.class create mode 100644 target/classes/io/zipcoder/Student.class create mode 100644 target/test-classes/io/zipcoder/ClassroomTest.class create mode 100644 target/test-classes/io/zipcoder/StudentTest.class diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index 64566f0..e89e6dd 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -1,4 +1,70 @@ package io.zipcoder; +import java.util.*; +import java.util.stream.Collectors; + public class Classroom { + int maxNumberOfStudents; + private Student[] students; + + public Classroom(int maxNumberOfStudents) { + this.students = new Student[maxNumberOfStudents]; + } + + public Classroom(Student... students) { + + this.students = students; + } + + public Classroom() { + + this.students = new Student[30]; + } + + public Student[] getStudents() { + return students; + } + + public Double getAverageExamScore() { + Double sum =0.0; + for(Student student : students){ + sum += student.getAverageExamScore(); + } + return sum / students.length; + } + + public void addStudent(Student student){ + for(int i =0; i < students.length; i++) { + if (students[i] == null) { + students[i] = student; + } + } + } + + public void removeStudent(String firstName, String lastName) { +// Student[] studentArray = new Student[students.length]; +// for(int i = 0; i < students.length; i++) { +// if(students[i].getFirstName().equals(firstName) && students[i].getLastName().equals(lastName)); +// this.students[i] = null; + ArrayList list = new ArrayList<>(Arrays.asList(students)); + for(int i =0; i < list.size(); i++){ + Student student = list.get(i); + if(student.getFirstName().equals(firstName) && student.getLastName().equals(lastName)) { + list.remove(student); + list.add(null); + } + + } + this.students = list.toArray(new Student[0]); + } + + + + public Student[] getStudentsByScore(){ + List studentList = new ArrayList<>(Arrays.asList(students)); + return null; + } + + + } diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index b543e36..27afa3c 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -1,4 +1,73 @@ package io.zipcoder; -public class Student { +import java.util.ArrayList; +import java.util.Arrays; + +public class Student { + private String firstName; + private String lastName; + private ArrayList examScores; + Double[] testScores; + + public Student(String firstName, String lastName, Double ... examScores) { + this.firstName = firstName; + this.lastName = lastName; + this.examScores = new ArrayList(Arrays.asList(examScores)); + + } + + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { this.lastName = lastName; } + + + public Integer getNumberOfExamsTaken() { + return examScores.size(); + } + + public String getExamScores() { + String result = "Exam Scores: \n"; + + for(int i =0; i < examScores.size(); i++) { + result += "\tExam " + (i + 1) + " -> "; + result += examScores.get(i) + "\n"; + } + return result; + } + + public void addExamScore(double examScore) { + this.examScores.add(examScore); + } + + public void setExamScore(Integer examNumber, Double newScore) { + examScores.set(examNumber, newScore); + } + + public Double getAverageExamScore() { + Double result = 0.0; + for (int i = 0; i < examScores.size(); i++) { + result = result + examScores.get(i); + } + return result / examScores.size(); + } + @Override + public String toString() { + String result = "Student: " + firstName + " " + lastName + "\n"; + result = result + "> Average Score: " + this.getAverageExamScore() + "\n"; + result = result + "> " + getExamScores(); + + + return result; + } } diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index 7bac1ff..69b9a32 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -1,4 +1,98 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; + + public class ClassroomTest { + + @Test + public void addStudentTest() { + // : Given + int maxNumberOfStudents = 1; + Classroom classroom = new Classroom(maxNumberOfStudents); + Double[] examScores = { 100.0, 150.0, 250.0, 0.0 }; + Student student = new Student("John", "Song", examScores); + + // When + Student[] preEnrollment = classroom.getStudents(); + classroom.addStudent(student); + Student[] postEnrollment = classroom.getStudents(); + + // Then + String preEnrollmentAsString = Arrays.toString(preEnrollment); + String postEnrollmentAsString = Arrays.toString(postEnrollment); + + System.out.println("==========================="); + System.out.println(preEnrollmentAsString); + System.out.println("==========================="); + System.out.println(postEnrollmentAsString); + } + + @Test + public void getAverageExamScoreTest() { + // : Given + Double[] s1Scores = { 100.0, 150.0 }; + Double[] s2Scores = { 225.0, 25.0 }; + + Student s1 = new Student("student", "one", s1Scores); + Student s2 = new Student("student", "two", s2Scores); + + Student[] students = {s1,s2}; + Classroom classroom = new Classroom(students); + + // When + Double expected = 125.0; + Double actual = classroom.getAverageExamScore(); + + // Then + Assert.assertEquals(expected,actual); + + } + @Test + public void removeStudentTest() { + // : Given + Double[] examScores = {100.0, 150.0, 250.0, 0.0}; + Double[] examScores1 = {90.0, 50.0, 70.0, 100.0}; + Double[] examScores2 = {50.0, 60.0, 30.0, 40.0}; + Student student = new Student("John", "Song", examScores); + Student student1 = new Student ("Billy", "Bob", examScores1); + Student student2 = new Student ("Water", "Bottle", examScores2); + Student[] students = {student, student1, student2}; + + + // When + Classroom classRoom = new Classroom(students); + classRoom.removeStudent("Water", "Bottle"); + + // Then + Student actual = students[2]; + Assert.assertNull(actual); + } + + @Test + public void getStudentsByScoreTest() { + // : Given + Classroom classroom = new Classroom(); + Double[] examScores = {100.0, 60.0, 80.0, 70.0}; + Double[] examScores1 = {90.0, 50.0, 70.0, 90.0}; + Double[] examScores2 = {70.0, 80.0, 50.0, 30.0}; + + // : When + Student student = new Student("John", "Song", examScores); + Student student1 = new Student("Leon", "Hunter", examScores1); + Student student2 = new Student("Billy", "Bob", examScores2); + + + Student[] expected = {student, student1, student2}; + Student[] actual = classroom.getStudentsByScore(); + + + // : Then + Assert.assertArrayEquals(expected, actual); + + } + } diff --git a/src/test/java/io/zipcoder/StudentTest.java b/src/test/java/io/zipcoder/StudentTest.java index a9fedec..84e65eb 100644 --- a/src/test/java/io/zipcoder/StudentTest.java +++ b/src/test/java/io/zipcoder/StudentTest.java @@ -1,5 +1,129 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; + public class StudentTest { + @Test + public void studentConstructorTest() { + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 95.0, 123.0, 96.0 }; + Student student = new Student(firstName, lastName, examScores); + + // When + String expectedFirstNaME = student.getFirstName(); + String expectedLastName = student.getLastName(); + + + + + // Then + Assert.assertEquals(expectedFirstNaME, firstName); + Assert.assertEquals(expectedLastName, lastName); + + + + } + + @Test + public void studentSetConstructorTest() { + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = {100.0, 95.0, 123.0, 96.0}; + Student student = new Student(firstName, lastName, examScores); + + // When + student.setFirstName("John"); + student.setLastName("Song"); + String expectedFirstNaME = "John"; + String expectedLastName = "Song"; + String actual = student.getFirstName(); + String actual2 = student.getLastName(); + + // Then + Assert.assertEquals(expectedFirstNaME, actual); + Assert.assertEquals(expectedLastName, actual2); + } + + @Test + public void getExamScoresTest() { + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = {100.0, 95.0, 123.0}; + Student student = new Student(firstName, lastName, examScores); + + // When + String expectedExamScore = "Exam Scores: \n" + "\tExam 1 -> 100.0\n" + "\tExam 2 -> 95.0\n" + + "\tExam 3 -> 123.0\n"; + + String actual = student.getExamScores(); + + // Then + Assert.assertEquals(expectedExamScore, actual); + + + } + + @Test + public void setExamScoresTest() { + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = {100.0, 95.0, 123.0}; + Student student = new Student(firstName, lastName, examScores); + + // When + student.setExamScore(1, 95.0); + String expectedExamScore = "Exam Scores: \n" + "\tExam 1 -> 100.0\n" + "\tExam 2 -> 95.0\n" + + "\tExam 3 -> 123.0\n"; + + String actual = student.getExamScores(); + + // Then + Assert.assertEquals(expectedExamScore, actual); + } + + @Test + public void toStringTest() { + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = {90.0, 90.0, 90.0}; + Student student = new Student(firstName, lastName, examScores); + + // When + String expected = "Student: Leon Hunter\n" + + "> Average Score: 90.0\n" + "> Exam Scores: \n" + "\tExam 1 -> 90.0\n" + "\tExam 2 -> 90.0\n" + "\tExam 3 -> 90.0\n"; + String actual = student.toString(); + + + + // Then + Assert.assertEquals(expected, actual); + } + + @Test + public void getNumberOfExamsTakenTest(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = {90.0, 90.0, 90.0, 90.0}; + Student student = new Student(firstName, lastName, examScores); + + // When + Integer expected = 4; + Integer actual = student.getNumberOfExamsTaken(); + + + // Then + Assert.assertEquals(expected, actual); + } + } \ No newline at end of file diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class new file mode 100644 index 0000000000000000000000000000000000000000..230a5b0049ef3c388f54a4842ad8f2fdf5f715cd GIT binary patch literal 2438 zcmZ`*TTfh76#n*HIOTAl19T_|^nwDzWjdDD+A=McOR4A-v{R`q-VVcoo;ol%7t;1g zlP3NKU;E;di6%-LjZGg+O#Br-_#=!_>$mpV3L>+ZOjqPw+`Sz5j86{-qN7yT{2I;9XzjVxO@q|oV?G7tRiLTSw_ zXY$qBnzvPLhK&{rj)PXTDI~)#vqiU3DVIu{3Wq9zdqtsZB^P!wI9VGBv|H$K(1{}l z2+fsht3^-2+Hs3DZ)u%bQgb7@ea3-I6x|9fYdUCIB6J0FHY~j0pcj2CWW%dY z?|5Z*!@F|N-OLwCWqKV+H2}46jQ%=Tt?Cyu)8(>zKj&AfHcsHAg#iaI;-x*l`z|cB z$*qW^!eDA8#5T}3YjWubaU=bH49Rf}EA*s-0R8Q3saWKR_@%Av$g+5iI2gs4LagFH z2&!8UbK1cvWLPb$6O9(a<(RCZ!f6K+IHTauZ{9Cgs*CRCf6C8S%l_5|Nxgz|7G8C5 z9vAki)NK+tuuAWfnpusKugKON~l1j?o=g^%RY3#~k z&9G3@1Bv!Vh4NHt9IB2`SD6`5Xw6sM!pGO#ZA00nk|t20JJk?S*eRc}!9mpBhr>r| zIwF+QSR}f6eZP^yw2TWc0Nw?r(PBkC70FPG*QbgSb{!P{{`Q{uKRlR{+H?h@$G!6RxWt+zT8c1^(HtacLh%JT8!|fmH*eVpm)3= zxgLVzjK9IpH~F+c5AkUoeGE0)`y;IH(EN>d&+)SjQGVKpp#={AuJNfW2*4ti_{311 zK;bjOzGYzN4XmwU#~NU^5i@~iw1+V5I;JhRIkALllfk@9OvQX{8Z&XMG1pGwCK=tO zah)K-;3~Y0>jo{uRnX$2-=g_zZX%F^B^l5Y3Xa!wkn3WPEHF$)5Nwdbk$E?_o@R`TSQgOT^R9OEgO6sLtHQQo$Q1j$_Po z9BHm+c#b0Z3HtO=syuFJuNlKBj!Sq4%Vc$vUPlpmPEF$$YzqksR~2jd9RvLOUEDI% zKP8l$=|J>SpQiB$J+k&q{0v)f#_|s%B>J0lL73VgdteAhFwA$@Ac>9EsYOWlwr(Zj z*3WQ2(+#NEi2jL)>i&cD6;|+Gz((;mfELpI0sXfm`x6|0jKM`MWqKE>N4Stq#&$9O z4Ax{^;V)hxXn)Zunorl-D2?~`DzFB5ZGa}36@ Y-S9cga1ZOuxu07s8?-3gA#?=(Kj(k~@c;k- literal 0 HcmV?d00001 diff --git a/target/classes/io/zipcoder/Student.class b/target/classes/io/zipcoder/Student.class new file mode 100644 index 0000000000000000000000000000000000000000..578cdcbf5e5d534b3c2166f6e6b6edad6347597d GIT binary patch literal 2966 zcmZ`*`*Raj6#j0Lc9V2dXdp$PU{tVa+7jidO{qW&r5ai^H3<0HrrWTPCN&jf_>O; z;6)QdNDB0~xtJ}xcG0d17;9FkZqF|Z3?yeYSjE4#$b^s*=sQga2@k_~B4S`vU`IQe z$Ly)PQ(_?^7(qZj(k5QQ%aWkgRlB?-Fs9R0@pU!)TXuxu#)s$|Ry)gZM`XC80)w46 zH#)sS1`=bF3F$I!B7+H**{yhH0^5^M?x^USH1Qfvkhh}ETE;s!(Z!T8Pe~Y48jNrnGI4Uvu3AOg6Ad-PuCq)mqQE{Q#d=v*SIKH)Wpv^pkdrQ1 z%@B$vuE=Ue>E7~VON4Vyv23~ZDor(a?FN-SH{nZG$DPcuuUxz4Hv4Luzjw8fz__1f ztyo_$J+q1HaGo-p;<+TSCF_*!x%$eYU0twLjbqtL!7Amgsw2PkWYE3hsQ%vMOe0v6 zNuOz-YbNXH`|MDIMkOKi(krWvIDXNo{T1h$2Wx&=(pg)uuGwX&EWZGo#{f&~@PC#q z$#bY)qKcw9*D72)XRWFX4BY7ubhF`1%C%K3l0tnGSlDhCUQ9DRLi1TA{k%6J_=wj9 zl9ANu=;c9W`D~hQ?1Zv?U5m_rAGE3*$yMsrf_=u34QOgXACSizPt*`^C?LouuN;oL z14L7gvGwBEI${s; z%meKHjTT*~@Hs$VFn$nGgwe;pExZK!vC7$$7YQGs$}h%Lh=dwROcLi_T9**u?lnwk z3~9clRd?z>j9)qMw(3!naTVJ140LD#7j@3a1SV-M1NSKKZJ_ev26oDOOhp**tXklD zG&n&DHUkpf2xQNuK(4odjQfE^+d#ZD5>Ejkd6C)Qz)hXd5%tYFk&WFAJiCq;HbU9w zgVNjLglCTq@rVQmn0-DroDCcw)Pa7&%wvpPe2B4;1`fmy@-Z0vuz|y|V;nZ{YSyRIf6#56=!dJO|Jq<4sO{K28o{;U;i>$=A-vCzb5@D+R48%O21DFB~7 zV(-iK2B@F5K>X`V-ug0MQd&wiUSG%5F>#8(r*Ib2ByYx7K3gY|#Br?=f$x}X7ry@= DJsN$K literal 0 HcmV?d00001 diff --git a/target/test-classes/io/zipcoder/ClassroomTest.class b/target/test-classes/io/zipcoder/ClassroomTest.class new file mode 100644 index 0000000000000000000000000000000000000000..8dd5973354ea0455a0bd0db0a3907396df86eccf GIT binary patch literal 3477 zcma);`*R!B7017;$L?C*IEi8>Ucw_lA#&nG*d@?NNst{UB#dGQE4VQ*khQ#V6joZZ zS{Xa#+44vWrIePw%bON{>d+r-PnmW))Bcp{FU>FQU(?}x@9s*gAed@K+Ov1>J@=gN z=bXE`_P@XU4ZywlEQ17+8d3(*P!(*uY^_*%$7(F)XBIBoRbPR6q}HhU#}p)UBXb&b z1w%DAf2Foubr)?ff84Q}P0w}f8ED7|H~k7yxzl3qmM(`=Zfn7@)zUn7<|hLK+YMx~ zLxHwpIW2qUB7NtkM#`Naf;C08wD5PiNG-V~X=pGN?1%?a@mq^_!`HE!`#f^BWiX7}L}+^y6ml{572m5hmWp2;c`P;*#xOD`GQ7jUo%oi5{w3QFcWf#c&W$`) z?h#B;EVlY^2hkG!lVcfvCac|^QQm(8ueY;M$Zi}pkg0z{*Sqj4hJ=>}mb=;?5_tCHa zWbhpv)=)4|#1UeV{JNcx@v?B~Gz8o`fn zf5sKso)T0~D=;ZUFa3qvCri?un105IS2EJ!5cFqfhCEHhxPEG~8dOM}Vj2+b{_udiDGptY1wDBCnO}KQ+vS*)Yc&_8r zc`hp0*}Fv;^s?LZ<1>f4R!%g7auB+7PUf&g=(c-xXSO*@-nF_tS8LWN<3yw3`j%gF z8_Z-|xzk5ND2BVMM^6SC>di4(8eFG0$0IY*98-{Jj*G$Ih!D^1)n&f5?8WY2+ghns z)n}Wsw7ME1*r&gvHC@NitShO>P8QHQVAa^N;oaa&&1K3S8c)m1SEg`T(_ zFY+xcK54L#q4M|pyvy^dh|zr;P(G)Tzz_H<9s_-NnZHIb0k7ay-YIyEPZMIXlBc6S zj=hvR@&&Z{-5cmTqx}`ed~y&2o7h&FPYq&F8tFmol!huFOn-sl`Rq;En-6T@)?*v}J00SCefLqazZ5YRP zlrV^s7(y94F$)v(xCs|OX!vL(>I1?!BSoCZ9^X$914SpYCq|{BTroVKJU{|ws!~V`JZ5?W4;Iux zJjBI9+I5r*x~ZA^CeC&g+{b@Sz+KpdyK#^?6fuI+*pKrVMU~k-#rM3&cl;U-#T2^| zDz=MrenoW@t}Wx&v=a320DeQAlJql%-%7>K;|}~zDpuuALRpobx8nDBmx_7R>OERF zD)xR`v8z-}#QERQt b64JQG06XU`#&M0`_h{Y7<&TUrflt2#d0{33 literal 0 HcmV?d00001 diff --git a/target/test-classes/io/zipcoder/StudentTest.class b/target/test-classes/io/zipcoder/StudentTest.class new file mode 100644 index 0000000000000000000000000000000000000000..e737af198306dbf7ca1fdb355e2e0b6349f701ac GIT binary patch literal 3068 zcmbtVU2_vv7=E@*vT3@tZQ6nXk$_TC`jLJ>wF&kE8f-EBfYd+*k!`w7w@o&<*>sQ# z^)Go-7#$t&obl32$KT@koIRV(23ls+T9pO5$C_rHJq1;BM!F?66)MMy&! z5e0n*`jMWl=vFzsv2$RQ90ie^re!+w3OZ9G#VDc*LV2TRMG@n-m4@XQwhFE7=yI*G zQ!yfo+swgV4BhC{(2uwR^+>NYjEy}7L#gGFd@G$ilZ`As_|-iWS$xtQJaiYJ;+%p3 zvzC5gJ}cFB4LeA|YnN%QV!Ld!NoPBfUQDDhSJW>>4E^0{Pk^-%4 zICo6D?yT!oL&0DwSgIFR?EgT+hhl#>_vdxFJ%(XiRguy#f@|cZW|z|k4RV-Xs@Dyh zlxn&=$bH?=D|H1|gEdRqgEf0Ag8VU(f48{^b-B~2R*!B8y zEyvz!t~FguF!y;SnN_1`)=eT^vaFh;J0{EL_I#@s1qwz@czFwk^9IC-UUJx>EKUyC zLj7%?mQ47C1&rCx&hn>qxle1VFQ?IF?JVL%3&?E)0dAWPC!>X0!!8+jOrdR`XJ>I> zLi80bVT1R&_^D9D&CcgN&eD7%bZ>VKqURNQ3)`VV47h{vAcovQWDsY?VErc~wnxXtU*dcwln5Q; z{Y+TAE@vW%@aQXCNkqo@Y*jOiE@tULC*EQ1UKZVlECzT13}O}M2<<#;yXaQCA}jK$ z?c~}6JY>}oY+{?E4xYY>FYt)bvOM<~Un1m2dcv<^#_PdX97XVyIRy_o-wJj(c2O(u za+j#b`d_HyqsJIegyK`jn2C>O!tp7hcezj{7tusGp}J%wqHS!hm2F531UbS$u#ybgDU^og_e(H5Y$tHxiLHA}%u}Fh?RXOqC@S zHwkwEv!vn^Oy_p5@jFYpB})i ze-AJb3cW&B_R299--cJV!5ZC-fnLqRjIAS`q`;i>%{6XYlHoIL>qrYL0?e7Zz=J2 s0j!(8m}|b6cm1xt