Code:
#include<iostream>
#include<iomanip>
#include<string>
#include<cmath>
#include<fstream>
#include<stdio.h>
#include<cctype>
using namespace std;
void input(char employee[100][100], int hours[100], float payrolldata[100][100], double& r, char& l, int& d, int& y);
void grosspay(char employee[100][100], int hours[100], float payrolldata[100][100], double& r, char& l, int& d, int& y);
void fedtax(float payrolldata[100][100], int& y);
void fica(float payrolldata[100][100], int& y);
void healthcare(float payrolldata[100][100], int& y, int& d, char& l);
void netpay(float payrolldata[100][100], int& y);
void bubbledown(char employee[100][100], int hours[100], float payrolldata[100][100], int& y);
int main()
{
char employee[100][100];
int hours[100];
float payrolldata[100][100];
double r;
char l;
char x='y';
int d=0;
int y=0;
while(x=='y')
{
input(employee, hours, payrolldata, r, l, d, y);
cout << endl << "Add another employee?(y/n): ";
cin >> x;
cin.ignore();
}
bubbledown(employee, hours, payrolldata, y);
return 0;
}
void input(char employee[100][100], int hours[100], float payrolldata[100][100], double& r, char& l, int& d, int& y)
{
char tempname[100];
int m, t, w, h, f, s, u, total;
cout <<"Hello, Please enter the following information for the Payroll Report." <<endl;
cout << "Name: ";
cin.get(tempname, 30, '\n');
strcpy(employee[y], tempname);
cout << endl << "Hours worked per day: ";
cin >> m >> t >> w >> h >> f >> s >> u;
total = m+t+w+h+f+s+u;
hours[y]= total;
cout << endl << "Pay rate:";
cin >> r;
cout << endl << "Dependents: ";
cin >> d;
cout << endl << "Health(y/n): ";
cin >> l;
grosspay(employee, hours, payrolldata, r, l, d, y);
fedtax(payrolldata, y);
fica(payrolldata, y);
healthcare(payrolldata, y, d, l);
netpay(payrolldata, y);
y++;
}
void grosspay(char employee[100][100], int hours[100], float payrolldata[100][100], double& r, char& l, int& d, int& y)
{
cin.ignore();
int overtime;
int overtimepay;
int standard;
float grosspay;
if(hours[y]>40)
{
overtime = hours[y] - 40;
overtimepay = overtime * r * 1.5;
standard = 40 * r;
grosspay = standard + overtimepay;
payrolldata[y][1]=grosspay;
}
if(hours[y]<=40)
{
grosspay=hours[y]*r;
payrolldata[y][1]=grosspay;
}
cout << endl << payrolldata[y][1];
}
void fedtax(float payrolldata[100][100],int& y)
{
if(payrolldata[y][1] > 300)
{
payrolldata[y][2]=(.22)*payrolldata[y][1];
}
if(payrolldata[y][1] <= 300)
{
payrolldata[y][2]=0;
}
cout << endl << payrolldata[y][2];
}
void fica(float payrolldata[100][100], int& y)
{
double tax;
tax = .085 * payrolldata[y][1];
if(tax<=45)
{
payrolldata[y][3]=.085*payrolldata[y][1];
}
if(tax>45)
{
payrolldata[y][3] = 45;
}
cout << endl << payrolldata[y][3];
}
void healthcare(float payrolldata[100][100], int& y, int& d, char& l)
{
double dependents;
if(l == 'y' || l == 'Y')
{
if(d==1)
{
payrolldata[y][4]=18.75;
}
if(d>=1)
{
d = d - 1;
dependents= d * 7.35;
payrolldata[y][4]= 18.75 + dependents;
}
}
if(l != 'y')
payrolldata[y][4]=0;
cout << endl << payrolldata[y][4];
}
void netpay(float payrolldata[100][100], int& y)
{
double taxes;
taxes = payrolldata[y][4] + payrolldata[y][3] + payrolldata[y][2];
cout << endl <<taxes;
payrolldata[y][5] = payrolldata[y][1] - taxes;
cout << endl << payrolldata[y][5];
}
void bubbledown(char employee[100][100], int hours[100], float payrolldata[100][100], int& y)
{
int i, j;
for (i=0; i < y; i++)
{
for(j=0; j<i; j++)
{
if(employee[i]<employee[j])
{
swap(employee[i], employee[j]); //I think the problem is in here
swap(hours[i], hours[j]); //because when I delete it I don't
swap(payrolldata[i], payrolldata[j]); // get the errors.
}
}
}
}
Any help would be great, thanks.