/* This program displays proposed raises for low and * middle income employees, using employee data from * the file "employee.dat". * * Author: Evan Weaver Last Modified: 25-Nov-1996 */ #include double show_raise(char name[], double sal); main() { FILE *fp; char name[36], job[41]; double salary, total_cost = 0; fp = fopen("employee.dat", "r"); if (fp) { printf(" Proposed Employee Raises\n"); printf("%-35s%10s\n", "Name", "Raise"); while (3 == fscanf(fp, "%35[^;];%40[^;];%lf\n", name, job, &salary)) total_cost += show_raise(name, salary); printf("\nTotal cost for raises: $%.2lf\n", total_cost); fclose(fp); } else printf("Cannot read employee.dat file\n"); } /* End of main program */ /* Computes raise for employee: 10% of the first $40,000 * of annual salary for every employee earning less than * $100,000. The employee's name and raise is shown, and * the raise is also returned. */ double show_raise(char name[], double sal) { double raise; if (sal < 40000) raise = sal * 0.1; else if (sal < 150000) raise = 4000; else raise = 0; printf("%-35s%10.2lf\n", name, raise); return raise; } /* end of show_raise() function */