//********************************************************
//
// Assignment 6 - structure
//
// Name: Jesus Castillo
//
// Class: C Programming, Summer, 2025
//
// Date: 7/06/2025
//
// Description: Write a C program that will calculate
// thegross pay of a set of employees. Continue
// to use all the features from your past assignments.
// In particular, expand upon your previous assignment
// and continue to use multiple functions and constants
// to help with various tasks called upon by your program.
//
// All functions are called by value
//
//********************************************************
#include <stdio.h>
// constants
#define SIZE 5
#define OVERTIME_RATE 1.5f
#define STD_WORK_WEEK 40.0f
#define OT_RATE 1.5
#define STD_HOURS 40.0
struct employee {
long int clockNumber;
float wageRate;
float hours;
float overtimeHrs;
float grossPay;
} ;
int main( ) {
struct employee employeeData[ SIZE] = {
{ 98401 , 10.60 , 51 , 0 , 0 } ,
{ 526488 , 9.75 , 42.5 , 0 , 0 } ,
{ 765349 , 10.50 , 37.0 , 0 , 0 } ,
{ 34645 , 12.25 , 45.0 , 0 , 0 } ,
{ 127615 , 8.35 , 0 , 0 , 0 }
} ;
for ( int i = 0 ; i < SIZE; ++ i) {
printf ( "Enter hours worked by employee %06ld: " , employeeData
[ i
] .
clockNumber ) ;
printf ( "%f" , employeeData
[ i
] .
hours ) ;
if ( employeeData[ i] .hours > STD_HOURS) {
employeeData[ i] .overtimeHrs = employeeData[ i] .hours - STD_HOURS;
} else {
employeeData[ i] .overtimeHrs = 0.0f ;
}
float regularHours = ( employeeData[ i] .hours > STD_HOURS) ? STD_HOURS : employeeData[ i] .hours ;
employeeData[ i] .grossPay = ( regularHours * employeeData[ i] .wageRate ) + ( employeeData[ i] .overtimeHrs * employeeData[ i] .wageRate * OT_RATE) ;
}
printf ( "----------------------------------------\n " ) ; printf ( "\n Clock# Wage Hours OT Gross\n " ) ; printf ( "----------------------------------------\n " ) ; for ( int i = 0 ; i < SIZE; ++ i) {
printf ( "%06ld %5.2f %5.1f %5.1f %8.2f\n " , employeeData[ i] .clockNumber ,
employeeData[ i] .wageRate ,
employeeData[ i] .hours ,
employeeData[ i] .overtimeHrs ,
employeeData[ i] .grossPay ) ;
}
return 0 ;
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLwovLyBBc3NpZ25tZW50IDYgLSBzdHJ1Y3R1cmUKLy8KLy8gTmFtZTogSmVzdXMgQ2FzdGlsbG8KLy8KLy8gQ2xhc3M6IEMgUHJvZ3JhbW1pbmcsIFN1bW1lciwgMjAyNQovLwovLyBEYXRlOiA3LzA2LzIwMjUKLy8KLy8gRGVzY3JpcHRpb246IFdyaXRlIGEgQyBwcm9ncmFtIHRoYXQgd2lsbCBjYWxjdWxhdGUgCi8vIHRoZWdyb3NzIHBheSBvZiBhIHNldCBvZiBlbXBsb3llZXMuICBDb250aW51ZQovLyB0byB1c2UgYWxsIHRoZSBmZWF0dXJlcyBmcm9tIHlvdXIgcGFzdCBhc3NpZ25tZW50cy4KLy8gSW4gcGFydGljdWxhciwgZXhwYW5kIHVwb24geW91ciBwcmV2aW91cyBhc3NpZ25tZW50Ci8vIGFuZCBjb250aW51ZSB0byB1c2UgbXVsdGlwbGUgZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKLy8gdG8gaGVscCB3aXRoIHZhcmlvdXMgdGFza3MgY2FsbGVkIHVwb24gYnkgeW91ciBwcm9ncmFtLgovLwovLyBBbGwgZnVuY3Rpb25zIGFyZSBjYWxsZWQgYnkgdmFsdWUKLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgojaW5jbHVkZSA8c3RkaW8uaD4KCi8vIGNvbnN0YW50cwojZGVmaW5lIFNJWkUgNQojZGVmaW5lIE9WRVJUSU1FX1JBVEUgMS41ZgojZGVmaW5lIFNURF9XT1JLX1dFRUsgNDAuMGYKI2RlZmluZSBPVF9SQVRFIDEuNQojZGVmaW5lIFNURF9IT1VSUyA0MC4wCgpzdHJ1Y3QgZW1wbG95ZWUgewpsb25nIGludCBjbG9ja051bWJlcjsKZmxvYXQgd2FnZVJhdGU7CmZsb2F0IGhvdXJzOwpmbG9hdCBvdmVydGltZUhyczsKZmxvYXQgZ3Jvc3NQYXk7Cgp9OwoKaW50IG1haW4oKSB7CgoJc3RydWN0IGVtcGxveWVlIGVtcGxveWVlRGF0YVtTSVpFXSA9IHsKCQl7OTg0MDEsIDEwLjYwLCA1MSwgMCwgMH0sCgkJezUyNjQ4OCwgOS43NSwgNDIuNSwgMCwgMH0sCiAgICAgICAgezc2NTM0OSwgMTAuNTAsIDM3LjAsIDAsIDB9LAogICAgICAgIHszNDY0NSwgMTIuMjUsIDQ1LjAsIDAsIDB9LAogICAgICAgIHsxMjc2MTUsIDguMzUsIDAsIDAsIDB9Cgl9OwoJCglmb3IgKGludCBpID0gMDsgaSA8IFNJWkU7ICsraSkgewogICAgICAgIHByaW50ZigiXG4iKTsKCXByaW50ZigiRW50ZXIgaG91cnMgd29ya2VkIGJ5IGVtcGxveWVlICUwNmxkOiAiICwgZW1wbG95ZWVEYXRhW2ldLmNsb2NrTnVtYmVyKTsKCQoJcHJpbnRmKCIlZiIsIGVtcGxveWVlRGF0YVtpXS5ob3Vycyk7CgkKCWlmIChlbXBsb3llZURhdGFbaV0uaG91cnMgPiBTVERfSE9VUlMpIHsKICAgICAgICBlbXBsb3llZURhdGFbaV0ub3ZlcnRpbWVIcnMgPSBlbXBsb3llZURhdGFbaV0uaG91cnMgLSBTVERfSE9VUlM7CiAgICB9IGVsc2UgewogICAgICAgIGVtcGxveWVlRGF0YVtpXS5vdmVydGltZUhycyA9IDAuMGY7CiAgICB9CiAgICAKICAgIAogICAgZmxvYXQgcmVndWxhckhvdXJzID0gKGVtcGxveWVlRGF0YVtpXS5ob3VycyA+IFNURF9IT1VSUykgPyBTVERfSE9VUlMgOiBlbXBsb3llZURhdGFbaV0uaG91cnM7CiAgICBlbXBsb3llZURhdGFbaV0uZ3Jvc3NQYXkgPSAocmVndWxhckhvdXJzICogZW1wbG95ZWVEYXRhW2ldLndhZ2VSYXRlKSArIChlbXBsb3llZURhdGFbaV0ub3ZlcnRpbWVIcnMgKiBlbXBsb3llZURhdGFbaV0ud2FnZVJhdGUgKiBPVF9SQVRFKTsKCgkKCQoJfQoJcHJpbnRmKCJcbiIpOwoJcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKIHByaW50ZigiXG5DbG9jayMgICBXYWdlICAgSG91cnMgICBPVCAgICAgR3Jvc3NcbiIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgU0laRTsgKytpKSB7CiAgICBwcmludGYoIiUwNmxkICAlNS4yZiAgJTUuMWYgICU1LjFmICAlOC4yZlxuIiwKICAgICAgICAgICBlbXBsb3llZURhdGFbaV0uY2xvY2tOdW1iZXIsCiAgICAgICAgICAgZW1wbG95ZWVEYXRhW2ldLndhZ2VSYXRlLAogICAgICAgICAgIGVtcGxveWVlRGF0YVtpXS5ob3VycywKICAgICAgICAgICBlbXBsb3llZURhdGFbaV0ub3ZlcnRpbWVIcnMsCiAgICAgICAgICAgZW1wbG95ZWVEYXRhW2ldLmdyb3NzUGF5KTsKfQkJCgpyZXR1cm4gMDsKCQp9