Description
HOMEWORK 4
FUNCTIONS
Write a C program using multiple functions that will calculate the gross pay for a set of employees.
See the last lecture note this week for a template you can use if you feel you need something to start with. However, feel free to implement this assignment that way you see fit, the template is just there if you need it. There are multiple ways to effectively implement this assignment.
The program determines the overtime hours (anything over 40 hours), the gross pay and then outputs a table in the following format. Column alignment, leading zeros in Clock number, and zero suppression in float fields is important. Use 1.5 as the overtime pay factor.
-----------------------------------------------
Clock# Wage Hours OT Gross
-----------------------------------------------
098401 10.60 51.0 11.0 598.90
526488 9.75 42.5 2.5 426.56
765349 10.50 37.0 0.0 388.50
034645 12.25 45.0 5.0 581.88
127615 8.35 0.0 0.0 0.00
Use the following clock and wage information to initialize your data.
98401 10.60
526488 9.75
765349 10.50
34645 12.25
127615 8.35
You should implement this program using one array for clock number, one array for wage rate, etc.
- Read in the hours worked for each employee
- Limit your use of global variables - Learn how to pass parameters!
- You should have at least 3-4 functions designed and implemented in addition to the main function.
- Remember to use constants and all the other things we have covered up to this assignment
- Re-read the homework coding standards ... make sure that each local variable is commented in EACH function, and EACH function has a descriptive function comment header
- Feel free to initialize the clock and wage values into arrays
I would recommend that your clock, wage, hours, overtime, and gross values be stored in individual arrays. As a challenge, you can have your program prompt the user to enter the number of hours each employee worked. When prompted, key in the hours shown below.
Do define your array size up front in your variable declaration. Don't define the array size at run time with a variable. This strategy does not always work on every C compiler.
Create a separate function whenever possible to break up your program. For instance, you might have a function for obtaining the hours from the user, another function for calculating overtime hours, another for calculating gross pay and another function for producing the output. At a minimum, you should have a main function and three or more other functions.
Finally, as always, don't use concepts we have not yet covered.
this is the format we need to know
/* Add file comment block here per coding standards with your name */
#include <stdio.h>
/* constants */
#define NUM_EMPL 5
#define OVERTIME_RATE 1.5f
#define STD_WORK_WEEK 40.0f
/* function prototypes */
/* I added one below to get you started */
void getInput (long clock_number[], float hours[], int size);
/* IMPORTANT: Add other function prototypes here as needed */
int main()
{
/* Variable Declarations */
long clock_number[NUM_EMPL] = {98401,526488,765349,34645,127615};
float gross[NUM_EMPL];
float hours[NUM_EMPL]; float ot[NUM_EMPL];
float wage_rate[NUM_EMPL] = {10.60,9.75,10.50,12.25,8.35};
/* Function call to get input from user. */ getInput (clock_number, hours, NUM_EMPL);
/* Function call to calculate overtime */
/* Function call to calculate gross pay */
/* Function call to output results to the screen */
return (0);
}
//**************************************************************/
// Function: getInput
//
// Purpose: Obtains input from user, the number of hours worked
// per employee and stores the results in an array that is
// passed back to the calling program by reference.
//
// Parameters: emp_num - Array of employee clock numbers.
// hrs - Array of number of hours worked by an employee
// size - Number of employees to process */
//
// Returns: Nothing (call by refernce)
//
//**************************************************************/
void getInput (long emp_num[], float emp_hrs[], int size)
{
int count; /* loop counter */
/* Get Hours for each employee */
for (count = 0; count < size; ++count)
{
printf("\nEnter hours worked by emp # %06li: ", emp_num[count]);
scanf ("%f", &emp_hrs[count]);
}
printf("\n\n");
}
/* Add other functions here as needed */
/* ... remember your comment block headers for each function */