All pastes #242251 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-11-07 01:13 UTC
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;
}