From 4e25428a08f71140938ce22f34ba40baa0e1bc59 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Wed, 6 May 2026 10:57:59 +0200 Subject: [PATCH 1/7] finish Student class --- task-1/com.hyfacademy/model/Student.java | 57 ++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/task-1/com.hyfacademy/model/Student.java b/task-1/com.hyfacademy/model/Student.java index e69de29..8dfb45a 100644 --- a/task-1/com.hyfacademy/model/Student.java +++ b/task-1/com.hyfacademy/model/Student.java @@ -0,0 +1,57 @@ +package model; + +public class Student{ + private String name; + private String studentId; + private int[] grades; + + private static int totalStudents = 0; + + public Student(String name, String studentId){ + this.name = name; + this.studentId = studentId; + this.grades = new int[]{0, 0, 0, 0, 0}; + totalStudents ++; + } + + public String getName(){return name;} + public String getStudentId(){return studentId;} + public int[] getGrades(){return grades;} + + public void setGrade(int moduleIndex, int grade){ + if(moduleIndex<0 || moduleIndex > 4){ + System.out.println("Module index must be between 0 and 4"); + return; + } + if(grade < 0 || grade > 100){ + System.out.println("Grade must be between 0 and 100"); + return; + } + grades[moduleIndex] = grade; + } + + public static int getTotalStudents(){return totalStudents;} + + + public double calculateAverage(){ + int total = 0; + + for(int grade : grades){ + total += grade; + } + return total / (double) grades.length; + } + + public boolean isPassed() { + return calculateAverage() >= 60; + } + + + @Override + public String toString(){ + double avg = calculateAverage(); + String status = isPassed() ? "PASS" : "FAIL"; + + return String.format("[%s] %s — Avg: %.2f — %s", studentId, name, avg, status); + } +} \ No newline at end of file From a7a26f10abd641e1dd4b110fdc447431ce8f04fc Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Wed, 6 May 2026 12:37:19 +0200 Subject: [PATCH 2/7] add GradeUtils and refactor Student to use utility methods --- task-1/com.hyfacademy/Main.java | 14 +++++- task-1/com.hyfacademy/model/Student.java | 39 +++++++++-------- task-1/com.hyfacademy/util/GradeUtils.java | 50 ++++++++++++++++++++++ 3 files changed, 83 insertions(+), 20 deletions(-) diff --git a/task-1/com.hyfacademy/Main.java b/task-1/com.hyfacademy/Main.java index 49a03b1..77b74a0 100644 --- a/task-1/com.hyfacademy/Main.java +++ b/task-1/com.hyfacademy/Main.java @@ -1,6 +1,18 @@ +import model.Student; + +import java.util.Arrays; + public class Main { public static void main(String[] args) { - System.out.println("Hello World!"); + + Student s1 = new Student("Alice", "HYF-001"); + s1.setGrade(3, 31); + s1.setGrade(0, 70); + s1.setGrade(1, 99); + s1.setGrade(4, 56); + s1.setGrade(2, 57); + + System.out.println(Arrays.toString(s1.getGrades())); } } diff --git a/task-1/com.hyfacademy/model/Student.java b/task-1/com.hyfacademy/model/Student.java index 8dfb45a..d0e9a41 100644 --- a/task-1/com.hyfacademy/model/Student.java +++ b/task-1/com.hyfacademy/model/Student.java @@ -1,5 +1,8 @@ package model; + +import util.GradeUtils; + public class Student{ private String name; private String studentId; @@ -14,9 +17,17 @@ public Student(String name, String studentId){ totalStudents ++; } - public String getName(){return name;} - public String getStudentId(){return studentId;} - public int[] getGrades(){return grades;} + public String getName(){ + return name; + } + + public String getStudentId(){ + return studentId; + } + + public int[] getGrades(){ + return grades; + } public void setGrade(int moduleIndex, int grade){ if(moduleIndex<0 || moduleIndex > 4){ @@ -30,28 +41,18 @@ public void setGrade(int moduleIndex, int grade){ grades[moduleIndex] = grade; } - public static int getTotalStudents(){return totalStudents;} - - - public double calculateAverage(){ - int total = 0; - - for(int grade : grades){ - total += grade; - } - return total / (double) grades.length; - } - - public boolean isPassed() { - return calculateAverage() >= 60; + public static int getTotalStudents(){ + return totalStudents; } @Override public String toString(){ - double avg = calculateAverage(); - String status = isPassed() ? "PASS" : "FAIL"; + double avg = GradeUtils.calculateAverage(grades); + String status = GradeUtils.isPassing(avg) ? "PASS" : "FAIL"; return String.format("[%s] %s — Avg: %.2f — %s", studentId, name, avg, status); } + + } \ No newline at end of file diff --git a/task-1/com.hyfacademy/util/GradeUtils.java b/task-1/com.hyfacademy/util/GradeUtils.java index e69de29..076c2e7 100644 --- a/task-1/com.hyfacademy/util/GradeUtils.java +++ b/task-1/com.hyfacademy/util/GradeUtils.java @@ -0,0 +1,50 @@ +package util; + +public class GradeUtils{ + + public static final int MODULE_PASS_MARK = 55; + public static final double TRACK_PASS_AVERAGE = 60.0; + public static final int MODULE_COUNT = 5; + public static final String[] MODULE_NAMES = { + "Java Basics", + "Control Flow", + "OOP Fundamentals", + "Arrays & Collections", + "Input & Output" + }; + + private GradeUtils(){}; + + public static double calculateAverage(int[] grades){ + int total = 0; + for(int grade : grades){ + total += grade; + } + return total / (double) grades.length; + } + + public static boolean isPassing(double average) { + return average >= TRACK_PASS_AVERAGE; + } + + public static boolean isModulePassing(int grade){ + return grade >= MODULE_PASS_MARK; + } + + public static String getLetterGrade(double average){ + int digitFormat = (int) average / 10; + + return switch(digitFormat){ + case 10, 9 -> "A"; + case 8 -> "B"; + case 7 -> "C"; + case 6 -> "D"; + default -> "F"; + }; + } + + public static String formatGrade(int grade){ + return String.format("%3d", grade); + } + +} \ No newline at end of file From 125ca69b17f5e291847f94830e16936436f75363 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Wed, 6 May 2026 18:36:22 +0200 Subject: [PATCH 3/7] finish with main task --- task-1/com.hyfacademy/Main.java | 15 +- task-1/com.hyfacademy/model/Student.java | 13 +- .../com.hyfacademy/service/GradeService.java | 208 ++++++++++++++++++ 3 files changed, 223 insertions(+), 13 deletions(-) diff --git a/task-1/com.hyfacademy/Main.java b/task-1/com.hyfacademy/Main.java index 77b74a0..8af0112 100644 --- a/task-1/com.hyfacademy/Main.java +++ b/task-1/com.hyfacademy/Main.java @@ -1,18 +1,13 @@ -import model.Student; -import java.util.Arrays; +import service.GradeService; + + public class Main { public static void main(String[] args) { +GradeService gradeService = new GradeService(); +gradeService.run(); - Student s1 = new Student("Alice", "HYF-001"); - s1.setGrade(3, 31); - s1.setGrade(0, 70); - s1.setGrade(1, 99); - s1.setGrade(4, 56); - s1.setGrade(2, 57); - - System.out.println(Arrays.toString(s1.getGrades())); } } diff --git a/task-1/com.hyfacademy/model/Student.java b/task-1/com.hyfacademy/model/Student.java index d0e9a41..30b8d8d 100644 --- a/task-1/com.hyfacademy/model/Student.java +++ b/task-1/com.hyfacademy/model/Student.java @@ -10,6 +10,7 @@ public class Student{ private static int totalStudents = 0; + public Student(String name, String studentId){ this.name = name; this.studentId = studentId; @@ -29,6 +30,14 @@ public int[] getGrades(){ return grades; } + public double getAverage(){ + return GradeUtils.calculateAverage(grades); + } + + public String getStatus(){ + return GradeUtils.isPassing(getAverage()) ? "PASS" : "FAIL"; + } + public void setGrade(int moduleIndex, int grade){ if(moduleIndex<0 || moduleIndex > 4){ System.out.println("Module index must be between 0 and 4"); @@ -48,10 +57,8 @@ public static int getTotalStudents(){ @Override public String toString(){ - double avg = GradeUtils.calculateAverage(grades); - String status = GradeUtils.isPassing(avg) ? "PASS" : "FAIL"; - return String.format("[%s] %s — Avg: %.2f — %s", studentId, name, avg, status); + return String.format("[%s] %s — Avg: %.2f — %s", studentId, name, getAverage(), getStatus()); } diff --git a/task-1/com.hyfacademy/service/GradeService.java b/task-1/com.hyfacademy/service/GradeService.java index e69de29..ca4d8e6 100644 --- a/task-1/com.hyfacademy/service/GradeService.java +++ b/task-1/com.hyfacademy/service/GradeService.java @@ -0,0 +1,208 @@ +package service; + + +import model.Student; +import util.GradeUtils; + +import java.util.Scanner; + +public class GradeService { + private Scanner scanner = new Scanner(System.in); + private int studentCount = 0; + public static final int MAX_STUDENTS = 20; + private Student[] students = new Student[MAX_STUDENTS]; + + public void addStudent(){ + if (studentCount == MAX_STUDENTS){ + System.out.println("Sorry, but a group is full(max 20 students)"); + return; + } + + String name; + + while(true){ + System.out.print("Enter new student name: "); + name = scanner.nextLine().trim(); + + if(name.isEmpty()){ + System.out.println("Name cannot be empty. Please enter a valid name"); + continue; + } + + if (name.matches(".*\\d.*")) { + System.out.println("Name cannot contain numbers."); + continue; + } + + break; + } + + String studentId = String.format("HYF-%03d", studentCount + 1); + + Student newStudent = new Student(name, studentId); + students[studentCount] = newStudent; + studentCount ++; + + System.out.println("Student added: " + newStudent); + } + + public void enterGrades(){ + System.out.print("Enter student ID: "); + String studentId = scanner.nextLine(); + Student student = findStudentById(studentId); + + if(student == null){ + System.out.println("Student not found"); + return; + } + + for (int i=0; i < GradeUtils.MODULE_COUNT; i++){ + while(true){ + System.out.print("Enter grade for " + GradeUtils.MODULE_NAMES[i] + ": "); + + if(!scanner.hasNextInt()){ + System.out.println("Grade must be a number"); + scanner.nextLine(); + continue; + } + int grade = scanner.nextInt(); + scanner.nextLine(); + + if(grade < 0 || grade > 100){ + System.out.println("Please enter a number from 0 to 100"); + continue; + } + + student.setGrade(i, grade); + break; + } + } System.out.println("Grades updated for " + student.getName()); + } + + private Student findStudentById(String id){ + for (int i=0; i < studentCount; i++){ + if(students[i].getStudentId().equalsIgnoreCase(id)){ + return students[i]; + } + } + return null; + } + + public void viewAllStudents(){ + + if(studentCount == 0){ + System.out.println("You don't have any students"); + return; + } + + int passing = 0; + int failing = 0; + + System.out.println("══════════════════════════════════════════════════════════════"); + System.out.printf("%-10s %-20s %-10s %-8s %-8s%n", "ID", "NAME", "AVERAGE", "GRADE", "STATUS"); + System.out.println("══════════════════════════════════════════════════════════════"); + + + for (int i=0; i < studentCount; i++){ + Student student = students[i]; + double average = student.getAverage(); + String grade = GradeUtils.getLetterGrade(average); + String status = student.getStatus(); + + if(status.equals("PASS")){ + passing++; + } else{failing++;} + + System.out.printf("%-10s %-20s %-10.2f %-8s %-8s%n", student.getStudentId(), student.getName(), average, grade, status); + } + System.out.println("══════════════════════════════════════════════════════════════"); + System.out.printf("Total students: %d Passing: %d Failing: %d%n", studentCount, passing, failing); + System.out.println("══════════════════════════════════════════════════════════════"); + + } + + public void viewStudentsReport(){ + + System.out.print("Enter student ID: "); + String studentId = scanner.nextLine(); + + Student student = findStudentById(studentId); + if(student == null){ + System.out.println("Student not found."); + return; + } + + double average = student.getAverage(); + String letter = GradeUtils.getLetterGrade(average); + String status = student.getStatus().equals("PASS")? "✓ PASS" : "✗ FAIL"; + + + System.out.println("══════════════════════════════════════"); + System.out.println("STUDENT REPORT"); + System.out.println("══════════════════════════════════════"); + System.out.printf("%-10s : %s%n", "ID", studentId); + System.out.printf("%-10s : %s%n", "Name", student.getName()); + System.out.println("──────────────────────────────────────"); + System.out.println("MODULE GRADES"); + System.out.println("──────────────────────────────────────"); + + for(int i=0; i 5){ + System.out.println("Please enter a number from 1 to 5."); + continue; + } + + switch(choice){ + case 1 -> addStudent(); + case 2 -> enterGrades(); + case 3 -> viewAllStudents(); + case 4 -> viewStudentsReport(); + case 5 -> { + System.out.println("Goodbye!"); + return; + } + } + + + } + + } + + +} \ No newline at end of file From cb9e1f7cfb8e69039b6485c335bf28e5f73eaec2 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Wed, 6 May 2026 20:13:57 +0200 Subject: [PATCH 4/7] fix package path --- task-1/{com.hyfacademy => com/hyfacademy}/Main.java | 3 ++- .../{com.hyfacademy => com/hyfacademy}/model/Student.java | 4 ++-- .../hyfacademy}/service/GradeService.java | 6 +++--- .../{com.hyfacademy => com/hyfacademy}/util/GradeUtils.java | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) rename task-1/{com.hyfacademy => com/hyfacademy}/Main.java (68%) rename task-1/{com.hyfacademy => com/hyfacademy}/model/Student.java (95%) rename task-1/{com.hyfacademy => com/hyfacademy}/service/GradeService.java (98%) rename task-1/{com.hyfacademy => com/hyfacademy}/util/GradeUtils.java (97%) diff --git a/task-1/com.hyfacademy/Main.java b/task-1/com/hyfacademy/Main.java similarity index 68% rename from task-1/com.hyfacademy/Main.java rename to task-1/com/hyfacademy/Main.java index 8af0112..2346821 100644 --- a/task-1/com.hyfacademy/Main.java +++ b/task-1/com/hyfacademy/Main.java @@ -1,5 +1,6 @@ +package com.hyfacademy; -import service.GradeService; +import com.hyfacademy.service.GradeService; diff --git a/task-1/com.hyfacademy/model/Student.java b/task-1/com/hyfacademy/model/Student.java similarity index 95% rename from task-1/com.hyfacademy/model/Student.java rename to task-1/com/hyfacademy/model/Student.java index 30b8d8d..df5a0b5 100644 --- a/task-1/com.hyfacademy/model/Student.java +++ b/task-1/com/hyfacademy/model/Student.java @@ -1,7 +1,7 @@ -package model; +package com.hyfacademy.model; -import util.GradeUtils; +import com.hyfacademy.util.GradeUtils; public class Student{ private String name; diff --git a/task-1/com.hyfacademy/service/GradeService.java b/task-1/com/hyfacademy/service/GradeService.java similarity index 98% rename from task-1/com.hyfacademy/service/GradeService.java rename to task-1/com/hyfacademy/service/GradeService.java index ca4d8e6..1b0b5d8 100644 --- a/task-1/com.hyfacademy/service/GradeService.java +++ b/task-1/com/hyfacademy/service/GradeService.java @@ -1,8 +1,8 @@ -package service; +package com.hyfacademy.service; -import model.Student; -import util.GradeUtils; +import com.hyfacademy.model.Student; +import com.hyfacademy.util.GradeUtils; import java.util.Scanner; diff --git a/task-1/com.hyfacademy/util/GradeUtils.java b/task-1/com/hyfacademy/util/GradeUtils.java similarity index 97% rename from task-1/com.hyfacademy/util/GradeUtils.java rename to task-1/com/hyfacademy/util/GradeUtils.java index 076c2e7..363a32e 100644 --- a/task-1/com.hyfacademy/util/GradeUtils.java +++ b/task-1/com/hyfacademy/util/GradeUtils.java @@ -1,4 +1,4 @@ -package util; +package com.hyfacademy.util; public class GradeUtils{ From aed9d3a4d12af491c10a33d4a9c7214702eecbe3 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Wed, 6 May 2026 22:59:43 +0200 Subject: [PATCH 5/7] add sort the student table --- task-1/com/hyfacademy/service/GradeService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/task-1/com/hyfacademy/service/GradeService.java b/task-1/com/hyfacademy/service/GradeService.java index 1b0b5d8..69e050e 100644 --- a/task-1/com/hyfacademy/service/GradeService.java +++ b/task-1/com/hyfacademy/service/GradeService.java @@ -102,8 +102,18 @@ public void viewAllStudents(){ System.out.printf("%-10s %-20s %-10s %-8s %-8s%n", "ID", "NAME", "AVERAGE", "GRADE", "STATUS"); System.out.println("══════════════════════════════════════════════════════════════"); + for(int i=0; i < studentCount - 1; i++){ + for(int j=0; j < studentCount - i - 1; j++){ + if(students[j].getAverage() < students[j+1].getAverage()){ + Student lessAverage = students[j]; + students[j] = students[j+1]; + students[j+1] = lessAverage; + } + } + } for (int i=0; i < studentCount; i++){ + Student student = students[i]; double average = student.getAverage(); String grade = GradeUtils.getLetterGrade(average); From 52d198005145bc22ca75240beb48ba4361b6df24 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Wed, 6 May 2026 23:57:11 +0200 Subject: [PATCH 6/7] add class statistics --- task-1/com/hyfacademy/model/Student.java | 4 +- .../com/hyfacademy/service/GradeService.java | 175 +++++++++++------- 2 files changed, 109 insertions(+), 70 deletions(-) diff --git a/task-1/com/hyfacademy/model/Student.java b/task-1/com/hyfacademy/model/Student.java index df5a0b5..add567d 100644 --- a/task-1/com/hyfacademy/model/Student.java +++ b/task-1/com/hyfacademy/model/Student.java @@ -18,9 +18,7 @@ public Student(String name, String studentId){ totalStudents ++; } - public String getName(){ - return name; - } + public String getName(){return name;} public String getStudentId(){ return studentId; diff --git a/task-1/com/hyfacademy/service/GradeService.java b/task-1/com/hyfacademy/service/GradeService.java index 69e050e..50da749 100644 --- a/task-1/com/hyfacademy/service/GradeService.java +++ b/task-1/com/hyfacademy/service/GradeService.java @@ -7,90 +7,91 @@ import java.util.Scanner; public class GradeService { + public static final int MAX_STUDENTS = 20; private Scanner scanner = new Scanner(System.in); private int studentCount = 0; - public static final int MAX_STUDENTS = 20; private Student[] students = new Student[MAX_STUDENTS]; - public void addStudent(){ - if (studentCount == MAX_STUDENTS){ + public void addStudent() { + if (studentCount == MAX_STUDENTS) { System.out.println("Sorry, but a group is full(max 20 students)"); return; } String name; - while(true){ - System.out.print("Enter new student name: "); - name = scanner.nextLine().trim(); + while (true) { + System.out.print("Enter new student name: "); + name = scanner.nextLine().trim(); - if(name.isEmpty()){ - System.out.println("Name cannot be empty. Please enter a valid name"); - continue; - } + if (name.isEmpty()) { + System.out.println("Name cannot be empty. Please enter a valid name"); + continue; + } - if (name.matches(".*\\d.*")) { - System.out.println("Name cannot contain numbers."); - continue; - } + if (name.matches(".*\\d.*")) { + System.out.println("Name cannot contain numbers."); + continue; + } - break; + break; } String studentId = String.format("HYF-%03d", studentCount + 1); Student newStudent = new Student(name, studentId); students[studentCount] = newStudent; - studentCount ++; + studentCount++; System.out.println("Student added: " + newStudent); } - public void enterGrades(){ + public void enterGrades() { System.out.print("Enter student ID: "); String studentId = scanner.nextLine(); Student student = findStudentById(studentId); - if(student == null){ + if (student == null) { System.out.println("Student not found"); return; } - for (int i=0; i < GradeUtils.MODULE_COUNT; i++){ - while(true){ - System.out.print("Enter grade for " + GradeUtils.MODULE_NAMES[i] + ": "); + for (int i = 0; i < GradeUtils.MODULE_COUNT; i++) { + while (true) { + System.out.print("Enter grade for " + GradeUtils.MODULE_NAMES[i] + ": "); - if(!scanner.hasNextInt()){ - System.out.println("Grade must be a number"); - scanner.nextLine(); - continue; - } - int grade = scanner.nextInt(); + if (!scanner.hasNextInt()) { + System.out.println("Grade must be a number"); + scanner.nextLine(); + continue; + } + int grade = scanner.nextInt(); scanner.nextLine(); - if(grade < 0 || grade > 100){ - System.out.println("Please enter a number from 0 to 100"); - continue; - } + if (grade < 0 || grade > 100) { + System.out.println("Please enter a number from 0 to 100"); + continue; + } - student.setGrade(i, grade); - break; + student.setGrade(i, grade); + break; + } } - } System.out.println("Grades updated for " + student.getName()); + System.out.println("Grades updated for " + student.getName()); } - private Student findStudentById(String id){ - for (int i=0; i < studentCount; i++){ - if(students[i].getStudentId().equalsIgnoreCase(id)){ + private Student findStudentById(String id) { + for (int i = 0; i < studentCount; i++) { + if (students[i].getStudentId().equalsIgnoreCase(id)) { return students[i]; } } return null; } - public void viewAllStudents(){ + public void viewAllStudents() { - if(studentCount == 0){ + if (studentCount == 0) { System.out.println("You don't have any students"); return; } @@ -102,26 +103,28 @@ public void viewAllStudents(){ System.out.printf("%-10s %-20s %-10s %-8s %-8s%n", "ID", "NAME", "AVERAGE", "GRADE", "STATUS"); System.out.println("══════════════════════════════════════════════════════════════"); - for(int i=0; i < studentCount - 1; i++){ - for(int j=0; j < studentCount - i - 1; j++){ - if(students[j].getAverage() < students[j+1].getAverage()){ - Student lessAverage = students[j]; - students[j] = students[j+1]; - students[j+1] = lessAverage; + for (int i = 0; i < studentCount - 1; i++) { + for (int j = 0; j < studentCount - i - 1; j++) { + if (students[j].getAverage() < students[j + 1].getAverage()) { + Student lessAverage = students[j]; + students[j] = students[j + 1]; + students[j + 1] = lessAverage; } } } - for (int i=0; i < studentCount; i++){ + for (int i = 0; i < studentCount; i++) { Student student = students[i]; double average = student.getAverage(); String grade = GradeUtils.getLetterGrade(average); String status = student.getStatus(); - if(status.equals("PASS")){ + if (status.equals("PASS")) { passing++; - } else{failing++;} + } else { + failing++; + } System.out.printf("%-10s %-20s %-10.2f %-8s %-8s%n", student.getStudentId(), student.getName(), average, grade, status); } @@ -131,20 +134,20 @@ public void viewAllStudents(){ } - public void viewStudentsReport(){ + public void viewStudentsReport() { System.out.print("Enter student ID: "); String studentId = scanner.nextLine(); Student student = findStudentById(studentId); - if(student == null){ + if (student == null) { System.out.println("Student not found."); return; } double average = student.getAverage(); String letter = GradeUtils.getLetterGrade(average); - String status = student.getStatus().equals("PASS")? "✓ PASS" : "✗ FAIL"; + String status = student.getStatus().equals("PASS") ? "✓ PASS" : "✗ FAIL"; System.out.println("══════════════════════════════════════"); @@ -156,7 +159,7 @@ public void viewStudentsReport(){ System.out.println("MODULE GRADES"); System.out.println("──────────────────────────────────────"); - for(int i=0; i highest) { + highest = grade; + } + if (grade < lowest) { + lowest = grade; + } + + sum += grade; + } + + double average = (double) sum / studentCount; + + System.out.printf("%-24s %-10d %-10d %-10.2f%n", module, highest, lowest, average); + + + } + System.out.println("══════════════════════════════════════════════════════"); + } + + public void run() { + while (true) { System.out.println("╔══════════════════════════════════════╗"); System.out.println("║ HYF ACADEMY — GRADE MGR ║"); System.out.println("╚══════════════════════════════════════╝"); @@ -181,10 +219,12 @@ public void run(){ System.out.println("2. Enter grades"); System.out.println("3. View all students"); System.out.println("4. View student report"); - System.out.println("5. Exit"); + System.out.println("5. Class statistic"); + System.out.println("6. Exit"); + System.out.println("════════════════════════════════════════"); System.out.print("Choose an option: "); - if(!scanner.hasNextInt()){ + if (!scanner.hasNextInt()) { System.out.println("Please enter a valid number."); scanner.nextLine(); continue; @@ -193,20 +233,21 @@ public void run(){ int choice = scanner.nextInt(); scanner.nextLine(); - if(choice < 1 || choice > 5){ - System.out.println("Please enter a number from 1 to 5."); + if (choice < 1 || choice > 6) { + System.out.println("Please enter a number from 1 to 6."); continue; } - switch(choice){ - case 1 -> addStudent(); - case 2 -> enterGrades(); - case 3 -> viewAllStudents(); - case 4 -> viewStudentsReport(); - case 5 -> { - System.out.println("Goodbye!"); - return; - } + switch (choice) { + case 1 -> addStudent(); + case 2 -> enterGrades(); + case 3 -> viewAllStudents(); + case 4 -> viewStudentsReport(); + case 5 -> viewClassStatistic(); + case 6 -> { + System.out.println("Goodbye!"); + return; + } } From ff93aa92ffd4b2754dd8b4fc914cc2f7026fa706 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Thu, 7 May 2026 00:04:12 +0200 Subject: [PATCH 7/7] add studentCount validation to class statistics --- task-1/com/hyfacademy/service/GradeService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/task-1/com/hyfacademy/service/GradeService.java b/task-1/com/hyfacademy/service/GradeService.java index 50da749..6cef180 100644 --- a/task-1/com/hyfacademy/service/GradeService.java +++ b/task-1/com/hyfacademy/service/GradeService.java @@ -176,6 +176,11 @@ public void viewStudentsReport() { } public void viewClassStatistic() { + if(studentCount == 0){ + System.out.println("For run statistic you need at least one student"); + return; + } + System.out.println("══════════════════════════════════════════════════════"); System.out.println(" CLASS GRADES STATISTICS "); System.out.println("══════════════════════════════════════════════════════");