Advertisement
desislava_topuzakova

Untitled

Jul 9th, 2022
475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. package Maps;
  2.  
  3. import java.util.*;
  4.  
  5. public class StudentAcademy_07 {
  6. public static void main(String[] args) {
  7. Scanner scanner = new Scanner(System.in);
  8. int countStudents = Integer.parseInt(scanner.nextLine());
  9. //студент -> списък с оценки
  10. Map<String, List<Double>> studentGrades = new LinkedHashMap<>();
  11. for (int i = 0; i < countStudents; i++) {
  12. String studentName = scanner.nextLine();
  13. double grade = Double.parseDouble(scanner.nextLine());
  14. //студентът да го нямаме в списъка
  15. if (!studentGrades.containsKey(studentName)) {
  16. studentGrades.put(studentName, new ArrayList<>());
  17. }
  18. studentGrades.get(studentName).add(grade);
  19. }
  20.  
  21. //студент -> ср. оценка
  22. Map<String, Double> studentAverageGrade = new LinkedHashMap<>(); //студентите ср. оценка >= 4.50
  23. //търсим среданата оценка на всички студенти
  24. for (Map.Entry<String, List<Double>> entry : studentGrades.entrySet()) {
  25. //entry -> име (String) + списък с оценки (list<double>)
  26. String studentName = entry.getKey();
  27. List<Double> grades = entry.getValue();
  28. double averageGrade = getAverageGrade (grades);
  29. if(averageGrade >= 4.50) {
  30. studentAverageGrade.put(studentName, averageGrade);
  31. }
  32. }
  33. //разменяме записите ако на втория оценката > оценката на първия
  34. studentAverageGrade.entrySet()
  35. .forEach(entry -> System.out.printf("%s -> %.2f%n", entry.getKey(), entry.getValue()));
  36.  
  37. }
  38.  
  39. private static double getAverageGrade(List<Double> grades) {
  40. double sumGrades = 0;
  41. for (double grade : grades) {
  42. sumGrades += grade;
  43. }
  44. return sumGrades / grades.size();
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement