Terminal Tool · Written in C
GradeVault is a terminal-based student grade management system written in plain C. Enter student names and marks — it computes averages, assigns letter grades, flags pass / borderline / fail status, and persists every record to disk so the roster carries over between sessions.
Computes each student's average, assigns a letter grade (A–F), and flags pass, borderline, or fail against fixed thresholds.
Every session is saved to a plain pipe-delimited text file and reloaded automatically the next time GradeVault runs.
Raw ANSI escape codes drive green / yellow / red output — no ncurses, no external libraries, just the C standard library.
The X Factor
Most grade calculators stop at the spreadsheet dump. GradeVault auto-generates a brutally honest performance summary at the end of a session — a real computed feature, not decorative text:
Averages every mark recorded for each subject across all students and picks the min and max.
Computed per-student from each student's own average against fixed thresholds — not hardcoded buckets.
Persists the class average from the last summary run to gradevault_history.dat and diffs it against the current run, so it can literally say "average dropped 8 points from last batch."
The closing line — e.g. "A few students are sinking. Do not ignore them." — is chosen from the actual fail / borderline / pass counts.
Sample session
Key concepts
Run it
macOS / Linux (GCC)
$ gcc gradevault.c -o gradevault -Wall$ ./gradevault
Windows (MinGW)
$ gcc gradevault.c -o gradevault.exe -Wall$ gradevault.exe
Grading scale: A ≥ 90, B ≥ 75, C ≥ 60, D ≥ 40, F < 40. Status: PASS ≥ 50, BORDERLINE 40–49, FAIL < 40. The full command reference, file layout, and grading logic are documented in README.md in the project root.