Advertisement
Aguzelov

Average Grades

Dec 2nd, 2017
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.03 KB | None | 0 0
  1. import java.util.*;
  2. class StudentsNameComparator implements Comparator{
  3.  
  4.     public int compare(Object o1, Object o2) {
  5.  
  6.         Student e1=(Student) o1;
  7.         Student e2=(Student) o2;
  8.         if(e1.getName().equals(e2.getName())){
  9.             return e2.getAverage().compareTo(e1.getAverage());
  10.         }
  11.         return e1.getName().compareTo(e2.getName());
  12.     }
  13. }
  14.  
  15. public class Average_Grades {
  16.     public static void main(String[] args) {
  17.         Scanner scanner = new Scanner(System.in);
  18.  
  19.         TreeSet<Student> students = new TreeSet<Student>(new StudentsNameComparator());
  20.  
  21.         int n = scanner.nextInt();
  22.         scanner.nextLine();
  23.  
  24.         for (int i = 0; i < n; i++) {
  25.             String[] input = scanner.nextLine().split(" ");
  26.             String name = input[0];
  27.             ArrayList<Double> grades = new ArrayList<>();
  28.             for (int j = 1; j < input.length; j++) {
  29.                 grades.add(Double.parseDouble(input[j]));
  30.             }
  31.             students.add(new Student(name, grades));
  32.         }
  33.  
  34.         for (Student s : students){
  35.             if(s.getAverage()>= 5.00){
  36.                 System.out.printf("%s -> %.2f%n",s.getName(),s.getAverage());
  37.             }
  38.         }
  39.     }
  40. }
  41.  
  42. class Student {
  43.     public Student(String name, ArrayList<Double> grades) {
  44.         this.name = name;
  45.         this.grades = grades;
  46.  
  47.         Double total =0.0;
  48.         for(Double grade : grades){
  49.             total += grade;
  50.         }
  51.         this.average = total / grades.size();
  52.     }
  53.  
  54.     public Student() {
  55.     }
  56.  
  57.     public String getName() {
  58.         return name;
  59.     }
  60.  
  61.     public ArrayList<Double> getGrades() {
  62.         return grades;
  63.     }
  64.  
  65.     public Double getAverage() {
  66.         return average;
  67.     }
  68.  
  69.     public void setName(String name) {
  70.         this.name = name;
  71.     }
  72.  
  73.     public void setGrades(ArrayList<Double> grades) {
  74.         this.grades = grades;
  75.     }
  76.  
  77.     private String name;
  78.     private ArrayList<Double> grades = new ArrayList<>();
  79.     private Double average;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement