From 028545836042d1bba1cb2f3e68d1faaa78c9d3c8 Mon Sep 17 00:00:00 2001 From: Nick Date: Thu, 8 Jul 2021 21:20:14 -0400 Subject: [PATCH 1/2] Finished the lab --- src/main/java/io/zipcoder/Classroom.java | 85 ++++++++++ src/main/java/io/zipcoder/Student.java | 87 +++++++++- src/test/java/io/zipcoder/ClassroomTest.java | 142 ++++++++++++++++ src/test/java/io/zipcoder/StudentTest.java | 153 ++++++++++++++++++ target/classes/io/zipcoder/Classroom.class | Bin 0 -> 3546 bytes target/classes/io/zipcoder/Student.class | Bin 0 -> 3696 bytes .../io/zipcoder/ClassroomTest.class | Bin 0 -> 4916 bytes .../io/zipcoder/StudentTest.class | Bin 0 -> 3738 bytes 8 files changed, 466 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..3fac506 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -1,4 +1,89 @@ package io.zipcoder; +import java.lang.reflect.Array; +import java.util.*; + public class Classroom { + + private Student[] student; + + public Classroom(Integer maxNumberOfStudents) { + this.student = new Student[maxNumberOfStudents]; + } + + public Classroom(Student[] newStudentArray) { + this.student = new Student[newStudentArray.length]; + for (int i = 0; i < newStudentArray.length; i++) { + student[i] = newStudentArray[i]; + } + } + + public Classroom() { + this.student = new Student[30]; + } + + public Student[] getStudents() { + return student; + } + + public Double getAverageExamScore() { + Double result = 0.0; + for (Student element : student) { + result += element.getAverageExamScore(); + } + return result / student.length; + } + + public void addStudent(Student student) { + ArrayList addStudentArray = new ArrayList<>(Arrays.asList(this.student)); // might be the issue - it creates a list from + addStudentArray.add(student); // the parameter 'Student student' instead of the class + this.student = addStudentArray.toArray(new Student[0]); // same concept as removing a student + } + + public void removeStudent (String firstName, String lastName) { + ArrayList removeStudentArray = new ArrayList<>(Arrays.asList(student)); + for (Student element : removeStudentArray) { + String actualFirstName = element.getFirstName(); + String actualLastName = element.getLastName(); + if (actualFirstName == firstName && actualLastName == lastName) { + removeStudentArray.remove(element); + } + } + this.student = removeStudentArray.toArray(new Student[0]); + } + + public void getStudentsByScore() { + // ArrayList sortStudentArray = new ArrayList<>(Arrays.asList(student)); + // for (Student element : sortStudentArray) { + // element.getFirstName(); + // sortStudentArray.sort(Comparator.comparingDouble(student -> element.getAverageExamScore()).thenComparing(student -> element.getFirstName())); + // } + Arrays.sort(student); + } + + public Student[] getGradeBook() { + Arrays.sort(student); + ArrayList addingTheGrade = new ArrayList<>(Arrays.asList(student)); + + Double result = 0.0; + Double standardDevi; + for (Student eachStudent : addingTheGrade) { + result += Math.pow(eachStudent.getAverageExamScore() - getAverageExamScore(), 2); + standardDevi = Math.sqrt(result/(student.length - 1)); + if (eachStudent.getAverageExamScore() >= (getAverageExamScore() + (standardDevi * 2))) { + eachStudent.setLetterGrade("A"); + } else if (eachStudent.getAverageExamScore() >= (getAverageExamScore() + (standardDevi))) { + eachStudent.setLetterGrade("B"); + } else if (eachStudent.getAverageExamScore() >= getAverageExamScore()) { + eachStudent.setLetterGrade("C"); + } else if (eachStudent.getAverageExamScore() >= (getAverageExamScore() - (standardDevi))) { + eachStudent.setLetterGrade("D"); + } else { + eachStudent.setLetterGrade("F"); + } + } + System.out.println(addingTheGrade); + return addingTheGrade.toArray(new Student[0]); + } } + diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index b543e36..0295a85 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -1,4 +1,89 @@ package io.zipcoder; -public class Student { +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; + +public class Student implements Comparable { + + String firstName; // collection of characters representative of a first name + String lastName; // collection of characters representative of a last name + ArrayList examScores; // dynamic collection of decimal values representative of test scores + String letterGrade; + + public String getLetterGrade() { + return letterGrade; + } + + public void setLetterGrade(String letterGrade) { + this.letterGrade = letterGrade; + } + + public Student(String letterGrade, String firstName, String lastName, Double[] examScores) { + this.letterGrade = letterGrade; + 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 this.examScores.size(); + } + + public String getExamScores() { + int index = 1; + String result = "Exam Scores:\n"; + for (Double score: examScores) { + result += "Exam " + index + " -> " +score + "\n"; + index++; + } + result += "Letter Grade: " + letterGrade; + return result; + } + + public void addExamScore(Double examScore) { + this.examScores.add(examScore); + } + + public void setExamScore(int examNumber, Double newScore) { + this.examScores.set(examNumber, newScore); + } + + public Double getAverageExamScore() { + Double summation = 0.0; + for (int i = 0; i < this.examScores.size(); i++) { + summation += this.examScores.get(i); + } + return summation / this.examScores.size(); + } + + public String toString() { + return this.letterGrade + " " + this.firstName + " " + this.lastName + ", " + this.examScores; + } + + @Override + public int compareTo(Student smallStudent) { + if (this.getAverageExamScore() == smallStudent.getAverageExamScore()) { + return this.getFirstName().compareToIgnoreCase(smallStudent.getFirstName()); + // This compares the scores, haven't been able to + } // compare lexicographically + // return (int) (this.getAverageExamScore() - smallStudent.getAverageExamScore()); + return (int) (smallStudent.getAverageExamScore() - this.getAverageExamScore()); + } } diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index 7bac1ff..bb262d9 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -1,4 +1,146 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; + public class ClassroomTest { + + @Test + public void getStudentsTest () { + // : 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 + String output = String.valueOf(classroom.getStudents()); + + // Then + System.out.println(output); + } + + @Test + public void getAverageExamScoreTest () { // needs some work + Double[] s1Scores = { 100.0, 150.0 }; + Double[] s2Scores = { 275.0, 25.0 }; + + Student s1 = new Student("", "student", "one", s1Scores); + Student s2 = new Student("", "student", "two", s2Scores); + + Student[] student = {s1,s2}; + Classroom classroom = new Classroom(student); + + // When + double output = classroom.getAverageExamScore(); + + // Then + System.out.println(output); + } + + @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("", "Leon", "Hunter", 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 removeStudentTest () { + // : Given + int maxNumberOfStudents = 1; + Classroom classroom = new Classroom(maxNumberOfStudents); + Double[] examScores = { 100.0, 150.0, 250.0, 0.0 }; + Student student = new Student("", "Leon", "Hunter", examScores); + + // When + classroom.addStudent(student); + Student[] postEnrollment = classroom.getStudents(); + classroom.removeStudent("Leon", "Hunter"); + Student[] afterRemoval = classroom.getStudents(); + + // Then + String afterRemovalThing = Arrays.toString(afterRemoval); + String postEnrollmentAsString = Arrays.toString(postEnrollment); + System.out.println(postEnrollmentAsString); + System.out.println(afterRemovalThing); + } + + @Test + public void sortingByScoreTest () { + // "Cannot find local variable 'classroom' " from debugger with break on 92 + + Double[] examScores = {100.0, 150.0, 250.0, 0.0}; + Double[] examScores1 = {50.0, 75.0 , 125.0, 0.0}; + Double[] examScores2 = {200.0, 300.0 , 400.0, 50.0}; + Double[] examScores3 = {50.0, 75.0 , 125.0, 0.0}; + Double[] examScores4 = {0.0, 0.0}; + Double[] examScores5 = {1000.0}; + Student s = new Student("", "Leon", "Hunter", examScores); + Student s1 = new Student("", "Eric", "Weenermier", examScores1); + Student s2 = new Student("", "Kyle", "Calzone", examScores2); + Student s3 = new Student("", "Cal", "Weenermier", examScores3); + Student s4 = new Student("", "Ryan", "Coffee", examScores4); + Student s5 = new Student("", "Front", "Runner", examScores5); + + // When + Student[] student = {s, s1, s2, s3}; + Classroom classroom69 = new Classroom(student); + Student[] postEnrollment = classroom69.getStudents(); + classroom69.getStudentsByScore(); + Student[] afterSorting = classroom69.getStudents(); + + // Then + String postEnrollmentAsString = Arrays.toString(postEnrollment); + System.out.println(postEnrollmentAsString); + System.out.println(Arrays.toString(afterSorting)); + } + + @Test + public void getGradeBookTest () { // avg + // Given + Double[] examScores = {100.0, 150.0, 250.0, 0.0}; // 125.0 + Double[] examScores1 = {50.0, 75.0 , 125.0, 0.0}; // 62.5 + Double[] examScores2 = {200.0, 300.0 , 400.0, 50.0}; // 237.5 + Double[] examScores3 = {50.0, 75.0 , 125.0, 0.0}; // 62.5 + Double[] examScores4 = {0.0, 0.0}; // 0.0 + Double[] examScores5 = {1000.0}; // 1000.0 + Student s = new Student("", "Leon", "Hunter", examScores); + Student s1 = new Student("", "Eric", "Weenermier", examScores1); + Student s2 = new Student("", "Kyle", "Calzone", examScores2); + Student s3 = new Student("", "Cal", "Weenermier", examScores3); + Student s4 = new Student("", "Ryan", "Coffee", examScores4); + Student s5 = new Student("", "Front", "Runner", examScores5); + Student[] student = {s, s1, s2, s3, s4, s5}; + + // When + Classroom classroom69 = new Classroom(student); + Student[] actual = classroom69.getGradeBook(); + Student[] expected = {s5, s2, s, s1, s3, s4}; + + // Then + Assert.assertEquals(expected, actual); + } } diff --git a/src/test/java/io/zipcoder/StudentTest.java b/src/test/java/io/zipcoder/StudentTest.java index a9fedec..c9a0d93 100644 --- a/src/test/java/io/zipcoder/StudentTest.java +++ b/src/test/java/io/zipcoder/StudentTest.java @@ -1,5 +1,158 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; +import org.junit.experimental.theories.suppliers.TestedOn; + +// Some tests on visually verified (no assert equals) + public class StudentTest { + @Test + public void getFirstNameTest() { + // Given + String firstName = "Jawnski"; + Double[] examScores = {69.0}; + Student student = new Student("", firstName, "Jawner", examScores); + + // When + String result = student.getFirstName(); + + // Then + Assert.assertEquals(result, firstName); + } + + @Test + public void getLastNameTest() { + // Given + String lastName = "Jawneroon"; + Double[] examScores = {69.1}; + Student student = new Student("", "Jawnskir", lastName, examScores); + + // When + String result = student.getLastName(); + + // Then + Assert.assertEquals(result,lastName); + } + + @Test + public void setFirstNameTest() { + // Given + String firstName = ""; + Double[] examScores = {69.0}; + Student student = new Student("", firstName, "Jawner", examScores); + + // When + student.setFirstName("Jawnerino"); + String result = student.getFirstName(); + + // Then + System.out.println(result); + } + + @Test + public void setLastNameTest() { + // Given + String lastName = ""; + Double[] examScores = {69.6}; + Student student = new Student("", "Jalapeno", lastName, examScores); + + // When + student.setLastName("Calzone"); + String result = student.getLastName(); + + // Then + System.out.println(result); + } + + @Test + public void getNumberOfExamsTakenTest() { + // Given + Double[] examScores = {40.5, 13.4, 1324.1, 134.1, 664.4}; + + // When + Student student = new Student("" , "Kyle", "Sinclair", examScores); + Integer result = student.getNumberOfExamsTaken(); + + // Then + System.out.println(result); + } + + @Test + public void getExamScoresTest() { + // 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 result = student.getExamScores(); + + // Then + System.out.println(result); // No need for Assert - User visually checks + } + + @Test + public void addExamScoreTest() { + // Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { }; + Student student = new Student("", firstName, lastName, examScores); + + // When + student.addExamScore(100.0); + String output = student.getExamScores(); + + // Then + System.out.println(output); + } + + @Test + public void setExamScoreTest() { + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 96.0}; + Student student = new Student("", firstName, lastName, examScores); + + // When + student.setExamScore(1, 150.0); + String output = student.getExamScores(); + + // Then + System.out.println(output); + } + + @Test + public void getAverageExamScore() { + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 150.0, 250.0, 0.0 }; + Student student = new Student("", firstName, lastName, examScores); + + // When + Double output = student.getAverageExamScore(); + + // Then + System.out.println(output); + } + + @Test + public void toStringTest() { + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 150.0, 250.0, 0.0 }; + Student student = new Student("", firstName, lastName, examScores); + + // When + String output = student.toString(); + + // Then + System.out.println(output); + } } \ 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..da1d37e4b143961df81177f10e6f15a7f559059d GIT binary patch literal 3546 zcmZu!+jA4w9sZ7WSy^7o#zq1Y2XKOkY>T)dT!IZQwgthdET=UwNt4E1q{WskX`R)| z;Pje?+>;i138Cqgw$PW%BurvRI`yOvc}QOR(0`zBed|o8eQ4<<&UenPbs=KV*|Wd% zyMDj#cNRYR?1MD``*1CcyKyRvNAZ}3uQ%f^JRZgq_=a4b48w<64c`pI!09kT$jBut z7gIy8e4c5+9OmVcliCY%S(FEPX;cW);cW0IL&-m36k*9_DTJq_rX4~l1Sf=Y2+Pel zi*sSD;Asut((r8ot>l!mX3-IdJ)X*0gHPv{GFH~K2d7>6ut4x|u9$O1s1Z*s7|X_B z-YCuuP81z;&a{X7W(54>G!bY^<%(vyTsUpoCymp2N;*meYc22%~LccSgD+z3= z3pbuON+sK}3Jlm;FwVJdrp|b2P`|T5aDlFP_+UtF5B%$ZI#ZOoa+&KZU2jAgUl&GEjPER$B5RkI+? z%$o%Taj%?D3vQY zOe$92o0X-F{v;Y19BvqKgnn9WvtTWomE`WJWy!Q-=ZbT~HAQ(6H`k0)HuA@FcF9Q_ z1;v*t!8}EQh@sR{#)ek&nW{yIyxB0WOGK5*!P4+uqFU3|u@$dbI)x9~M%Em&tVOoo zG&1v*D)f?L6tjk%O`6N3QG~FvkdyPKvfv!ECDT^f&X~t@lIf8Of$xv#b#O204Zcp0zgconbd_#uA8 z3Uyq-MIArJPjvhgKhyELTrNqiH*i_Q&vm?sU+DNHe#Ma()$wcmhMO_|#`#O~cU;47 zbzH&kH2hx2A8=J5TAOvHK7saXlcr8Dm>JTxM&z=dm{-e~a5yNAWeaSontB(AKqyyq zW{iB9C~^onuiCPFn>xb`;>m^s)sj`CRkdOTZVFY{cx42Qk|eu8FK>xzWH;$y&$F`d zW}?gEu9A&g`8L^ueJY9GN)o-;%K`=Nr+p`y)~V*xuuns)0B&Kk%5J}x-BB7-jEKsveS71oqf8^l zG`6VFx@+MD6gYr`o;O*u^cIk1z0HjaT~G>w_8RS@hZszVr7T4P>L0UW_${#*pNNCevvPza7l5Lw`V=|bSkIO?VT48y4&{|TYT zWF9xsd;{Uh1oLV+)t~SY)>Y^qqSd36n_UMh2C33U8b(ROUF^K1mFz7EQ`6C1%#ojW zHenQFM0K3!vJI{zshW5U$K7;kO^op{eU7oj zDhN`Nq(oAlZ2uHd4U-zu2W}~3rWo2C^8zKqxNaL@h z$Ulhjzwk8<*Gc>zkBBB($Z6Qe={$(P;Hzp*7jTg}N92Tvh}WGMZKfGbFxJ1->{chl yJxlUTlH&nr>*Sd`&1A?3vrGf){4Y~bO}Lb)ziEwWpr^a%7J~m%EP90Y%;|Fw!3JIc 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..9658f642b366a599bf0fbcf219d6d3f2dc1ed1d6 GIT binary patch literal 3696 zcmZ`*Yj+dZ72Q{o8CjaxM8*aKO>Jjni?r1~^ zZIZSj??>P7SCTf*l@HBYLC|KcuB?9SU+CBVima8#K6kF9kq}?*+_`h^Is5Fh&yoK7 z>A(IB;2yl&i!ppJg*`YUJ4cqY7V;^q!%d+F=j5ayyYne{xRAs}c`2q*LRprIg$)be zPhm68$l@nam1mGdO`eyMcvPO3lXy&SUXkSoDfHuqvOF%YPbBeV5t7!962%^h~I%O=L$Bt zSZr0vCd$ZbT9|58-v;?DWaap|W2{~Egmcj?vvzG{E|mkf;QA!sHrk6_qsBc| zDR#Rs3|xgCue|PFR!~bMgp#Ng1A15soczTVXG1e?;du)$Fau|Oz3ErNcTc~!sV`n( zB9SXY*`@Axv?jwGsnxRksK!nznacbn*LMnT#7(=3nyDy{x~8;9hB68`BuKaUWi^k(FHz)c*(}gctwnVYGVSEHhzYm zTlj^IU*cCRq_8#;3gJM?#;@@kmeR&=@jDy8#~&0nw}wSXq{7zLQApmAnpb3x+4v*= zM8#;I^73be#K_d#i0uDD2{FJa>|+OpJwKwSzyW^#D_*tn8eSJvf3xv-ykX-_yu~Xc z3b9FAJcunbF#T+u5oT^Mjg*&s+u5KtHthv5n2IsKp3VpUvDHf?1s&PjAC#v2R7MsDSpxaxB zP3tOHmz-kFJ$_Dsof4gtt>#X8P0&M){@1Y@$xvF>d8fMSUM6aWdWdn$`lY>XObU|X z#)ey7SD1=6bYo6NRNW>9hS}MUvGa4AyLQ4N)8A-|?&2ITw`e%#5a%RO_)^;d>Eg7R z)nN8$l)&bYNU!T3tCK>s=I1C^P8o^ZMtRfIKyz>`70Mi>3r>|c+ooTGtR;-{S9uQz z6bb%`VE1x`G_ZcMLHTWp`xy3eWuJ5H=h>IBkLz9fjBUYZPwoS#e{d7S-CQ^6!+!oR z0qoEK_hLWa6uyG5a+S+-w2p~&ZsHo$``m@MQ~Gp(|0lL+4@04q@gUv>iUht72aK;5 zm_iRdjODH)rv2q6uOXhBx`ssVL-d>;PTatz>#(jN*^0ECzJMX#-HKjpLm!4QfbH0g z9Xj$oq0eUIF%y|_G+lyzOcNH@y9vzDmy+3Fa82{sASm8R&>dX~I@q0{cnfw&&@O`8 zeG7u5mJ)cbE09DdkUd?29O@1v(Fr6+AQQI$B4QFChcVAps(!D22hx;GvX0&xNOi*5 z8-bH<3g<{Om;X}`QtXR~*-UyR^kc71{S&t-{!Ywr)2Hwe`VS;N#OBl2ar=t{(X=s`6o_%H?OjN6f0x#34}p#n;Mb__ zZ&2B*WXz)~MfW)>VU+6vj&et^CXpB|j$x53@J~7JCqFUXm&S^H$^7Z>LTnQJv(l4IM0hm zw8N3mwCOO72Q+?O$2aLZMyLEqG_GG|w&MD5-wo_sjvw4<>ijxJ2>c83wzG~qSRTIR z#pY^^?EkOvk&<|}!s8a>L%P_Dy* zz_M^seavB}mTQ%v8Q4(nUV0E!X2V;I)%HUF@+Ovzd@qp zZ-9wbA~%9Eo2z4#36H*ser|VhyQ_}f@5zyH6g~>Cyhqzmb$y!C2g&#vXVs}lp|j1p zWbqJnsI;2mP+K?8GxWnI^xX_Bp?h-^A7QMHJH>Z&T3Zq9y~bzEjQ{W8yW0AZ&jFG) B2EYIS 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..e9435976953eccef5ea902816d34933fa8ac2fe7 GIT binary patch literal 4916 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 Date: Fri, 9 Jul 2021 20:20:31 -0400 Subject: [PATCH 2/2] Finished lab, had a hangup on sorting students by grade and name --- src/main/java/io/zipcoder/Classroom.java | 12 +++++++++--- src/main/java/io/zipcoder/Student.java | 2 +- target/classes/io/zipcoder/Classroom.class | Bin 3546 -> 4777 bytes .../io/zipcoder/ClassroomTest.class | Bin 4916 -> 4917 bytes 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index 3fac506..b0d1044 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -52,14 +52,20 @@ public void removeStudent (String firstName, String lastName) { this.student = removeStudentArray.toArray(new Student[0]); } - public void getStudentsByScore() { + public Student[] getStudentsByScore() { // ArrayList sortStudentArray = new ArrayList<>(Arrays.asList(student)); // for (Student element : sortStudentArray) { // element.getFirstName(); // sortStudentArray.sort(Comparator.comparingDouble(student -> element.getAverageExamScore()).thenComparing(student -> element.getFirstName())); // } - Arrays.sort(student); - } + // Arrays.sort(student); + List students = Arrays.asList(this.getStudents()); + Comparator byScore = Comparator.comparing(Student::getAverageExamScore); + Comparator byFirstName = Comparator.comparing(Student::getFirstName); + + Collections.sort(students, byScore.thenComparing(byFirstName)); + return students.toArray(new Student[0]); + } public Student[] getGradeBook() { Arrays.sort(student); diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index 0295a85..f40c1c7 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -73,7 +73,7 @@ public Double getAverageExamScore() { return summation / this.examScores.size(); } - public String toString() { + public String toString() { // This is some dumb shit - sat here for hours because i forgot to include 'this.letterGrade + " " + ' return this.letterGrade + " " + this.firstName + " " + this.lastName + ", " + this.examScores; } diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class index da1d37e4b143961df81177f10e6f15a7f559059d..e6ad12e8b4aa9be437717922c4fb1ced0de2c434 100644 GIT binary patch literal 4777 zcma)AYjhN68GdGOv)N2GAt8a#l$%^O$%ZJj&<08&375bopn+gZD^7MN$&%fj?d)tI z^;*T&)*JO!YrUdEy;KXf;Zhs%Qnj^Owcao1_|Jcy8qpeYJQG-rESpS=}GO19*Qe9z;RteMs}O=BMJh26j4y0Nau{9 zVs_N94(Ov9QW_IxQqPR&R$6?!#DG1KE+|-3VXiNu7YdeXW@)e~s~>mN>>G34Ab(R8 z;|f}1)!i0uDQW%&=vU4-=IYsQS^Bhsx?x*SP7dmM=@N6Hz#kJLwd00eHn}*~UR^uA zA>;Nb!_vo%9mneStrsQ3ww2C}Z}tS`QXF5Cc2UplOj`weNY6^VlmX^4Dv0WmEuqhI)r^%T!oRQ8^V$Cy=5S$n75VucG1#EGp2Psnb1)X{mq7SCp%na%5#ZkrY(uN|HC_`cS| zCUjgsV_hE3vcl{0YxI7XrKgNu)10JPLr+eW(ybM2J(tq0RKGDryhmAoX8gc}AtgAI zh@D}xXeEuEY0;9=Qm3sGxz^ByEh;{v;j{Q0VO?beXy`zV%<10e%X$@!axQ4IdYZ|_eZ?F^^p1?OXd<#!%IE!-{zAYY439j3~5!1jB z?SgIT`9Z^;FjIy45T0(pOnne)1I}x>fQu?FX?OBsY=4>EL6f7u#sUP zYEyEWl%*Jf<3hOrL~=+k2=FOb&B0i<>^QyI)hs1koVU8|DrtRYCd1&;W=_s^KfxqC zs-oyl`fQu-h>2CTRmHxDyp))h`C%zd&nJw1rB3LDA>%lMU~*_Ekdq&k!_|#Qf#?oT z8&-0ahKLyKO}jGFQ^P*9VUvxd#A;AU@;uGQf!Ygq+VzXpd(8LG1HKLgMyV(UWSp*O_`HMcS6sOrgTn0eT?UyX%R}b+47f) zKe5>pJP?X`_P{_cXIOGx8O->LUO>D0oO!yNXGO*+ta1daoXZ|4R|p>9{lLrq+BY4O zuP*DIc&_F?J(C&cu-L5P&zxr0ya6Rg%xETwu zl-Ap%H=*A*xT5}{^gNiu7U2WZb3vEFW){|T~sS8Qs5|41OB+LtiEBpkFh?sk$ z7Z6Mc4TJI7t^SRH=D>}ousq%zSl<(5WkRjN8K`_G1>cDP^Y&Lk780`$m?R3zP8M4b zO()h5*b`1GT4Bi%-{}@Lsr!K2t9 zRt*X+!`~AWNnOw*bKBUXwuU-SqoGxepGKrhY&9J^GxvN)*EN9zBv{w5n?TUjGr^tg zsrBrsTe-7?;Ut*wee8?3urox@?1swyB^V+#M6M?6=SrpAic%?#ltMp(H*!~C>ImM% zm5(;|W0*x_ac_~n4-F?LA8}BzMb&d##nk;tUeiChoj#0Kg_5O;m!1a z0TFWt?xZ_Q(2B!cIsS__cDU{;aot_wx|_QSGw1e~@-OnTMU<$6u^TGun-GmNNXU7M z{Ia*maZmR!18w{qUx*toV43KpL9s2nD3B6;w4Ah|`DSz3384@rCXOTj3VU=tQGJTmO_}quiX%-d^qrT;2k8ju3YS z3BkF8ULFMIkV8lg7eSMM52_diR9dYz_ev32c R9prf@-i3F&s}p$N{{a*7l4}3} delta 1557 zcmZvc>2H)(6vlt=Z0~e>JFQF?yGT32RJ&kRO3PwP3l#y|f(t0Plv<>=r54+QBI1Ax zxFR?zDvF8=8YPh>lg31%AB>5K(Jz|lKj2r5e$X1N&wZy;8e-FX-}|2PJm;Kyp7YK} ziJ!}p-~9X8d7zP#5$17QgxlHVvN?y#xg)}z+-0}BBlziY*%G0bdm@DCv)fj?-RqLD z&uzK%bD!M?EPBvxL)Nj~l7=G+*b{0~D*G4Ven#w;*b(Ld3mpwJ7G^xm&M>=jc#wx8 z?B-#YJuZ)&{yOY9ds5#!$DO@rM|?}2z!sNBQ>XkTso_A2vpMx~pekC;BA29LANw6* zsr|l~Ugnc<*=u-=#|=;Lq+u~jw4IbwK`l;I^_HoRiDqZailuerQ#IK~@>H#zR$v>VRmW@>1LTsAp;m9jVn6|P)az+a3%E)w%Wm-44W`MdNo_Ngt1Z4tG4d(mYOe8^ zi5X^sYn9nyp-?e=Q-b+j8eQ@nn557PxyTFot*K02D5yvU6_ZDaSCA3HmYONZp^0Y8 zkDykFsYFzcaj2m83H(c(yvtL-ry)Gnsl=E3a)}4>#)MQ-<|)DyM%|PHX9q#i}R)|DnjG%cZ+%(ko;g zo`P&d!erzKTRA2uJS|2>k%*qCX)dj^R0+?hvOX)R^M}54sp3SZW26ohEKe4t3H29J zJi(=X6056T@78}lu=U``1f{Zdmj=_g)}F?~7iftw)OYk4d8NTQWogP!GW0*FETY0g zthoqb=}GY~^St#Jd2N>d=?rr{L`2w1dzz{_Lseaxc%A=q{AtV=vpmqPO&(*D4nBZzk4HmVX`v54*9Igi*ctkFqxs2)C*fxXE#jg ehc@I*x{Mlj{dc>ngLp-JlF(n?JZw+^74;u2kKxGx diff --git a/target/test-classes/io/zipcoder/ClassroomTest.class b/target/test-classes/io/zipcoder/ClassroomTest.class index e9435976953eccef5ea902816d34933fa8ac2fe7..cd5cabf2acd9820aa0a791d0b1f6fab96c797ebb 100644 GIT binary patch delta 245 zcmXBOJxf9X7{&4bxpqyh^dfD}YS199Esa@(r38Y5FT;i2>}HhKT-at zKa41uV*E1T%oHywLYG@(LfiNRrVV8|=gzdL1NNy=VN1sp=vbdrnH^fzrR;cydy^+W I^t~_VA60HH9RL6T delta 243 zcmXBOJxf9X7{&4b(XMZqUZkyAg$AjysU^rlv^N|CG2tSX*3HOnTU&D=I0bIa!nHm? z&@8mM_7VI5(gSV3b9i_-AB92aF(=$1I*@wO<#t-k@P$SMS zW2&YEOI|oJCCiF3