1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
//functions
void findovt(int[], int[], float[],float[], float[], int);
void findgp(float[], float[], float[], int);
void findtaxr(float[], float[], char[], int);
void findtax(float[], float[], float[], int);
void findnp(float[], float[], float[], int);
void outputall(char[], char[], int[], int[], float[], char[], int[], float[],
float[], float[], float[], float[], int);
int main(){
//declaration of variables
int id[100], hw[100], oth[100];
float hr[100], otp[100], rgp[100], gp[100], tax[100],
np[100], TAXR[100];
char fname[100][15], lname[100][15], ms[100];
int i, n=0;
ifstream fin("payrollfunc.txt");
cout<<setiosflags(ios::left)<<" Digdug's National Bank"<<endl<<endl;
cout<<setiosflags(ios::left)<<setw(15)<<"FIRST NAME"<<setw(15)<<"LAST NAME"<<setw(7)<<"EMP ID"<<setw(4)<<"HW"<<setw(6)<<"HR"<<setw(5)<<"STAT"<<setw(5)<<"OTH"<<setw(7)<<"OTP"<<setw(7)<<"REGP"<<setw(9)<<"GROSS"<<setw(7)<<"TAX"<<setw(7)<<"NET"<<endl<<endl;
cout<<setiosflags(ios::left)<<setw(15)<<"=============="<<setw(15)<<"=============="<<setw(7)<<"======"<<setw(4)<<"==="<<setw(6)<<"====="<<setw(5)<<"===="<<setw(5)<<"==="<<setw(7)<<"======"<<setw(7)<<"======"<<setw(9)<<"========"<<setw(7)<<"======"<<setw(7)<<"======"<<endl;
while(fin>>fname[n]>>lname[n]>>id[n]>>hw[n]>>hr[n]>>ms[n]) n++;
//Function Call
findovt(hw, oth, hr, otp, rgp, n);
findgp(rgp, otp, gp, n);
findtaxr(gp, TAXR, ms, n);
findtax(gp, tax, TAXR, n);
findnp(gp, np, tax, n);
outputall(fname[15], lname[15], id, hw, hr, ms, oth, otp, rgp, gp, tax, np, n);
system("pause");
return 0;
}//MAIN
// function definitions
void findovt(int hw[], int oth[], float hr[], float otp[], float rgp[], int n){
for(int i=0;i<n;i++){
if(hw[i]>40){
oth[i]=hw[i]-40;
otp[i]=oth[i]*hr[i]*1.5;
rgp[i]=hw[i]*hr[i];
}//IF
else{
oth[i]=0;
otp[i]=0;
rgp[i]=hw[i]*hr[i];
}//ELSE
}//FOR
}//FINDOVT
void findgp(float rgp[], float otp[], float gp[], int n){
for(int i=0;i<n;i++){
gp[i]=rgp[i]+otp[i];
}//FOR
}//FINDGP
void findtaxr(float gp[], float TAXR[], char ms[], int n){
for(int i=0;i<n;i++){
if ((gp[i]>1000) && ms[i]=='S'||ms[i]=='s') TAXR[i]=0.35;
else if ((gp[i]>1000) && ms[i]=='M'||ms[i]=='m') TAXR[i]=0.30;
else if ((gp[i]>1000) && ms[i]=='H'||ms[i]=='h') TAXR[i]=0.25;
else if ((gp[i]>800) && ms[i]=='S'||ms[i]=='s') TAXR[i]=0.25;
else if ((gp[i]>800) && ms[i]=='M'||ms[i]=='m') TAXR[i]=0.20;
else if ((gp[i]>800) && ms[i]=='H'||ms[i]=='H') TAXR[i]=0.15;
else if ((gp[i]>500) && ms[i]=='S'||ms[i]=='s') TAXR[i]=0.15;
else if ((gp[i]>500) && ms[i]=='M'||ms[i]=='m') TAXR[i]=0.10;
else if ((gp[i]>500) && ms[i]=='H'||ms[i]=='h') TAXR[i]=0.05;
else TAXR[i]=0.0;
}//FOR
}//FINDTAXR
void findtax(float gp[], float tax[], float TAXR[], int n){
for(int i=0;i<n;i++){
tax[i]=gp[i]*TAXR[i];
}//FOR
}//FINDTAX
void findnp(float gp[], float np[], float tax[], int n){
for(int i=0;i<n;i++){
np[i]=gp[i]-tax[i];
}//FOR
}//FINDNP
void outputall(char fname[], char lname[], int id[], int hw[], float hr[],
char ms[], int oth[], float otp[], float rgp[], float gp[], float tax[],
float np[], int n){
for(int i=0;i<n;i++){
cout<<fixed;
cout<<setiosflags(ios::showpoint|ios::fixed|ios::left)<<setw(15)<<fname[i]
<<setw(15)<<lname[i]<<setw(7)<<id[i]<<setw(4)<<setprecision(1)<<hw[i]
<<setw(6)<<setprecision(2)<<hr[i]<<setw(5)<<ms[i]<<setw(5)
<<setprecision(1)<<oth[i]<<setw(7)<<setprecision(2)<<otp[i]<<setw(9)
<<rgp[i]<<setw(9)<<gp[i]<<setw(7)<<tax[i]<<setw(7)<<np[i]<<endl;
}//FOR
}//OUTPUTALL
//end
|