Code:
/* Name: Arturo
Date: 03/22/13
Purpose: To learn
*/
extern void calculatetaxes(float gross,float deferred, float *ft, float *st, float ........i);
void ovtHrs(float *hrs_wrk, float *ovt_hrs, float hrs, float *gross, float payrate);
void netPay(float gross, float deferred, float ft, float st, float ssi, float *net);
void calcAccumulator(float *tot_payrate, float payrate, float *tot_hrs_wrk, float hrs_wrk, float *tot_ovt, float ovt_hrs,
float *tot_gross, float gross, float *tot_ft, float ft, float *tot_st, float st, float *tot_ssi, float ssi,
float *tot_deferred, float deferred, float *tot_net, float net);
void calcAverage(float tot_payrate, float *payrate_avg, float tot_hrs_wrk, float *hrs_wrk_avg, float tot_ovt, float *ovt_avg,
float tot_gross, float *gross_avg, float tot_ft, float *ft_avg, float tot_st, float *st_avg, float tot_ssi,
float ........i_avg, float tot_deferred, float *deferred_avg, float tot_net, float *net_avg);
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define BLANKLINES " \n\n"
#define REPORTHEADER "Employee Pay Reg Hrs Gross Fed SSI Net\n"
#define REPORTHEADER1 "Name Rate Ovt Hrs Pay State Defr Pay\n"
#define REPORTHEADER2 "========= ====== ========= ======= ======= ====== =====\n"
#define REPORTFORMAT "%2s %2s %8.2f %15.2f %17.2f %18.2f%15.2f%11.2f\n"
#define REPORTFORMAT1 " %24.2f %36.2f %12.2f\n"
#define REPORTFORMAT2 "Totals%22.2f%16.2f%18.2f%19.2f%15.2f%11.2f\n"
#define REPORTFORMAT3 " %39.2f%37.2f%15.2f\n"
#define REPORTFORMAT4 "Averages%20.2f%16.2f%18.2f%19.2f%15.2f%11.2f\n"
#define REPORTFORMAT5 " %38.2f%37.2f%15.2f\n"
#define ARRAYSIZE 5
int main(void)
{
char lastname[ARRAYSIZE][10+1], firstname[ARRAYSIZE][15+1];
char S_name[15+10+3+2];
float payrate[ARRAYSIZE], hrs_wrk[ARRAYSIZE], ovt_hrs[ARRAYSIZE], gross[ARRAYSIZE], ft[ARRAYSIZE], st[ARRAYSIZE], ssi[ARRAYSIZE], deferred[ARRAYSIZE], net[ARRAYSIZE], hrs[ARRAYSIZE];
float tot_payrate=0, tot_hrs_wrk=0, tot_ovt=0, tot_gross=0, tot_ft=0, tot_st=0, tot_ssi=0, tot_deferred=0, tot_net=0;
float payrate_avg, hrs_wrk_avg, ovt_avg, gross_avg, ft_avg, st_avg, ssi_avg, deferred_avg, net_avg;
int i;
for(i=0; i<ARRAYSIZE; i++)
{
printf("Enter the last name of the employee\n");
scanf("%s", lastname[i]);
printf("Enter the first name of the employee\n");
scanf("%s", firstname[i]);
printf("Enter the the pay of the employee\n");
scanf("%f", &payrate[i]);
printf("Enter the amount of hours worked\n");
scanf("%f", &hrs[i]);
printf("Enter the deferred amount\n");
scanf("%f", &deferred[i]);
}
printf(BLANKLINES);
printf(REPORTHEADER);
printf(REPORTHEADER1);
printf(REPORTHEADER2);
for(i=0; i<ARRAYSIZE; i++)
{
strcpy(S_name, lastname[i]);
strcat(S_name, ", ");
strcat(S_name, firstname[i]);
ovtHrs(&hrs_wrk[i], &ovt_hrs[i], hrs[i], &gross[i], payrate[i]);
calculatetaxes(gross[i], deferred[i], &ft[i], &st[i], &ssi[i]);
netPay(gross[i], deferred[i], ft[i], st[i], ssi[i], &net[i]);
calcAccumulator(&tot_payrate, payrate[i], &tot_hrs_wrk, hrs_wrk[i], &tot_ovt, ovt_hrs[i], &tot_gross, gross[i], &tot_ft, ft[i], &tot_st, st[i], &tot_ssi, ssi[i], &tot_deferred, deferred[i], &tot_net, net[i]);
calcAverage(tot_payrate, &payrate_avg, tot_hrs_wrk, &hrs_wrk_avg, tot_ovt, &ovt_avg, tot_gross, &gross_avg, tot_ft, &ft_avg, tot_st, &st_avg, tot_ssi, &ssi_avg, tot_deferred, &deferred_avg, tot_net, &net_avg);
printf(BLANKLINES);
printf(REPORTFORMAT, S_name, payrate[i], hrs_wrk[i], gross[i], ft[i], ssi[i], net[i]);
printf(REPORTFORMAT1, ovt_hrs[i],st[i], deferred[i]);
}
printf(REPORTFORMAT2, tot_payrate, tot_hrs_wrk, tot_gross, tot_ft, tot_ssi, tot_net);
printf(REPORTFORMAT3, tot_ovt, tot_st, tot_deferred);
printf(REPORTFORMAT4, payrate_avg, hrs_wrk_avg, ovt_avg, gross_avg, ft_avg, st_avg, ssi_avg, deferred_avg, net_avg);
printf(REPORTFORMAT5, ovt_avg, st_avg,deferred_avg);
while(getchar()!= '\n');
getchar;
return 0;
}
void ovtHrs(float *hrs_wrk, float *ovt_hrs, float hrs, float *gross, float payrate)
{
if(hrs<=40)
{
*ovt_hrs=0;
*hrs_wrk=hrs;
*gross=hrs*payrate;
}
else
{
*hrs_wrk=40;
*ovt_hrs=hrs-40;
*gross=payrate*40+(hrs-40)*1.5*payrate;
}
}
void netPay(float gross, float deferred, float ft, float st, float ssi, float *net)
{
*net=gross-deferred-ft-st-ssi;
}
void calcAccumulator(float *tot_payrate, float payrate, float *tot_hrs_wrk, float hrs_wrk, float *tot_ovt, float ovt_hrs, float *tot_gross, float gross, float *tot_ft, float ft, float *tot_st, float st, float *tot_ssi, float ssi,float *tot_deferred, float deferred, float *tot_net, float net)
{
*tot_payrate+=payrate;
*tot_hrs_wrk+=hrs_wrk;
*tot_ovt+=ovt_hrs;
*tot_gross+=gross;
*tot_ft+=ft;
*tot_st+=st;
*tot_ssi+=ssi;
*tot_deferred+=deferred;
*tot_net+=net;
}
void calcAverage(float tot_payrate, float *payrate_avg, float tot_hrs_wrk, float *hrs_wrk_avg, float tot_ovt, float *ovt_avg, float tot_gross, float *gross_avg, float tot_ft, float *ft_avg, float tot_st, float *st_avg, float tot_ssi, float ........i_avg, float tot_deferred, float *deferred_avg, float tot_net, float *net_avg)
{
*payrate_avg=(tot_payrate/5);
*hrs_wrk_avg=(tot_hrs_wrk/5);
*ovt_avg=(tot_ovt/5);
*gross_avg=(tot_gross/5);
*ft_avg=(tot_ft/5);
*st_avg=(tot_st/5);
........i_avg=(tot_ssi/5);
*deferred_avg=(tot_deferred/5);
*net_avg=(tot_net/5);
}