#include <stdio.h>
#define NUM_EMPL 5 /* number of employees to process */
#define OVERTIME_RATE 1.5f /* Overtime pay rate is 1.5 times regular wage */
#define STD_WORK_WEEK 40.f /* 40 hours equals standard work week for pay calculation; beyond that is Overtime Pay */
/* Global structure below for the employee with members of Employee ID, Hourly Wage, Hours Worked, */
/* Overtime Hours Worked, and Gross Pay Earned */
struct employee
{
int id_number;
float wage;
float hours;
float overtime;
float gross;
} ;
/* Function Prototypes */
struct employee* readEmployee ( struct employee emp[ NUM_EMPL] ) ;
void Output_Results_Screen ( struct employee emp [ NUM_EMPL] ) ;
/* add functions here */
/* each function needs the description box */
struct employee* readEmployee( struct employee emp[ NUM_EMPL] )
{
int i = 0 ;
for ( i = 0 ; i < NUM_EMPL; i++ ) {
printf ( "\n Enter the number of hours of employee %d: " , emp
[ i
] .
id_number ) ; scanf ( "%f" , & emp
[ i
] .
hours ) ; if ( emp[ i] .hours > STD_WORK_WEEK) {
emp[ i] .overtime = emp[ i] .hours - STD_WORK_WEEK;
emp[ i] .gross = ( STD_WORK_WEEK * emp[ i] .wage + emp[ i] .overtime * emp[ i] .wage * OVERTIME_RATE) ;
} else {
emp[ i] .overtime = 0 ;
emp[ i] .gross = ( emp[ i] .hours * emp[ i] .wage ) ;
}
}
return emp;
}
void Output_Results_Screen ( struct employee emp [ NUM_EMPL] )
{
int i;
printf ( "\n \t ----------------------------------------------------------\n " ) ; printf ( "\t Clock # Wage Hours OT Gross\n " ) ; printf ( "\t ----------------------------------------------------------\n " ) ;
for ( i = 0 ; i < NUM_EMPL; i++ ) {
printf ( "\t %06i %5.2f %5.1f %5.1f %7.2f\n " , emp
[ i
] .
id_number , emp
[ i
] .
wage , emp
[ i
] .
hours , emp
[ i
] .
overtime , emp[ i] .gross ) ;
}
}
int main( )
{
/* Set up a local variable to store the employee information */
struct employee emps[ NUM_EMPL] = {
{ 98401 , 10.60 } ,
{ 526488 , 9.75 } ,
{ 765349 , 10.50 } ,
{ 34645 , 12.25 } ,
{ 127615 , 8.35 }
} ;
readEmployee( emps) ;
Output_Results_Screen ( emps) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE5VTV9FTVBMIDUgLyogbnVtYmVyIG9mIGVtcGxveWVlcyB0byBwcm9jZXNzICovCiNkZWZpbmUgT1ZFUlRJTUVfUkFURSAxLjVmIC8qIE92ZXJ0aW1lIHBheSByYXRlIGlzIDEuNSB0aW1lcyByZWd1bGFyIHdhZ2UgKi8KI2RlZmluZSBTVERfV09SS19XRUVLIDQwLmYgLyogNDAgaG91cnMgZXF1YWxzIHN0YW5kYXJkIHdvcmsgd2VlayBmb3IgcGF5IGNhbGN1bGF0aW9uOyBiZXlvbmQgdGhhdCBpcyBPdmVydGltZSBQYXkgKi8KCi8qIEdsb2JhbCBzdHJ1Y3R1cmUgYmVsb3cgZm9yIHRoZSBlbXBsb3llZSB3aXRoIG1lbWJlcnMgb2YgRW1wbG95ZWUgSUQsIEhvdXJseSBXYWdlLCBIb3VycyBXb3JrZWQsICovCi8qIE92ZXJ0aW1lIEhvdXJzIFdvcmtlZCwgYW5kIEdyb3NzIFBheSBFYXJuZWQgKi8KCnN0cnVjdCBlbXBsb3llZQp7CmludCBpZF9udW1iZXI7CmZsb2F0IHdhZ2U7CmZsb2F0IGhvdXJzOwpmbG9hdCBvdmVydGltZTsKZmxvYXQgZ3Jvc3M7Cn07CgovKiBGdW5jdGlvbiBQcm90b3R5cGVzICovCgpzdHJ1Y3QgZW1wbG95ZWUqIHJlYWRFbXBsb3llZSAoc3RydWN0IGVtcGxveWVlIGVtcFtOVU1fRU1QTF0pOwp2b2lkIE91dHB1dF9SZXN1bHRzX1NjcmVlbiAoc3RydWN0IGVtcGxveWVlIGVtcCBbTlVNX0VNUExdKTsKCi8qIGFkZCBmdW5jdGlvbnMgaGVyZSAqLwovKiBlYWNoIGZ1bmN0aW9uIG5lZWRzIHRoZSBkZXNjcmlwdGlvbiBib3ggKi8Kc3RydWN0IGVtcGxveWVlKiByZWFkRW1wbG95ZWUoc3RydWN0IGVtcGxveWVlIGVtcFtOVU1fRU1QTF0pCnsKaW50IGkgPSAwOwpmb3IgKGkgPSAwOyBpIDwgTlVNX0VNUEw7IGkrKykgewpwcmludGYoIlxuRW50ZXIgdGhlIG51bWJlciBvZiBob3VycyBvZiBlbXBsb3llZSAlZDogIiwgZW1wW2ldLmlkX251bWJlcik7CnNjYW5mKCIlZiIsICZlbXBbaV0uaG91cnMpOwppZiAoZW1wW2ldLmhvdXJzID4gU1REX1dPUktfV0VFSykgewplbXBbaV0ub3ZlcnRpbWUgPSBlbXBbaV0uaG91cnMgLSBTVERfV09SS19XRUVLOwplbXBbaV0uZ3Jvc3MgPSAoU1REX1dPUktfV0VFSyAqIGVtcFtpXS53YWdlICsgZW1wW2ldLm92ZXJ0aW1lICogZW1wW2ldLndhZ2UgKiBPVkVSVElNRV9SQVRFKTsKfSBlbHNlIHsKZW1wW2ldLm92ZXJ0aW1lID0gMDsKZW1wW2ldLmdyb3NzID0gKGVtcFtpXS5ob3VycyAqIGVtcFtpXS53YWdlKTsKfQp9CnJldHVybiBlbXA7Cn0KCnZvaWQgT3V0cHV0X1Jlc3VsdHNfU2NyZWVuIChzdHJ1Y3QgZW1wbG95ZWUgZW1wIFtOVU1fRU1QTF0gKQp7CmludCBpOwoKcHJpbnRmICgiXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwpwcmludGYgKCJcdENsb2NrICMgV2FnZSBIb3VycyBPVCBHcm9zc1xuIik7CnByaW50ZiAoIlx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7Cgpmb3IgKGkgPSAwOyBpIDwgTlVNX0VNUEw7IGkrKykgewpwcmludGYoIlx0JTA2aSAlNS4yZiAlNS4xZiAlNS4xZiAlNy4yZlxuIiwgZW1wW2ldLmlkX251bWJlciwgZW1wW2ldLndhZ2UsIGVtcFtpXS5ob3VycywgZW1wW2ldLm92ZXJ0aW1lLAplbXBbaV0uZ3Jvc3MpOwp9Cn0KCmludCBtYWluKCkKewovKiBTZXQgdXAgYSBsb2NhbCB2YXJpYWJsZSB0byBzdG9yZSB0aGUgZW1wbG95ZWUgaW5mb3JtYXRpb24gKi8Kc3RydWN0IGVtcGxveWVlIGVtcHNbTlVNX0VNUExdID0gewp7IDk4NDAxLCAxMC42MCB9LAp7IDUyNjQ4OCwgOS43NSB9LAp7IDc2NTM0OSwgMTAuNTAgfSwKeyAzNDY0NSwgMTIuMjUgfSwKeyAxMjc2MTUsIDguMzV9Cn07CnJlYWRFbXBsb3llZShlbXBzKTsKT3V0cHV0X1Jlc3VsdHNfU2NyZWVuIChlbXBzKTsKCnJldHVybiAwOwp9