diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index 64566f0..84f9db1 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -1,4 +1,53 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class Classroom { + private Student[] student; + private Integer maxNumberOfStudents; + + public Classroom(Integer maxNumberOfStudents){ + this.student = new Student[maxNumberOfStudents]; + } + public Classroom(Student[] student){ + this.student = student; + } + public Classroom(){ + this.student = new Student[30]; + } + public Student[] getStudents() { + return student; + } + public Double getAverageExamScore(){ + Double sumScore = 0.0; + for (Student thisStudent : student) { + sumScore += thisStudent.getAverageTestScores(); + } + return sumScore/student.length; + } + public void addStudent(Student newStudent) { + for (int i = 0; i < student.length - 1; i++) { + if (student[i] == null) { + student[i] = newStudent; + } + + } + + } + public void removeStudent(String firstName, String lastName){ + ArrayList newArrayList = new ArrayList<>(Arrays.asList(student)); + for (int i = 0; i < student.length; i++) { + if(student[i].getFirstName().equals(firstName) && student[i].getLastName().equals(lastName)){ + } + } + student = newArrayList.toArray(new Student[0]); + } + public void getStudentByScore(){ + Arrays.sort(student); + } + public void getGradeBook(){ + + } } diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index b543e36..ff144b3 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -1,4 +1,72 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; + public class Student { + private String firstName; + private String lastName; + private ArrayList testScores; + + public Student(String firstName, String lastName, Double[] testScores){ + this.firstName = firstName; + this.lastName = lastName; + this.testScores = new ArrayList(Arrays.asList(testScores)); + } + + 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 String getExamScores() { + String result = ""; + for (int i = 0; i < testScores.size(); i++){ + result += "Exam " + (i + 1) + " score: " + testScores.get(i) + "\n"; + } + return result; + /* LinkedHashMap map = new LinkedHashMap<>(); + for (int i = 0; i < testScores.size(); i++) { + map.put("Exam " + (i + 1) + " score",testScores.get(i)); + map.toString(); + } + return map;*/ + } + + public void addExamScore(Double examScore){ + testScores.add(examScore); + } + + public Integer getNumberOfExamsTaken(Integer numberOfExams){ + return testScores.size(); + } + public void setExamScore(Integer examNumber, Double updatedScore) { + testScores.set(examNumber - 1, updatedScore); + } + public Double getAverageTestScores(){ + Double sum = 0.0; + for (int i = 0; i < testScores.size(); i++) { + sum += testScores.get(i); + } + return sum / testScores.size(); + } + public String toString(){ + String newString = ""; + String result = newString += "Student Name: " + firstName + " " + lastName + "\n" + + "> Average Score: " + this.getAverageTestScores() + "\n" + + "> Exam Scores: " + this.getExamScores() + "\n"; + return result; + } } diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index 7bac1ff..6c6925c 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -1,4 +1,48 @@ package io.zipcoder; +import org.junit.Test; + +import java.util.Arrays; + public class ClassroomTest { + @Test + public void avgExamScoreTest(){ + // : 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 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); + } } diff --git a/src/test/java/io/zipcoder/StudentTest.java b/src/test/java/io/zipcoder/StudentTest.java index a9fedec..6aec568 100644 --- a/src/test/java/io/zipcoder/StudentTest.java +++ b/src/test/java/io/zipcoder/StudentTest.java @@ -1,5 +1,75 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; + public class StudentTest { + @Test + public void getExamScoreTest(){ + //given + Double[] examScores = {91.5,89.0,98.1,100.0}; + Student student = new Student("Raymond","Fitzgerald", examScores ); + + //when + String output = "Exam " + 1 + " score: " + 91.5 + "\n" + + "Exam " + 2 + " score: " + 89.0 + "\n" + + "Exam " + 3 + " score: " + 98.1 + "\n" + + "Exam " + 4 + " score: " + 100.0 + "\n"; + //then + Assert.assertEquals(output, student.getExamScores()); + } + @Test + public void addExamTest(){ + //given + Double[] examScore = {}; + Student student = new Student("Raymond", "Fitzgerald", examScore); + + //when + student.addExamScore(95.0); + String expected = "Exam " + 1 + " score: " + 95.0 + "\n"; + + //then + Assert.assertEquals(expected, student.getExamScores()); + } + @Test + public void setExamScoreTest(){ + //given + Double[] examScores = {100.0}; + Student student = new Student("Raymond", "Fitzgerald", examScores); + + //when + student.setExamScore(1, 150.0); + String output = student.getExamScores(); + + //then + System.out.println(output); + } + @Test + public void getAverageTestScoreTest(){ + //given + Double[] examScores = { 100.0, 150.0, 250.0, 0.0 }; + Student student = new Student("Raymond", "Fitzgerald", examScores); + + //when + Double output = student.getAverageTestScores(); + Double expected = 125.0; + + //then + Assert.assertEquals(output,expected); + } + @Test + public void toStringTest() { + // : Given + Double[] examScores = {100.0, 150.0, 250.0, 0.0}; + Student student = new Student("Raymond", "Fitzgerald", 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 0000000..5a5ad11 Binary files /dev/null and b/target/classes/io/zipcoder/Classroom.class differ diff --git a/target/classes/io/zipcoder/Student.class b/target/classes/io/zipcoder/Student.class new file mode 100644 index 0000000..51e9182 Binary files /dev/null and b/target/classes/io/zipcoder/Student.class differ diff --git a/target/test-classes/io/zipcoder/ClassroomTest.class b/target/test-classes/io/zipcoder/ClassroomTest.class new file mode 100644 index 0000000..d26a2d5 Binary files /dev/null and b/target/test-classes/io/zipcoder/ClassroomTest.class differ diff --git a/target/test-classes/io/zipcoder/StudentTest.class b/target/test-classes/io/zipcoder/StudentTest.class new file mode 100644 index 0000000..1ae9641 Binary files /dev/null and b/target/test-classes/io/zipcoder/StudentTest.class differ