Programming Assignment-
The assignment task consists of implementing a tool which would assist the manager of a small company in scheduling employees. The Appendix at the back of this document provides a sample screenshot showing a working solution to the assignment as a guide to how it should function.
Learning Outcomes Assessed - The following course learning outcomes are assessed by completing this assessment:
• identify and use the correct syntax of a common programming language;
• recall and use typical programming constructs to design and implement simple software solutions;
• reproduce and adapt commonly used basic algorithms;
• explain the importance of programming style concepts (documentation, mnemonic names, indentation);
• utilise pseudocode and/or algorithms as a major program design technique;
• write and implement a solution algorithm using basic programming constructs;
• demonstrate debugging and testing skills whilst writing code;
• describe program functionality based on analysis of given program code
• develop self-reliance and judgement in adapting algorithms to diverse contexts;
• design and write program solutions to identified problems using accepted design constructs
Assessment Details
The assignment task consists of implementing a tool which would assist the manager of a small company in scheduling employees. The details of the company's operations are as follows:
• It operates on 5 days of the week (not on the weekends). On each day the company runs four shifts, and a single employee is required for each shift.
• The company employs both permanent employees and casual employees.
• Permanent employees are allocated to the same shift for all 5 days of a week, and are paid a fixed weekly wage.
• Casual employees can be allocated to any number of shifts per week (including zero), and are paid a fixed amount per shift worked.
The Employee Class
The first stage in this assignment is to define a Java class for an Employee based on the UML diagram on the next page. The methods of Employee should perform as follows:
- The constructor simply initialises the instance variables to the values provided as parameters, and sets shiftsWorkedThisWeek to 0
- The accessor methods (gets) simply return the value of their corresponding variable
- There are no set methods - it is assumed that the employee's name and ID will not change
- resetShiftsWorkedThisWeek() sets shiftsWorkedThisWeek to 0
- incrementShiftsWorkedThisWeek () adds one on to the current value of shiftsWorkedThisWeek
- calculateWeeklyPay() is provided so that it can be over-ridden by the subclasses - this method can be declared as abstract
- the toString method returns a String describing the Employee
You should also write a small driver class called TestEmployee, and thoroughly test the Employee class before proceeding further.
Attachment:- Assignment.rar