/*--------------------------------------------------------------------------------
**
** HOMEWORK: #5 Structures
**
** Name: [Enter your Name]
**
** Class: C Programming
**
** Date: [enter the date]
**
** Description: This program prompts the user for the number of hours
** worked for each employee. It then calculates gross pay
** including overtime and displays the results in table. Functions
** and structures are used.
**-------------------------------------------------------------------------------*/
/*Define and Includes */
#include <stdio.h>
/* Define Constants */
#define NUM_EMPL 5
#define OVERTIME_RATE 1.5f
#define STD_WORK_WEEK 40f
/* 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 id_number;
float wage;
float hours;
float overtime;
float gross;
};
/* define prototypes here for each function except main */
void Output_results_screen (struct employee [ ], int size);
/*************************************************************************
** Function: Output_results_screen
**
** Purpose: Outputs to screen in a table format the following
** information about an employee: Clock, Wage,
** Hours, Overtime, and Gross Pay.
**
** Parameters: employeeData - an array of structures containing
** employee information
** size - number of employees to process
**
** Returns: Nothing (void)
**
*************************************************************************/
void Output_results_screen ( struct employee employeeData[], int size )
{
int i; /* loop index */
/* printf information about each employee */
for (i = 0; i < size ; ++i)
{
printf(" %06li %5.2f %4.1f %4.1f %8.2f \n",
employeeData[i].id_number, employeeData[i].wage, employeeData[i].hours,
employeeData[i].overtime, employeeData[i].gross);
} /* for */
} /* Output_results_screen */
int main ()
{
/* Variable Declaration and initialization */
struct employee employeeData[NUM_EMPL] = {
{ 98401, 10.60 },
{ 526488, 9.75 },
{ 765349, 10.50 },
{ 34645, 12.25 },
{ 127615, 8.35 }
};
/* Call various functions needed to reading, calculating, and printing as needed */
/* Function call to output results to the screen in table format. */
Output_results_screen (employeeData, NUM_EMPL);
return(0); /* success */
} /* main */
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKiogSE9NRVdPUks6ICM1IFN0cnVjdHVyZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCioqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoqKiBOYW1lOiBbRW50ZXIgeW91ciBOYW1lXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCioqIENsYXNzOiBDIFByb2dyYW1taW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCioqIERhdGU6IFtlbnRlciB0aGUgZGF0ZV0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCioqIERlc2NyaXB0aW9uOiBUaGlzIHByb2dyYW0gcHJvbXB0cyB0aGUgdXNlciBmb3IgdGhlIG51bWJlciBvZiBob3VycyAgIAoqKiAgd29ya2VkIGZvciBlYWNoIGVtcGxveWVlLiBJdCB0aGVuIGNhbGN1bGF0ZXMgZ3Jvc3MgcGF5ICAgICAgICAgICAgICAgICAgIAoqKiAgaW5jbHVkaW5nIG92ZXJ0aW1lIGFuZCBkaXNwbGF5cyB0aGUgcmVzdWx0cyBpbiB0YWJsZS4gRnVuY3Rpb25zICAgICAgICAgICAKKiogIGFuZCBzdHJ1Y3R1cmVzIGFyZSB1c2VkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCioqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLypEZWZpbmUgYW5kIEluY2x1ZGVzICovCiAKI2luY2x1ZGUgPHN0ZGlvLmg+CiAKLyogRGVmaW5lIENvbnN0YW50cyAqLwojZGVmaW5lIE5VTV9FTVBMIDUKI2RlZmluZSBPVkVSVElNRV9SQVRFIDEuNWYKI2RlZmluZSBTVERfV09SS19XRUVLIDQwZgogCi8qIERlZmluZSBhIGdsb2JhbCBzdHJ1Y3R1cmUgdG8gcGFzcyBlbXBsb3llZSBkYXRhIGJldHdlZW4gZnVuY3Rpb25zICAqLwovKiBOb3RlIHRoYXQgdGhlIHN0cnVjdHVyZSB0eXBlIGlzIGdsb2JhbCwgYnV0IHlvdSBkb24ndCB3YW50IGEgdmFyaWFibGUgKi8KLyogb2YgdGhhdCB0eXBlIHRvIGJlIGdsb2JhbC4gICBCZXN0IHRvIGRlY2xhcmUgYSB2YXJpYWJsZSBvZiB0aGF0IHR5cGUgICAgKi8KLyogaW4gYSBmdW5jdGlvbiBsaWtlIG1haW4gb3IgYW5vdGhlciBmdW5jdGlvbiBhbmQgcGFzcyBhcyBuZWVkZWQuICAgICAgKi8Kc3RydWN0IGVtcGxveWVlCnsKICBsb25nICBpZF9udW1iZXI7CiAgZmxvYXQgd2FnZTsKICBmbG9hdCBob3VyczsKICBmbG9hdCBvdmVydGltZTsKICBmbG9hdCBncm9zczsKfTsKICAgIAovKiBkZWZpbmUgcHJvdG90eXBlcyBoZXJlIGZvciBlYWNoIGZ1bmN0aW9uIGV4Y2VwdCBtYWluICovCiAKdm9pZCBPdXRwdXRfcmVzdWx0c19zY3JlZW4gKHN0cnVjdCBlbXBsb3llZSBbIF0sIGludCBzaXplKTsKIAogCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBPdXRwdXRfcmVzdWx0c19zY3JlZW4gICAgICAgICAgICAgICAgIAoqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCioqICBQdXJwb3NlOiAgICBPdXRwdXRzIHRvIHNjcmVlbiBpbiBhIHRhYmxlIGZvcm1hdCB0aGUgZm9sbG93aW5nICAgICAgICAKKiogICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IGFuIGVtcGxveWVlOiAgQ2xvY2ssIFdhZ2UsICAgIAoqKiAgICAgICAgICAgICAgICAgICAgICAgSG91cnMsIE92ZXJ0aW1lLCBhbmQgR3Jvc3MgUGF5LiAgICAgICAgICAgICAgICAKKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoqKiAgUGFyYW1ldGVyczogIGVtcGxveWVlRGF0YSAtIGFuIGFycmF5IG9mIHN0cnVjdHVyZXMgY29udGFpbmluZyAgICAgICAgCioqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1wbG95ZWUgaW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICAgICAKKiogICAgICAgICAgICAgICBzaXplIC0gbnVtYmVyIG9mIGVtcGxveWVlcyB0byBwcm9jZXNzICAgICAgICAgICAgICAgICAgIAoqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCioqICBSZXR1cm5zOiAgICBOb3RoaW5nICh2b2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCnZvaWQgT3V0cHV0X3Jlc3VsdHNfc2NyZWVuICggc3RydWN0IGVtcGxveWVlIGVtcGxveWVlRGF0YVtdLCBpbnQgc2l6ZSApCnsKICAgICAgICBpbnQgaTsgICAgLyogbG9vcCBpbmRleCAqLwogICAKICAgICAgICAvKiBwcmludGYgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBlbXBsb3llZSAqLwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXplIDsgKytpKQogICAgICAgIHsKICAgICAgICAgICAgICBwcmludGYoIiAgICAgJTA2bGkgICAgJTUuMmYgICAgJTQuMWYgICAlNC4xZiAgICU4LjJmICAgIFxuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIGVtcGxveWVlRGF0YVtpXS5pZF9udW1iZXIsIGVtcGxveWVlRGF0YVtpXS53YWdlLCBlbXBsb3llZURhdGFbaV0uaG91cnMsIAogICAgICAgICAgICAgICAgICAgICAgICBlbXBsb3llZURhdGFbaV0ub3ZlcnRpbWUsIGVtcGxveWVlRGF0YVtpXS5ncm9zcyk7CiAgICAgICAgfSAvKiBmb3IgKi8KIAp9IC8qIE91dHB1dF9yZXN1bHRzX3NjcmVlbiAqLwogCiAKaW50IG1haW4gKCkKewogIC8qIFZhcmlhYmxlIERlY2xhcmF0aW9uIGFuZCBpbml0aWFsaXphdGlvbiAqLwogICAgICAgIHN0cnVjdCBlbXBsb3llZSBlbXBsb3llZURhdGFbTlVNX0VNUExdID0gewogICAgICAgIHsgOTg0MDEsIDEwLjYwIH0sCiAgICAgICAgeyA1MjY0ODgsIDkuNzUgfSwKICAgICAgICB7IDc2NTM0OSwgMTAuNTAgfSwKICAgICAgICB7IDM0NjQ1LCAxMi4yNSB9LAogICAgICAgIHsgMTI3NjE1LCA4LjM1IH0KICAgICAgICB9OyAgCiAKICAvKiBDYWxsIHZhcmlvdXMgZnVuY3Rpb25zIG5lZWRlZCB0byByZWFkaW5nLCBjYWxjdWxhdGluZywgYW5kIHByaW50aW5nIGFzIG5lZWRlZCAqLwogICAgCiAgLyogRnVuY3Rpb24gY2FsbCB0byBvdXRwdXQgcmVzdWx0cyB0byB0aGUgc2NyZWVuIGluIHRhYmxlIGZvcm1hdC4gKi8KICAgICAgICBPdXRwdXRfcmVzdWx0c19zY3JlZW4gKGVtcGxveWVlRGF0YSwgTlVNX0VNUEwpOwogIAogICAgICAgIHJldHVybigwKTsgIC8qIHN1Y2Nlc3MgKi8KIAp9IC8qIG1haW4gKi8=