Code in JAVA:
 Displays for each GPA that exist in the students Database, the number of students with that GPA.
  public static void main(String args[]) {     Ranges ranges = new Ranges(\"Students\", 1);     ranges.addRangeLengths(new Integer[]{40, 20, 20, 20});     int score;     Scanner sc = new Scanner(System.in);     while ((score = getScore(sc, \"Enter scores (or -1 to stop): \")) != -1) {         ranges.addScore(score);     }     System.out.println(\"\ \" + ranges); }  public static int getScore(Scanner sc, String message) {     System.out.print(message);     return (sc.hasNextInt()) ? sc.nextInt() : getScore(sc, \"Please insert number: \"); }   import java.util.ArrayList; import java.util.Arrays; import java.util.List;  public class Ranges {      private /*final*/ int startAt;     private final String subject;     private final List
 ranges = new ArrayList<>();      public Ranges(String subject, int startAt) {         this.subject = subject;         this.startAt = startAt;     }      public void addRangeLength(int length) {         int min = (ranges.size() > 0)                 ? ranges.get(ranges.size() - 1).max + 1                 : startAt;         ranges.add(new Range(min, min + length - 1));     }      public void addRangeLengths(Integer... lengths) {         addRangeLengths(Arrays.asList(lengths));     }      public void addRangeLengths(List lengths) {         lengths.stream().forEach(length -> addRangeLength(length));     }      public void addScore(int score) {         for (Range range : ranges) {             if (range.isInTheRange(score)) {                 range.increment();                 break;             }         }     }      @Override     public String toString() {         StringBuilder sb = new StringBuilder();         ranges.stream().forEach(range                 -> sb.append(range).append(\"\ \")         );         return sb.toString();     }      private class Range {          final int min;         final int max;         int count;          Range(int min, int max) {             this.min = min;             this.max = max;         }          void increment() {             count++;         }          boolean isInTheRange(int score) {             return score >= min && score <= max;         }          @Override         public String toString() {             StringBuilder sb = new StringBuilder();             return sb.append(subject)                     .append(\" in the range of \")                     .append(min).append(\'-\').append(max).append(\": \")                     .append(count).toString();         }     } }