rendered paste body
#include <stdlib.h>
#include <stdio.h>
#define MAX_EMPLOYEES 10
struct employee {
char last_name[15];
char first_name[15];
float hourly_wage;
float hours_worked;
float regular_hours;
float overtime_hours;
float deferred;
float gross_income;
float federal_taxes;
float state_taxes;
float ssi_taxes;
float net_income;
employee() {
hourly_wage = 0;
hours_worked = 0;
regular_hours = 0;
overtime_hours = 0;
deferred = 0;
gross_income = 0;
federal_taxes = 0;
state_taxes = 0;
ssi_taxes = 0;
net_income = 0;
}
};
extern void PrintReportHeadings ( FILE * reportfile );
extern void InputEmployeeData( employee *current_employee );
extern void CalculateGross ( employee *current_employee );
extern void CalculateTaxes ( employee *current_employee );
extern void CalculateNet ( employee *current_employee );
extern void PrintSummaryReport ( FILE * reportfile, employee *current_employee );
extern void AddDetailToAccumulators ( employee *current_employee, employee *employee_totals, float *number_employees );
extern void PrintReportFooters ( FILE * reportfile, employee *employee_totals, float *number_employees );
int main( ) {
employee employees[MAX_EMPLOYEES];
employee employee_totals;
int number_employees;
int current_employee;
FILE *reportfile;
char add_another;
reportfile = fopen("./report.lst","wt");
if (!reportfile) {
printf("Could not open report file. Ending program.");
exit(10);
}
PrintReportHeadings( reportfile );
do {
number_employees++;
current_employee = number_employees - 1;
InputEmployeeData( &employees[current_employee] );
CalculateGross( &employees[current_employee] );
CalculateTaxes( &employees[current_employee] );
CalculateNet ( &employees[current_employee] );
PrintSummaryReport ( reportfile, employees[current_employee] );
AddDetailToAccumulators ( employees[current_employee], &employee_totals );
printf("\nWould you like to add another employee? : (Y or N)\n>");
fflush(stdin);
scanf("%c", &add_another);
} while ( add_another == 'Y' || add_another == 'y' );
PrintReportFooters ( reportfile, &total_hourly_wage, &total_regular_hours, &total_overtime_hours, &total_deferred,\
&total_gross_income, &total_federal_taxes, &total_state_taxes, &total_ssi_taxes, &total_net_income, &number_employees );
fclose(reportfile);
return 0;
}