//*******************************************************
//
// Assignment 4 - Arrays
//
// Name: Cooper Lefevra
//
// Class: C Programming, Spring 2025
//
// Date: 02/20/2025
//
// Description: Program which determines overtime and
// gross pay for a set of employees with outputs sent
// to standard output (the screen).
//
//********************************************************
#include <stdio.h>
// constants to use
#define SIZE 5 // number of employees to process
#define STD_HOURS 40.0 // normal work week hours before overtime
#define OT_RATE 1.5 // time and half overtime setting
int main( )
{
// Declare variables needed for the program
// Recommend an array for clock, wage, hours,
// ... and overtime hours and gross.
// Recommend arrays also for normal pay and overtime pay
// It is OK to pre-fill clock and wage values ... or you can prompt for them
// unique employee identifier
long int clockNumber [ SIZE] = { 98401 , 526488 , 765349 , 34645 , 127615 } ;
float grossPay [ SIZE] ; // weekly gross pay - normal pay + overtime pay
float hours [ SIZE] ; // hours worked in a given week
int i; // loop and array index
float normalPay [ SIZE] ; // normal weekly pay without any overtime
float overtimeHrs[ SIZE] ; // overtime hours worked in a given week
float overtimePay [ SIZE] ; // overtime pay for a given week
// hourly pay for each employee
float wageRate [ SIZE] = { 10.6 , 9.75 , 10.5 , 12.25 , 8.35 } ;
printf ( "\n *** Pay Calculator ***\n \n " ) ;
// Process each employee one at a time
for ( i = 0 ; i < SIZE; i++ )
{
// TODO - Prompt and Read in hours worked for employee
printf ( "\n Enter number of hours worked for employee: " ) ;
// Calculate overtime and gross pay for employee
if ( hours[ i] >= STD_HOURS)
{
overtimeHrs[ i] = hours[ i] - STD_HOURS;
// TODO: Calculate arrays normalPay and overtimePay with overtime
normalPay[ i] = STD_HOURS * wageRate[ i] ;
overtimePay[ i] = overtimeHrs[ i] * ( OT_RATE * wageRate[ i] ) ;
}
else // no OT
{
overtimeHrs[ i] = 0 ;
// TODO: Calculate arrays normalPay and overtimePay without overtime
normalPay[ i] = wageRate[ i] * hours[ i] ;
overtimePay[ i] = overtimeHrs[ i] * ( OT_RATE * wageRate[ i] ) ; // should be no overtime hrs to calc
}
// Calculate Gross Pay
grossPay[ i] = normalPay[ i] + overtimePay[ i] ;
}
// TODO: Print a nice table header
printf ( "\n Employee Payment Chart \n " ) ; printf ( "Clock#, Wage, Hours, OT, Gross" ) ; //column label printf ( "\n -------------------------------" ) ; // Now that we have all the information in our arrays, we can
// Access each employee and print to screen or file
for ( i = 0 ; i < SIZE; i++ )
{
printf ( "\n %li, %.2f, %.2f, %.2f %.2f \n " , clockNumber
[ i
] , wageRate
[ i
] , hours
[ i
] , overtimeHrs
[ i
] , grossPay
[ i
] ) ; // TODO: Print employee information from your arrays
}
return ( 0 ) ;
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vCi8vIEFzc2lnbm1lbnQgNCAtIEFycmF5cwovLwovLyBOYW1lOiBDb29wZXIgTGVmZXZyYQovLwovLyBDbGFzczogQyBQcm9ncmFtbWluZywgU3ByaW5nIDIwMjUKLy8KLy8gRGF0ZTogMDIvMjAvMjAyNQovLwovLyBEZXNjcmlwdGlvbjogUHJvZ3JhbSB3aGljaCBkZXRlcm1pbmVzIG92ZXJ0aW1lIGFuZCAKLy8gZ3Jvc3MgcGF5IGZvciBhIHNldCBvZiBlbXBsb3llZXMgd2l0aCBvdXRwdXRzIHNlbnQgCi8vIHRvIHN0YW5kYXJkIG91dHB1dCAodGhlIHNjcmVlbikuCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiNpbmNsdWRlIDxzdGRpby5oPgoKLy8gY29uc3RhbnRzIHRvIHVzZQojZGVmaW5lIFNJWkUgNSAgICAgICAgICAgLy8gbnVtYmVyIG9mIGVtcGxveWVlcyB0byBwcm9jZXNzCiNkZWZpbmUgU1REX0hPVVJTIDQwLjAgICAvLyBub3JtYWwgd29yayB3ZWVrIGhvdXJzIGJlZm9yZSBvdmVydGltZQojZGVmaW5lIE9UX1JBVEUgMS41ICAgICAgLy8gdGltZSBhbmQgaGFsZiBvdmVydGltZSBzZXR0aW5nCgppbnQgbWFpbigpCnsKCgogICAgLy8gRGVjbGFyZSB2YXJpYWJsZXMgbmVlZGVkIGZvciB0aGUgcHJvZ3JhbQogICAgLy8gUmVjb21tZW5kIGFuIGFycmF5IGZvciBjbG9jaywgd2FnZSwgaG91cnMsCiAgICAvLyAuLi4gYW5kIG92ZXJ0aW1lIGhvdXJzIGFuZCBncm9zcy4KICAgIC8vIFJlY29tbWVuZCBhcnJheXMgYWxzbyBmb3Igbm9ybWFsIHBheSBhbmQgb3ZlcnRpbWUgcGF5ICAgICAgICAgICAgICAgIAogICAgLy8gSXQgaXMgT0sgdG8gcHJlLWZpbGwgY2xvY2sgYW5kIHdhZ2UgdmFsdWVzIC4uLiBvciB5b3UgY2FuIHByb21wdCBmb3IgdGhlbQoKICAgIC8vIHVuaXF1ZSBlbXBsb3llZSBpZGVudGlmaWVyCiAgICBsb25nIGludCBjbG9ja051bWJlciBbU0laRV0gPSB7OTg0MDEsIDUyNjQ4OCwgNzY1MzQ5LCAzNDY0NSwgMTI3NjE1fTsKIAogICAgZmxvYXQgZ3Jvc3NQYXkgW1NJWkVdOyAgICAgLy8gd2Vla2x5IGdyb3NzIHBheSAtIG5vcm1hbCBwYXkgKyBvdmVydGltZSBwYXkgICAgICAgICAKICAgIGZsb2F0IGhvdXJzIFtTSVpFXTsgICAgICAgIC8vIGhvdXJzIHdvcmtlZCBpbiBhIGdpdmVuIHdlZWsKICAgIGludCBpOyAgICAgICAgICAgICAgICAgICAgIC8vIGxvb3AgYW5kIGFycmF5IGluZGV4CiAgICBmbG9hdCBub3JtYWxQYXkgW1NJWkVdOyAgICAvLyBub3JtYWwgd2Vla2x5IHBheSB3aXRob3V0IGFueSBvdmVydGltZQogICAgZmxvYXQgb3ZlcnRpbWVIcnNbU0laRV07ICAgLy8gb3ZlcnRpbWUgaG91cnMgd29ya2VkIGluIGEgZ2l2ZW4gd2VlawogICAgZmxvYXQgb3ZlcnRpbWVQYXkgW1NJWkVdOyAgLy8gb3ZlcnRpbWUgcGF5IGZvciBhIGdpdmVuIHdlZWsKCiAgICAvLyBob3VybHkgcGF5IGZvciBlYWNoIGVtcGxveWVlCiAgICBmbG9hdCB3YWdlUmF0ZSBbU0laRV0gPSB7MTAuNiwgOS43NSwgMTAuNSwgMTIuMjUsIDguMzV9OyAKCiAgICBwcmludGYgKCJcbioqKiBQYXkgQ2FsY3VsYXRvciAqKipcblxuIik7CgogICAgLy8gUHJvY2VzcyBlYWNoIGVtcGxveWVlIG9uZSBhdCBhIHRpbWUKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCiAgICB7CgkKICAgICAgICAvLyBUT0RPIC0gUHJvbXB0IGFuZCBSZWFkIGluIGhvdXJzIHdvcmtlZCBmb3IgZW1wbG95ZWUKCQlwcmludGYoIlxuIEVudGVyIG51bWJlciBvZiBob3VycyB3b3JrZWQgZm9yIGVtcGxveWVlOiAiKTsKCQlzY2FuZigiJWYiLCAmaG91cnNbaV0pOyAKCQlwcmludGYoIiUuMmYgXG4iLCBob3Vyc1tpXSk7CgkKICAgICAgICAvLyBDYWxjdWxhdGUgb3ZlcnRpbWUgYW5kIGdyb3NzIHBheSBmb3IgZW1wbG95ZWUKICAgICAgICBpZiAoaG91cnNbaV0gPj0gU1REX0hPVVJTKQogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSBob3Vyc1tpXSAtIFNURF9IT1VSUzsKICAgICAgICAgICAgLy8gVE9ETzogQ2FsY3VsYXRlIGFycmF5cyBub3JtYWxQYXkgYW5kIG92ZXJ0aW1lUGF5IHdpdGggb3ZlcnRpbWUKICAgICAgICAgICAgbm9ybWFsUGF5W2ldID0gU1REX0hPVVJTICogd2FnZVJhdGVbaV07CiAgICAgICAgICAgIG92ZXJ0aW1lUGF5W2ldID0gb3ZlcnRpbWVIcnNbaV0gKiAoT1RfUkFURSAqIHdhZ2VSYXRlW2ldKTsKICAgICAgICB9CiAgICAgICAgZWxzZSAvLyBubyBPVAogICAgICAgIHsKICAgICAgICAgICAgb3ZlcnRpbWVIcnNbaV0gPSAwOwogICAgICAgICAgICAvLyBUT0RPOiBDYWxjdWxhdGUgYXJyYXlzIG5vcm1hbFBheSBhbmQgb3ZlcnRpbWVQYXkgd2l0aG91dCBvdmVydGltZQoJCQlub3JtYWxQYXlbaV0gPSB3YWdlUmF0ZVtpXSAqIGhvdXJzW2ldOwoJCQlvdmVydGltZVBheVtpXSA9IG92ZXJ0aW1lSHJzW2ldICogKE9UX1JBVEUgKiB3YWdlUmF0ZVtpXSk7IC8vIHNob3VsZCBiZSBubyBvdmVydGltZSBocnMgdG8gY2FsYwogICAgICAgIH0KCiAgICAgICAgLy8gQ2FsY3VsYXRlIEdyb3NzIFBheQogICAgICAgIGdyb3NzUGF5W2ldID0gbm9ybWFsUGF5W2ldICsgb3ZlcnRpbWVQYXlbaV07CiAgICB9CgogICAgLy8gVE9ETzogUHJpbnQgYSBuaWNlIHRhYmxlIGhlYWRlcgoJCXByaW50ZigiXG4gRW1wbG95ZWUgUGF5bWVudCBDaGFydCBcbiIpOwoJCXByaW50ZigiQ2xvY2sjLCBXYWdlLCBIb3VycywgT1QsIEdyb3NzIik7Ly9jb2x1bW4gbGFiZWwKCQlwcmludGYoIlxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbiBpbiBvdXIgYXJyYXlzLCB3ZSBjYW4KICAgIC8vIEFjY2VzcyBlYWNoIGVtcGxveWVlIGFuZCBwcmludCB0byBzY3JlZW4gb3IgZmlsZQogICAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKICAgIHsKICAgIAlwcmludGYoIlxuICVsaSwgJS4yZiwgJS4yZiwgJS4yZiAlLjJmIFxuIiwgY2xvY2tOdW1iZXJbaV0sIHdhZ2VSYXRlW2ldLCBob3Vyc1tpXSwgb3ZlcnRpbWVIcnNbaV0sIGdyb3NzUGF5W2ldKTsKICAgICAgICAvLyBUT0RPOiBQcmludCBlbXBsb3llZSBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgYXJyYXlzCiAgICB9CgogICAgcmV0dXJuKDApOwp9
stdout
*** Pay Calculator ***
Enter number of hours worked for employee: 51.00
Enter number of hours worked for employee: 42.50
Enter number of hours worked for employee: 37.00
Enter number of hours worked for employee: 45.00
Enter number of hours worked for employee: 0.00
Employee Payment Chart
Clock#, Wage, Hours, OT, Gross
-------------------------------
98401, 10.60, 51.00, 11.00 598.90
526488, 9.75, 42.50, 2.50 426.56
765349, 10.50, 37.00, 0.00 388.50
34645, 12.25, 45.00, 5.00 581.88
127615, 8.35, 0.00, 0.00 0.00