Case 6 (1)
Case 6 (1)
#include <iomanip>
#include <vector>
#include <algorithm>
class Employee {
protected:
string employeeid;
string employeename;
char maritalstatus;
int hoursworked;
int overtime;
public:
void calculateTax() {
double taxrate;
taxrate = 0.30;
else
taxrate = 0.10;
taxrate += 0.05;
void calculateNetPay() {
cout << setw(8) << employeename << setw(8) << employeeid <<
setw(6)
<< hoursworked << setw(6) << overtime << setw(10) << grosspay
return netpay;
}
virtual ~Employee() = default;
};
double hourlyrate;
public:
HourlyEmployee(string id, string name, char status, int hours, double rate)
} else {
overtime = 0;
overtimepay = 0;
};
double yearlysalary;
public:
grosspay += overtimepay;
} else {
overtime = 0;
overtimepay = 0;
};
class Payroll {
vector<Employee*> employees;
public:
employees.push_back(emp);
}
void calculatePayroll() {
emp->calculateGrossPay();
emp->calculateTax();
emp->calculateNetPay();
void printReport() {
emp->display();
void findMinAndMaxNetPay() {
cout << "Minimum Net Pay: " << setprecision(2) << fixed <<
(*minmax.first)->getNetPay() << endl;
cout << "Maximum Net Pay: " << setprecision(2) << fixed <<
(*minmax.second)->getNetPay() << endl;
void sortEmployeesByNetPay() {
sort(employees.begin(), employees.end(),
~Payroll() {
delete emp;
};
int main() {
Payroll payroll;
payroll.printReport();
payroll.findMinAndMaxNetPay();
payroll.sortEmployeesByNetPay();
cout << "\n- Sorted Payroll Report by Net Pay -" << endl;
payroll.printReport();
return 0;