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;
};
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, int number_employees );
extern void PrintReportFooters ( FILE * reportfile, employee *employee_totals, int number_employees );
int main( ) {
struct employee employees[MAX_EMPLOYEES] = {"", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
struct employee employee_totals = {"", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
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, &employee_totals, number_employees );
fclose(reportfile);
return 0;
}