diff --git a/tp1/Cohort.java b/tp1/Cohort.java index 49e6bc2a6f4d93276217f90091a538db1d077fca..1cfb9d967c263269398d16b5b897f124d1e52184 100644 --- a/tp1/Cohort.java +++ b/tp1/Cohort.java @@ -44,6 +44,11 @@ public class Cohort { for (Student student : students){ student.printResults(); } + System.out.println("Le nombre d'étudiants ayant validé leur année : " + getPass()); + System.out.println("L'étudiant avec la note la plus élevée : " + maxAverageName() + " avec une moyenne de " + maxAverage() + "/20"); + System.out.println("L'étudiant avec la note la plus basse : " + minAverageName() + " avec une moyenne de " + minAverage() + "/20"); + System.out.println("La moyenne de la classe est de : " + getAverageOfClass()); + } private void printName(){ @@ -58,4 +63,64 @@ public class Cohort { public String toString() { return this.name; } + public int getPass(){ + int pass = 0; + for (Student student : students){ + if (student.getAverageGrade().getValue() >= 10){ + pass += 1; + } + } + return pass; + } + public double maxAverage(){ + double max = 0; + for (Student student : students){ + if (student.getAverageGrade().getValue() > max){ + max = student.getAverageGrade().getValue(); + } + } + return max; + } + public String maxAverageName(){ + double max = 0; + String name = ""; + for (Student student : students){ + if (student.getAverageGrade().getValue() > max){ + max = student.getAverageGrade().getValue(); + name = student.toString(); + } + } + return name; + } + public double minAverage(){ + double min = 21; + for (Student student : students){ + if (student.getAverageGrade().getValue() < min){ + min = student.getAverageGrade().getValue(); + } + } + return min; + } + public String minAverageName(){ + double min = 21; + String name = ""; + for (Student student : students){ + if (student.getAverageGrade().getValue() < min){ + min = student.getAverageGrade().getValue(); + name = student.toString(); + } + } + return name; + } + public double getAverageOfClass(){ + int number = 0; + double sum = 0; + double avg; + for (Student student : students){ + number += 1; + sum += student.getAverageGrade().getValue(); + } + avg = sum / number; + return avg; + } } diff --git a/tp1/Grade.java b/tp1/Grade.java index b4161d8c2ad6a4493934f41b804f05a6319a2817..b6a491fa97dd2ac299f228dab9ed7dceaafe6ec8 100644 --- a/tp1/Grade.java +++ b/tp1/Grade.java @@ -10,6 +10,7 @@ public class Grade { */ private static final int MAXIMUM_GRADE = 20; private final double value; + private boolean ABS = false; /** * Constructs a grade with a value equals to the specified {@code value}. @@ -21,6 +22,25 @@ public class Grade { this.value = value; } + public void setABS(){ + this.ABS = true; + } + + public boolean isABS(){ + return this.ABS; + } + + public static int amountABS(List<Grade> grades){ + int total = 0; + for (Grade grade : grades){ + if (grade.isABS()){ + total += 1; + } + } + return total; + } + + /** * Returns the value of the grade as a double. * diff --git a/tp1/Main.java b/tp1/Main.java index c09d3d77126bb6c12fa0502a54d1398ec62d6e75..f5947c2e8df16c12b0604e50a62db72a6cbcb22e 100644 --- a/tp1/Main.java +++ b/tp1/Main.java @@ -2,10 +2,10 @@ public class Main { public static void main(String[] args){ Student bassem = new Student("Bassem", "MSAYIF"); Student haiDang = new Student("Hai Dang", "LE"); - bassem.addResult("Programmation 2", new Grade(20)); - bassem.addResult("Structures discrètes", new Grade(20)); - haiDang.addResult("Programmation 2", new Grade(10)); - haiDang.addResult("Structures discrètes", new Grade(9.75)); + bassem.addResult("Programmation 2", new Grade(20), 6); + bassem.addResult("Structures discrètes", new Grade(20), 6); + haiDang.addResult("Programmation 2", new Grade(14), 6); + haiDang.addResult("Structures discrètes", new Grade(13), 6); Cohort l2 = new Cohort("L2 Informatique"); l2.addStudent(bassem); l2.addStudent(haiDang); diff --git a/tp1/Student.java b/tp1/Student.java index 36269a313c4d2d187636c3bc80bfd2f6bf7fa75f..56e654c4d4a1a40e7032f88b04c9a85efb60ef32 100644 --- a/tp1/Student.java +++ b/tp1/Student.java @@ -30,8 +30,8 @@ public class Student { * @param teachingUnitName the name of the teaching unit of the added result * @param grade the grade of the added result */ - public void addResult(String teachingUnitName, Grade grade){ - results.add(new TeachingUnitResult(teachingUnitName, grade)); + public void addResult(String teachingUnitName, Grade grade, int credit){ + results.add(new TeachingUnitResult(teachingUnitName, grade, credit)); } /** @@ -52,7 +52,9 @@ public class Student { public List<Grade> getGrades(){ List<Grade> grades = new ArrayList<Grade>(); for (TeachingUnitResult result : results){ - grades.add(result.getGrade()); + for(int coef = 0 ; coef < result.getCredits() ; coef += 1) { + grades.add(result.getGrade()); + } } return grades; diff --git a/tp1/TeachingUnitResult.java b/tp1/TeachingUnitResult.java index ef76d75d78f3646cb8d1e9043d4f3e8d4fdb5ead..743be060cf74e92cce8d630bb11d24317d551979 100644 --- a/tp1/TeachingUnitResult.java +++ b/tp1/TeachingUnitResult.java @@ -5,6 +5,7 @@ public class TeachingUnitResult { private final String teachingUnitName; private final Grade grade; + private int credits = 1; /** @@ -15,9 +16,14 @@ public class TeachingUnitResult { * @param grade the grade of the constructed TeachingUnitResult */ - public TeachingUnitResult(String teachingUnitName, Grade grade) { + public TeachingUnitResult(String teachingUnitName, Grade grade, int credits) { this.teachingUnitName = teachingUnitName; this.grade = grade; + this.credits = credits; + } + + public int getCredits(){ + return this.credits; } /** diff --git a/tp1/TestCohort.java b/tp1/TestCohort.java index c404ea6901618e0e3fdc2bc9a786805cd056a0ce..60639f67bee020e93dc79ae940e48486ec9c4d24 100644 --- a/tp1/TestCohort.java +++ b/tp1/TestCohort.java @@ -40,12 +40,12 @@ public class TestCohort { public void testPrintStudentResults(){ Student student1 = new Student("Pierre","LE BOULANGER"); - student1.addResult("Programmation 2",new Grade(10)); - student1.addResult("Structures discrètes",new Grade(20)); + student1.addResult("Programmation 2",new Grade(10), 1); + student1.addResult("Structures discrètes",new Grade(20), 1); Student student2 = new Student("Raphael","LE PATISSIER"); - student2.addResult("Programmation 2",new Grade(10)); - student2.addResult("Structures discrètes",new Grade(0)); + student2.addResult("Programmation 2",new Grade(10), 1); + student2.addResult("Structures discrètes",new Grade(0), 1); Cohort cohortTest = new Cohort("Informatique L2 \n"); cohortTest.addStudent(student1); diff --git a/tp1/TestStudent.java b/tp1/TestStudent.java index 3b752af68180d91fcad9ba8bd2a5f8c2aede9e4c..3211e95ecfd81c21d45403b6e53da2f0bda8c7dc 100644 --- a/tp1/TestStudent.java +++ b/tp1/TestStudent.java @@ -25,7 +25,7 @@ public class TestStudent { grades.add(new Grade(15)); grades.add(new Grade(10)); for (Grade grade : grades){ - student2.addResult("teachingUnit", grade); + student2.addResult("teachingUnit", grade, 1); } return (grades.equals(student2.getGrades())); } @@ -37,8 +37,8 @@ public class TestStudent { public void testPrintResults(){ Student student1 = new Student("Arnaud", "Labourel"); - student1.addResult("Programmation 2",new Grade(20)); - student1.addResult("Structures discrètes",new Grade(20)); + student1.addResult("Programmation 2",new Grade(20), 1); + student1.addResult("Structures discrètes",new Grade(20), 1); student1.printResults(); } diff --git a/tp1/TestTeachingUnitResult.java b/tp1/TestTeachingUnitResult.java index d8d787b172990706016f66437ea8d310fc8cfbbc..c73fc4d802a5ff7c915d9a6cd49f709aafff41aa 100644 --- a/tp1/TestTeachingUnitResult.java +++ b/tp1/TestTeachingUnitResult.java @@ -16,7 +16,7 @@ public class TestTeachingUnitResult { public boolean testToString(){ - TeachingUnitResult teachingUnitResult = new TeachingUnitResult("programmation2", new Grade(0)); + TeachingUnitResult teachingUnitResult = new TeachingUnitResult("programmation2", new Grade(0), 1); String teachingUnitResultString = teachingUnitResult.toString(); if(teachingUnitResultString == "programmation2"){ return true; @@ -25,8 +25,8 @@ public class TestTeachingUnitResult { } public boolean testEquals(){ - TeachingUnitResult teachingUnitResult = new TeachingUnitResult("",new Grade(15)); - TeachingUnitResult teachingUnitResult1 = new TeachingUnitResult( "", new Grade(15)); + TeachingUnitResult teachingUnitResult = new TeachingUnitResult("",new Grade(15), 1); + TeachingUnitResult teachingUnitResult1 = new TeachingUnitResult( "", new Grade(15), 1); if(teachingUnitResult.equals(teachingUnitResult1.getGrade())) { return true;