Student Grade Tracker.
A Java-engineered academic performance management system. Computes weighted grade statistics, overall class averages, highest/lowest scores, and GPA rankings with defensive input validation.
Interactive User Input & Output Suite
Use the dedicated INPUT and OUTPUT buttons below to enter data and generate comprehensive performance reports directly on this page.
📥 Student Grade Input Form
Accepts scores from 0.0 to 100.0📊 Academic Performance Output Report
| # | Student Name | Subjects Count | Entered Scores | Average % | Highest | Lowest | Letter Grade | GPA (4.0) | Action |
|---|
📊 Student Performance Bar Chart
Scale: 0% to 100%Official Video Walkthrough
Watch the Java application in action handling student records, inputs, and generating console reports.
▶ Task 1 Demonstration — Student Grade Tracker Execution
Full HD 1080p RecordingSystem Architecture & Java OOP Design
Built following robust Object-Oriented principles, separating data models, business logic, and UI execution.
Student.java
Encapsulates student identity and an internal ArrayList<Double> of marks. Provides getter/setter boundaries and computes student-level metrics.
getAverage(): Sum of grades / countgetHighest(): Peak recorded scoregetLowest(): Minimum recorded score
GradeTracker.java
Acts as the controller maintaining the master registry of all students. Implements class-wide statistics, duplicate prevention, and tabular formatting.
- Case-insensitive student lookup
- Dynamic ASCII formatted summary table
- Class-wide highest, lowest & average computation
Main.java
Interactive CLI driver with Scanner input, robust exception handling, and an easy menu-driven interface for seamless command execution.
- Menu Loop with exit validation
- Defensive numeric parsing
- Real-time console updates
public class Student { private String name; private List<Double> grades; public Student(String name) { this.name = name; this.grades = new ArrayList<>(); } public void addGrade(double grade) { grades.add(grade); } public double getAverage() { if (grades.isEmpty()) return 0.0; double sum = 0; for (double g : grades) sum += g; return sum / grades.size(); } }
How to Run Locally in Terminal
Navigate into the task folder and compile the Java sources using the standard JDK.
Compile and run Main class directly:
cd Task1_StudentGradeTracker javac *.java java Main