Advertisement
desislava_topuzakova

Untitled

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