// compensation.cpp, Maggie Johnson
// Description: A program to decide the best of three methods of compensation
#include <iostream>
using namespace std;
// constants which are used throughout the program
#define kPricePerUnit 225 // average price of a pair of shoes
#define kWeeklyWage 600 // current weekly wage - Method 1
#define kSalary 7.0 // hourly salary - Method 2
#define kHoursPerWeek 40 // number of hours worked - Method 2
#define kCommission2 0.10 // commission - Method 2
#define kCommission3 0.2 // commission - Method 3
#define kBonusPerUnit 20 // bonus - Method 3
// A function to get the weekly sales of units
int GetInput() {
int units;
cout << "Enter number of units sold per week: ";
if (!(cin >> units)) {
cout << "Numbers only" << endl;
return 0;
} else {
return units;
}
}
// This one is easy - always the same: $600 per week
void CalcMethod1() {
cout << "Method 1: " << kWeeklyWage << endl;
}
// Method 2: A salary of $7.00 per hour plus a 10% commission on sale
void CalcMethod2(int Sales) {
double PerHour, TotalPay, Commission;
PerHour = kSalary * kHoursPerWeek;
Commission = (Sales * kPricePerUnit) * kCommission2;
TotalPay = PerHour + Commission;
cout << "Method 2: " << TotalPay << endl;
}
// Method 3: No salary, but 20% commissions and $20 for each pair of shoes sold
void CalcMethod3(int Sales) {
int Extra;
double TotalPay, Commission;
Extra = kBonusPerUnit * Sales;
Commission = (Sales * kPricePerUnit) * kCommission3;
TotalPay = Extra + Commission;
cout << "Method 3: " << TotalPay << endl;
}
main() {
int WeeklySales; // our input variable
WeeklySales = GetInput();
if (WeeklySales == 0)
return 0;
CalcMethod1();
CalcMethod2(WeeklySales);
CalcMethod3(WeeklySales);
}