- //******************************************************** 
- // 
- // Assignment 5 - Functions 
- // 
- // Name: Brian Fallon 
- // 
- // Class: C Programming, Spring 2025 
- // 
- // Date: March 2, 2025 
- // 
- // Description: Program which determines overtime and  
- // gross pay for a set of employees with outputs sent  
- // to standard output (the screen). 
- // 
- // All functions are called by value 
- // 
- //******************************************************** 
-   
- #include <stdio.h> 
-   
- // constants 
- #define SIZE 5 
- #define OVERTIME_RATE 1.5f 
- #define STD_WORK_WEEK 40.0f 
-   
- // function prototypes 
- float getHours (long int clockNumber); 
- void printHeader (void); 
- void printEmp  (long int clockNumber, float wageRate, float hoursTotal, 
-                 float overtimeHrs, float grossPay); 
-   
- // TODO:  Add other function prototypes here as needed 
- float calcOT (float hoursTotal); // Function Prototype 
- float calcGross (float wageRate, float hoursTotal, float overtimeHrs); // Function Prototype 
-   
- int main() 
- { 
-   
-     /* Variable Declarations */ 
-   
-     long  int clockNumber[SIZE] = {98401,526488,765349,34645,127615}; // ID 
-     float grossPay[SIZE];     // gross pay 
-     float hoursTotal[SIZE];   // hours worked in a given week 
-     int   i;                  // loop and array index 
-     float overtimeHrs[SIZE];  // overtime hours 
-     float wageRate[SIZE] = {10.60,9.75,10.50,12.25,8.35}; // hourly wage rate 
-     float overtimePay [SIZE]; // overtime pay for a given week 
-     float normalPay [SIZE];   // normal weekly pay without any overtime 
-   
-     // process each employee 
-     for (i = 0; i < SIZE; ++i) 
-     { 
-   
-         // Read in hours for employee 
-         hoursTotal[i] = getHours (clockNumber[i]);  
-   
-         // TODO: Function call to calculate overtime hours 
- 			overtimeHrs[i] = calcOT(hoursTotal[i]); 
-   
-         // TODO: Function call to calculate gross pay 
- 		   grossPay[i] = calcGross(wageRate[i], hoursTotal[i], overtimeHrs[i]); 
-   
-     } // End for 
-   
-     // print the header info 
-     printHeader(); 
-   
-     // print out each employee 
-     for (i = 0; i < SIZE; ++i) 
-     { 
-   
-         // Print all the employees - call by value 
-         printEmp (clockNumber[i], wageRate[i], hoursTotal[i], 
-                    overtimeHrs[i], grossPay[i]); 
-   
-     } // End for 
-   
-     return (0); 
-   
- } // 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) //Called Function 
- {  
-   
-     float hoursWorked; // hours worked in a given week 
-   
-     // Read in hours for employee 
-     printf("\nEnter hours worked by emp # %06li: ",-  clockNumber );
 
-     scanf ("%f", &- hoursWorked );
 
-   
-     // return hours back to the calling function 
-     return (hoursWorked); 
-   
- } // getHours 
-   
- //************************************************************** 
- // Function: printHeader 
- //  
- // Purpose: Prints the initial table header information. 
- //  
- // Parameters: none 
- //  
- // Returns: void 
- //   
- //************************************************************** 
-   
- void printHeader (void)  
- {  
-   
-     printf ("\n\n*** Pay Calculator ***\n"); 
-   
-     // print the table header 
-     printf("\nClock# Wage  Hours  OT      Gross\n"); 
-     printf("------------------------------------------------\n"); 
-   
- } // printHeader 
-   
- //*************************************************************  
- // 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 hoursTotal, 
-                 float overtimeHrs, float grossPay) 
- { 
-   
-     // print the employee 
-     // TODO: add code to print out a single employee 
-     	printf("%06d %5.2f %5.1f %5.1f %8.2f\n",  
-                 clockNumber, wageRate, hoursTotal, overtimeHrs, grossPay); 
- } //printEmp 
-   
-   
- // TODO: Add other functions here as needed 
- // ... remember your comment block headers for each function  
-   
- //*************************************************************  
- // Function: calcOT 
- //  
- // Purpose:  
- //  
- // Parameters:  
- // 
- //      
- //  
- // Returns: overtimeHrs 
- //   
- //************************************************************** 
- // 
- float calcOT (float hoursTotal) // Function Definition 
- { 
- 	float overtimeHrs;  
-   
- 	if (hoursTotal > STD_WORK_WEEK) 
-         { 
-             overtimeHrs = hoursTotal - STD_WORK_WEEK; 
-   
-         } // End if 
-   
- 	return (overtimeHrs); 
- } // calcOT 
-   
- //*************************************************************  
- // Function: calcGross  
- //  
- // Purpose:  
- //  
- // Parameters:  
- // 
- //      
- //  
- // Returns: grossPay 
- //   
- //************************************************************** 
- // 
- float calcGross (float wageRate, float hoursTotal, float overtimeHrs) // Function Definition 
- {  
- 	float grossPay; 
- 	float normalPay; 
- 	float overtimePay; 
-   
- 	if (hoursTotal > STD_WORK_WEEK) 
- 	        { 
- 	            overtimeHrs = hoursTotal - STD_WORK_WEEK; 
- 	    		overtimePay = overtimeHrs * (OVERTIME_RATE*wageRate); 
- 	    		normalPay= STD_WORK_WEEK * wageRate; 
- 	        } // End if 
- 	        else // No Overtime 
- 	        { 
- 	            overtimeHrs = 0; 
- 				normalPay=wageRate*hoursTotal; 
- 	        } // End else 
- 		 grossPay = normalPay + overtimePay; 
-   
- 	return (grossPay); 
- } // calcGross 
- // 
- //**************************************************************