studentScores // deleted "try"s, accounted for discrepancies

Moved a openObj.read(1) to the end of the main while loop (note: AFTER
the newline character has been read) so that if EOF is reached, it
reads a blank string into the IO object and then tests it against the
main while's condition.

The "discrepancy" addition to the gradeProcessing() function accounts
for extra grades by truncating from the right any grade without a
header.
stats() function // Prettied up

Added some leading and ending newline chars.
Added better input checking for the "range" loop.
Added a title line as per the assignment for the "range" loop.
Added comments and prettied up

No time to explain
More comments and accounted for possible dead space on blank line

see above