Question: So i am trying to finish this code using structures and could use some guidance. Not sure what i am doing wrong. /*Define and Includes
So i am trying to finish this code using structures and could use some guidance. Not sure what i am doing wrong.
/*Define and Includes */
#include
/* Define Constants */
#define NUM_EMPL 5
#define STD_HOURS 40.0
#define OT_RATE 1.5
/* Define a global structure to pass employee data between functions */
/* Note that the structure type is global, but you don't want a variable */
/* of that type to be global. Best to declare a variable of that type */
/* in a function like main or another function and pass as needed. */
struct employee
{
long int clockNumber;
float wageRate;
float hours;
float overtimeHrs;
float grossPay;
};
/* define prototypes here for each function except main */
float getHours (long int clockNumber);
void printHeader (void);
void printEmp (long int clockNumber, float wageRate, float hours,
float overtimeHrs, float grossPay);
/* TODO: Add your other function prototypes here */
int main ()
{
/* Set up a local variable to store the employee information */
struct employee employeeData[NUM_EMPL] = {
{ 98401, 10.60 },
{ 526488, 9.75 },
{ 765349, 10.50 }, /* initialize clock and wage values */
{ 34645, 12.25 },
{ 127615, 8.35 }
};
int i; /* loop and array index */
/* Call functions as needed to read and calculate information */
for (i = 0; i < NUM_EMPL; ++i)
{
/* Prompt for the number of hours worked by the employee */
employeeData[i].hours = getHours (employeeData[i].clockNumber);
/* TODO: Add other function calls as needed to calculate overtime and gross */
} /* for */
/* Print the column headers */
printHeader();
/* print out each employee */
for (i = 0; i < NUM_EMPL; ++i)
{
printEmp (employeeData[i].clockNumber,
employeeData[i].wageRate,
employeeData[i].hours,
employeeData[i].overtimeHrs,
employeeData[i].grossPay);
}
return(0); /* success */
} /* main */
//**************************************************************
// Function: getHours
//
// Purpose: Obtains input from user, the number of hours worked
// per employee and stores the result in a local variable
// that is passed back to the calling function.
//
// Parameters: clockNumber - The unique employee ID
//
// Returns: hoursWorked - hours worked in a given week
//
//**************************************************************
float getHours (long int clockNumber)
{
float hoursWorked; /* hours worked in a given week */
/* Read in hours for employee */
printf(" Enter hours worked by emp # %06li: ", clockNumber);
scanf ("%f", &hoursWorked);
/* return hours back to the calling function */
return (hoursWorked);
}
//**************************************************************
// Function: printHeader
//
// Purpose: Prints the initial table header information.
//
// Parameters: none
//
// Returns: void
//
//**************************************************************
void printHeader (void)
{
printf (" *** Pay Calculator *** ");
/* print the table header */
printf(" Clock# Wage Hours OT Gross ");
printf("------------------------------------------------ ");
}
//*************************************************************
// Function: printEmp
//
// Purpose: Prints out all the information for an employee
// in a nice and orderly table format.
//
// Parameters:
//
// clockNumber - unique employee ID
// wageRate - hourly wage rate
// hours - Hours worked for the week
// overtimeHrs - overtime hours worked in a week
// grossPay - gross pay for the week
//
// Returns: void
//
//**************************************************************
void printEmp (long int clockNumber, float wageRate, float hours,
float overtimeHrs, float grossPay)
{
/* Print out a single employee */
printf(" %06li %5.2f %4.1f %4.1f %8.2f",
clockNumber, wageRate, hours,
overtimeHrs, grossPay);
}
/* TODO: Add your functions here */
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
