By Group
By Group
Allow users to add new student, enter grades for each subject, calculate average grades, and generate
grade reports.
Main.java
import java.util.Scanner;
int choice;
do {
System.out.println("\nStudent Grade Tracker Menu:");
System.out.println("1. Add Student");
System.out.println("2. Enter Grade");
System.out.println("3. Calculate Average Grade");
System.out.println("4. Generate Grade Report");
System.out.println("5. Exit");
System.out.print("Enter your choice: ");
choice = scanner.nextInt();
scanner.nextLine(); // Consume newline
switch (choice) {
case 1:
addStudent(scanner, gradeTracker);
break;
case 2:
enterGrade(scanner, gradeTracker);
break;
case 3:
calculateAverageGrade(scanner, gradeTracker);
break;
case 4:
generateGradeReport(scanner, gradeTracker);
break;
case 5:
System.out.println("Exiting Student Grade Tracker Program.
Goodbye!");
break;
default:
System.out.println("Invalid choice. Please try again.");
}
} while (choice != 5);
scanner.close();
}
Student.java
import java.util.HashMap;
import java.util.Map;
double totalGrade = 0;
int numSubjects = 0;
for (Subject subject : subjects.values()) {
double subjectAverageGrade = subject.calculateAverageGrade();
if (subjectAverageGrade != 0.0) {
totalGrade += calculateGradePoints(subjectAverageGrade);
numSubjects++;
}
}
if (numSubjects == 0) {
System.out.println("No grades found for student " + name);
return 0.0; // or any other default value you prefer
}
@Override
public String toString() {
String report = "";
for (String subjectName : this.subjects.keySet()) {
report += subjectName + ": " +
this.subjects.get(subjectName).calculateAverageGrade() + "\n";
}
return report;
}
}
Subject.java
import java.util.ArrayList;
import java.util.List;
double totalGrade = 0;
for (double grade : grades) {
totalGrade += grade;
}
return totalGrade / grades.size();
}
@Override
public String toString() {
return "Subject{" +
"name='" + name + '\'' +
", grades=" + grades +
'}';
}
}
GradeTracker.java
import java.util.HashMap;
import java.util.Map;
public GradeTracker() {
this.students = new HashMap<>();
}