Notes: This code's purpose is to demonstrate the concepts of inheritance, aggregation and abstract classes; it handles a hard-coded array of hourly, salaried or internship employees, calculates their pay based on the provided information and outputs the handled data back to the user. (The employees and "Gamershore" are references to an old YouTube content creation crew that used to exist in the late 2000s and early 2010s.)
The Driver class is relatively simple and includes the hard-coded employee data in an array of Staff objects; it also includes the intermediate method calls and output-handling code. StaffInfo is a base class which handles the basic information about each employee- name, address, city and state. Staff is an abstract class that includes the overall framework of the Hourly, Internship, and Salaried classes. Salaried, Hourly, and Internship are intermediate classes that extend the Staff abstract class; they calculate pay based on the hard-coded data from the Driver and handle data for each type of employee, as well as output employee data. The Output text file is a copy of the text output from the console upon running the program (the file was created manually, not generated by the program).
The following code was written as part of coursework for University of Mississippi class CSCI 112 (Computer Science II).
You can also view and download the code by visiting the GitHub repository HERE.
Disclaimer: All of this code is listed here as samples of the work I've done both inside and outside of the classroom here at Ole Miss. Many of these coding samples were done as part of a project for a class I belonged to, or were done for my own personal practice from other years' programming assignments; if this is the case, I have labeled it with the relevant University of Mississippi course number. My code may or may not be correct- it is simply posted with the intent to serve as a demonstration of my growth over time as a programmer, and for the work to serve as a guide to other programmers who are attempting to learn the craft themselves. I DO NOT recommend copying any of my code verbatim under any circumstances due to the risk of academic disciplinary measures being taken against you, and I am NOT responsible if this or any other negative result occurs from use of my code. Using or viewing this code in any way constitutes an affirmation that you have read and consent to this disclaimer, and to the terms of the provided GNU AGPLv3 License. The full license can be found HERE.