Project "pay2":   Simple Payroll Program
        (with loop for multiple employees)

DESCRIPTION: Process the weekly payroll for employees of a company.
For each employee, compute the weekly pay amount and print a paycheck. Then, print a payroll summary report.

INPUT: For each employee, the following input data shall be manually entered, as prompted for by the program:

  1. ID number (an integer greater than zero).
  2. Name (a string in the form "Lastname, Firstname")
  3. Pay rate (hourly pay rate, in $).
  4. Overtime code (1, 2, 3, or 4).
  5. Hours worked (to the nearest tenth).
An ID number of zero shall be used as a "sentinel" to indicate that there are no more employees.

CALCULATIONS: The gross pay amount shall be calculated from the pay rate and the hours worked. For this version of the project, multiply the hours worked by the hourly pay rate for any employee whose code is greater than one. If the pay code is one (1), then that employee is entitled to "time-and-a-half" for each hour worked beyond the first 40 hours.

OUTPUT: When pay is computed for each employee, the program shall display a simulated check similar to the following.


		Pay to the order of John Doe
		the amount of $ 123.45

After the payroll processing is completed, the program shall display a report including the following:


CLASSES: Implement this version with two classes, as described below.

  1. An "Employee" class to contain information about the employee, and methods to calculate pay amount, etc.

  2. A "main" class, to obtain input data for each employee (until ID is zero), store it into the Employee object, calculate the gross pay, and print the paycheck.   Also produce the report.
The names of these two classes should begin with your own initials (two or three), followed by the word "Employee" or "Pay2". In the descriptions that follow, the initials "XYZ" are used, but substitute your own initials when you write your own code.

class XYZEmployee:
Data should include separate Strings for Last and First name, as well as the above data (ID, code, rate, and hours). (No construcors are necessary.) Additional data elements should also include "grosspay".
Methods shall include a method to calculate gross pay, as described above.

class XYZPay2:
Instantiate a single instance of an "Employee" object, then re-use it for each employee. Use a loop to input data, process it, and produce a paycheck for each employee. Exit the loop when an ID of zero is given. Then produce the report.
Suggested steps for the main loop are:

After the loop has exited (due to an ID value of zero), produce the report.