Part 1: A Date class
Design a class called Date. The class should store a date in three integers: month, day, and year. There should be member functions to print the date in the following forms:
December 25, 2012
25 December 2012
Perform the following input validation: Do not accept values for the day greater than 31 or less than 1. Do not accept values for the month greater than 12 or less than 1.
Part 2: A PayRoll class
Design a PayRoll class that has data members for an employee’s hourly pay rate, number of hours worked and total pay for the week. Write a program with an array of seven PayRoll objects. The program should ask the user for the number of hours each employee has worked and will then display the amount of gross pay each has earned.
Perform the following input validation: Do not accept values greater than 60 for the number of hours worked.
Part 3: DayOfYear class
Assuming that a year has 365 days, write a class named DayOfYear that takes an integer representing a day of the year and translates it to a string consisting of the month followed by day of the month. For example,
Day 2 would be January 2
Day 32 would be February 1
Day 365 would be December 31
The initializer for the class should take as parameter an integer representing the day of the year, and the class should have a member function print() that prints the day in the month-day format. Test your class by inputting various integers representing days and printing out their representation in the month-day format.
Demonstrate the functionality of all of these classes in one or more driver programs.
NOTE: You can use the same driver program to test all parts of this program implementation. You do not need to create a separate driver program for each step.