The program must compile, execute, produce correct results, and meet all of the specifications
stated in Section 1.
Additionally you must:
Organize the code for user readability.
Organize the code for reusability.
Organize the code for efficiency.
Provide documentation with embedded comments for reader understanding.
The specific course learning outcomes associated with this assignment are:
Compare and contrast abstract and concrete data types.
Apply the Java concepts of file input / output.
Design programs that handle events from user-interface components.
Use technology and information resources to research issues in Java programing