Programming Assignment #4: classes, composition, subclasses, inheritance (10

  1. Write the code for the following classes of employees

All attributes in all classes must be private; “decorator” or explicit constructor may be used in the definition of classes, but @property cannot be used ( -50% if those rules are not followed)

 

Emp (short for Employee)

The class Emp has 3 subclasses: 1. SalEmp (short for Salaried Employe), 2. HourlyEmp,

  1. CommEmp (short for commission employee).

The class CommEmp has one subclass, BpCommEmp (short for base plus commission

Employee).

There is also a BusinessCar class

 

Class Emp

Attributes: empName, minSalary (short for minimum salary)

Methods: besides the usual methods (if needed), the class Emp has the

following 2 methods:

earnings(), which returns minSalary

displayInfo(), which displays name and minSalary

 

class SalEmp

Attribute: monthlySalary

Methods: besides the usual methods (if needed), the class EmpSal

has the following 2 methods:

earnings(), which returns the greater of minSalary and monthlySalary

displayInfo(), which displays name, monthlySalary,  earnings()

 

class HourlyEmp

Attribute: hours, rate

Methods: besides the usual methods (if needed), the class EmpSal

has the following 2 methods:

earnings(), which returns the greater of minSalary and hours*rate

displayInfo(), which displays name, hours, rate ,  earnings()

 

class CommEmp

Attribute: sales, rate

Methods: besides the usual methods (if needed , the class EmpSal

has the following 2 methods:

earnings(), which returns the greater of minSalary and sales*rate

displayInfo(), which displays name, sales, rate ,  earnings()

 

class BpCommEmp

Attribute: baseSalary, car (car is a  BusinessCar object )

Methods: besides the usual methods (if needed), the class EmpSal

has the following 2 methods:

earnings(), which returns sales*rate+ baseSalary

displayInfo(), which displays name, sales, rate ,  earnings(), car info

 

class BusinessCar

attributes: make,  model, year

methods: as needed

 

  1. Instantiate (that is create) the following objects (in main()) and display the information for all objects, using the method dispayInfo() (car info to be provided via displayInfo())

Class Emp   (empName,minSalary)

Amy   1500

Brie  1500

 

SalEmp (empName,monthlySalary, minSalary)

Carol  2000   1200

Jean  2000  1200

 

HourlyEmp (empName,hours, rate, minSalary)

Gloria 200 15  1000

 

CommEmp  (empName,sales, rate, minSalary)

Doug  200000  0.10  1000

 

BpCommEmp (empName, sales, rate, baseSalary, car)

Grace 300000 0.2   1500  car: Toyota  Lexus 2015

Luke 200000 0.2   3000 car: Toyota  Camry 2015

Linda 300000 0.2   1500  car: Ford Taurus 1900   (extra credit if Linda has no car)

 

Please, do not clutter your code with getters and setters and any other methods that are not used.

 

    

Powered by WordPress