A class Student is defined, which keeps track of information about a single student: first name, last name, and a list of grades. It can return averages and the list of grades itself. By intention, it does no direct interaction with the user. This way we can fit it with a graphics oriented interface, or a text oriented one, as desired.
The class StudentMenu provides a user interface for Student. It displays a menu, gets a choice, and acts on it, using JOptionPane for input and output. There will be a later example in which a GUI is designed for this purpose.
The class Driver is simply to test Student and StudentMenu.
There is documentation available. It was created using javadoc. Take a look at it---it contains a complete description of what is needed to use the various classes. Finally, here is the source code.