Assignment title: Information
While the first assignment focused primarily on declarative programming using control structures, this assignment will require you to demonstrate your object-oriented programming skills by creating a program involving multiple classes. It draws on the material covered in Weeks 1-10 of the course. 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. Timelines and Expectations Percentage Value of Task: 20% Due: 4pm Friday of Week 11 – refer to your course description for the date Minimum time expectation: 20 hours Learning Outcomes Assessed The following course learning outcomes are assessed by completing this assessment: • K1. identify and use the correct syntax of a common programming language; • K2. recall and use typical programming constructs to design and implement simple software solutions; • K3. reproduce and adapt commonly used basic algorithms; • K4. explain the importance of programming style concepts (documentation, mnemonic names, indentation); • S1. utilise pseudocode and/or algorithms as a major program design technique; • S2. write and implement a solution algorithm using basic programming constructs; • S3. demonstrate debugging and testing skills whilst writing code; • S4. describe program functionality based on analysis of given program code • A1. develop self-reliance and judgement in adapting algorithms to diverse contexts; • A2. design and write program solutions to identified problems using accepted design constructs CRICOS Provider No. 00103D Page 1 of 15 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 o this should be formatted as their employee ID