TheRightGuy

What else?

Feb 12th, 2022
799
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.98 KB | None | 0 0
  1.  
  2.  
  3. package Student;
  4.  
  5. import java.util.HashMap;
  6. import java.util.Map;
  7.  
  8. public class Student {
  9.  
  10.     private String name;
  11.     private final Map<String,Integer> scores;
  12.     private final double studentAverageScore;
  13.     private final double grade;
  14.  
  15.     protected Student(String name , Map<String,Integer> scores, double studentAverageScore,double grade){
  16.         this.name = name;
  17.         this.scores = scores;
  18.         this.studentAverageScore = studentAverageScore;
  19.         this.grade = grade;
  20.     }
  21.  
  22.     protected Student(){
  23.         name = "";
  24.         scores = new HashMap<>();
  25.         studentAverageScore = 0.0;
  26.         grade = 0;
  27.     }
  28.  
  29.     protected String getName() {
  30.         return name;
  31.     }
  32.  
  33.     protected Map<String, Integer> getAllScores() {
  34.         return new HashMap<>(scores);
  35.     }
  36.  
  37.     protected double getGrade() {
  38.         return grade;
  39.     }
  40.  
  41.     protected double getStudentAverageScore() {
  42.         return studentAverageScore;
  43.     }
  44. }
  45.  
  46.  
  47.  
  48. package Student;
  49.  
  50. import java.util.HashMap;
  51. import java.util.Map;
  52.  
  53. public class StudentDetails extends Student  {
  54.     private final double MAX_SCORE = 100D;
  55.     private final double NUMBER_OF_SUBJECTS = 5;
  56.  
  57.     protected Map<String, Integer> getStudentScore() {
  58.         Map<String,Integer> score = new HashMap<>();
  59.         for (int i = 0; i < NUMBER_OF_SUBJECTS; i++) {
  60.             score.put("Test " + i, (int) (Math.random() * MAX_SCORE) + 1);
  61.         }
  62.         return score;
  63.     }
  64.  
  65.     protected double studentAverageScore() {
  66.         double studentAverageScore = getStudentAverageScore();
  67.         for (Map.Entry<String, Integer> entry : getStudentScore().entrySet()) {
  68.             studentAverageScore += entry.getValue();
  69.         }
  70.         return studentAverageScore / NUMBER_OF_SUBJECTS;
  71.     }
  72.  
  73.     protected double getStudentGrade() {
  74.         double grade = getGrade();
  75.         for (Map.Entry<String, Integer> entry : getStudentScore().entrySet()) {
  76.             grade += entry.getValue();
  77.         }
  78.         return grade / MAX_SCORE;
  79.     }
  80. }
  81.  
  82.  
  83.  
  84.  
  85. package Student;
  86.  
  87. import java.util.ArrayList;
  88.  
  89. public class App {
  90.     private static final ArrayList<Student> studentArrayList = new ArrayList<>();
  91.  
  92.     public static void main(String[] args) {
  93.         StudentDetails studentDetails = new StudentDetails();
  94.         student("Q",studentDetails);
  95.         student("W",studentDetails);
  96.         student("E",studentDetails);
  97.         student("R",studentDetails);
  98.  
  99.         for (Student s : studentArrayList) {
  100.             System.out.printf("Student name %s | student scores %s  | student average score %.2f | student grade %.2f \n", s.getName(), s.getAllScores(), s.getStudentAverageScore(), s.getGrade());
  101.         }
  102.     }
  103.  
  104.     private static void student(String name, StudentDetails studentDetails) {
  105.         Student student = new Student(name, studentDetails.getStudentScore(), studentDetails.studentAverageScore(), studentDetails.getStudentGrade());
  106.         studentArrayList.add(student);
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment