Calculate gross pay
Write a C program that will calculate the gross pay of a set of employees utilizing pointers instead of array refernces.
The program should prompt the user to enter the number of hours each employee worked. When prompted, key in the hours shown below.
The program determines the overtime hours (anything over 40 hours), the gross pay and then outputs a table in the following format.
Column alignment, leading zeros in Clock#, and zero suppression in float fields is important.
Use 1.5 as the overtime pay factor.
This week, adding a Total and Average row is no longer optional, its required for this assignment:
a) Add a Total row at the end to sum up the wage, hours, ot, and gross columns
b) Add an Average row to print out the average of the wage, hours, ot, and gross columns
---------------------------------------------------------_x000D_
Name Clock# Wage Hours OT Gross_x000D_
---------------------------------------------------------_x000D_
Connie Cobol 098401 10.60 51.0 11.0 598.90_x000D_
Mary Apl 526488 9.75 42.5 2.5 426.56_x000D_
Frank Fortran 765349 10.50 37.0 0.0 388.50_x000D_
Jeff Ada 034645 12.25 45.0 5.0 581.88_x000D_
Anton Pascal 127615 10.00 40.0 0.0 400.00_x000D_
---------------------------------------------------------_x000D_
_x000D_
Total: 53.10 215.5 18.5 2395.84_x000D_
Average: 10.62 43.1 3.7 479.19_x000D_
You should implement this program using a structure similar to the suggested one below to store the information for each employee. Feel free to tweak it if you wish. For example, its OK to have a first and last name member instead of just a name member, and if you want to use different types, that is OK as well.
struct employee_x000D_
{_x000D_
char name [20];_x000D_
long id_number;_x000D_
float wage;_x000D_
float hours;_x000D_
float overtime;_x000D_
float gross;_x000D_
};
Set a pointer to it and then use that pointer going forward to access elements (and their associated members) in your array of structures. Again, do not use array references with indexes (use emp_ptr->hours … not … emp [ i ].hours as the latter is not a fast).
Use the following information to initialize your data.
Connie Cobol 98401 10.60 _x000D_
Mary Apl 526488 9.75_x000D_
Frank Fortran 765349 10.50_x000D_
Jeff Ada 34645 12.25_x000D_
Anton Pascal 127615 10.00_x000D_
Create an array of structures with 5 elements, each being of type struct employee.
Initialize the array with the data provided and reference the elements of the array with the appropriate subscripts.
Do not use any array references with indexes. For example:
emp[i].wage /* this is
bad, it uses an array reference with an index, in this case, i */emp_ptr->wage; /* this is
good, it uses a pointer to reference the wage value */
Here is template
************************************************************************/_x000D_ /* */_x000D_ /* HOMEWORK: 7 */_x000D_ /* */_x000D_ /* Name: Joe Student */_x000D_ /* */_x000D_ /* Class: C Programming, Cybercourse */_x000D_ /* */_x000D_ /* Date: <add your date> */_x000D_ /* */_x000D_ /* Description: Program which determines gross pay based on overtime */_x000D_ /* and outputs a formatted answer. Employee information */_x000D_ /* is stored in an array of structures and referenced */_x000D_ /* through the use of pointers. */_x000D_ /************************************************************************/_x000D_ _x000D_ #include <stdio.h>_x000D_ #include <stdlib.h>
_x000D_/* define all constants here */_x000D_ #define SIZE 5_x000D_ _x000D_ /* type to hold employee information */_x000D_ struct employee_x000D_ {_x000D_ char name [20]; /* Employee first and last name */_x000D_ int id; /* unique employee identifier */_x000D_ float wage; /* hourly wage rate */_x000D_ float hours; /* hours worked in a given week */_x000D_ float overtime; /* hours worked after the standard work week */_x000D_ float gross; /* total gross pay, standard pay + overtime pay */_x000D_ };
/* add function prototypes here if you wish */_x000D_ /* Remember to add function comment header block for each function *//* like shown below for printData, a stub for getHours is below. */_x000D_ void getHours ( struct employee * emp_ptr, int size )_x000D_ {_x000D_ _x000D_ }_x000D_ _x000D_ _x000D_ _x000D_ /************************************************************************/_x000D_ /* Function: printData */_x000D_ /* */_x000D_ /* Purpose: Outputs to screen in a table format the following: */_x000D_ /* - Employee First and Last Name */_x000D_ /* - Employee clock number */_x000D_ /* - Wage rate for an employee. */_x000D_ /* - Total hours worked by employee. */_x000D_ /* - Overtime Hours. */_x000D_ /* - Gross Pay. */_x000D_ /* */_x000D_ /* Parameters: emp_ptr - pointer to array of structures */_x000D_ /* size - number of employees to process */_x000D_ /* */_x000D_ /* Returns: Nothing, since emp_ptr is passed by reference */_x000D_ /************************************************************************/_x000D_ _x000D_ void printData ( struct employee * emp_ptr, int size )_x000D_ {_x000D_ int n; /* counter used in for loop to keep track of iterations */_x000D_ _x000D_ /* prints the output for all employees to the screen */_x000D_ for (n = 0; n < SIZE; n++)_x000D_ {_x000D_ printf ("%-20.20s %06i $%5.2f %4.1f %4.1f $%7.2f n", _x000D_ emp_ptr->name,_x000D_ emp_ptr->id, _x000D_ emp_ptr->wage, _x000D_ emp_ptr->hours, _x000D_ emp_ptr->overtime, _x000D_ emp_ptr->gross);_x000D_ _x000D_ ++emp_ptr; /* move to next employee */_x000D_ }_x000D_ printf ("n");_x000D_ }_x000D_ /************************************************************************/_x000D_ /* Function: Main */_x000D_ /************************************************************************/_x000D_ _x000D_ int main()_x000D_ {_x000D_ _x000D_ /* A structure array to hold information on employees */_x000D_ struct employee emp [SIZE] = { {"Connie Cobol", 98401, 10.60},_x000D_ {"Frank Fortran", 526488, 9.75},_x000D_ {"Mary Apl", 765349, 10.50},_x000D_ {"Jeff Ada", 34645, 12.25},_x000D_ {"Anton Pascal", 127615, 10.0}_x000D_ };_x000D_ _x000D_ /* Get user input for the hours worked for each employee */_x000D_ getHours ( emp, SIZE );_x000D_ _x000D_ /* Calculate overtime for each employee */_x000D_ _x000D_ /* Calculate gross pay for each employee *//* Print column headers for each employee *//* Print employee data to the screen */_x000D_ printData ( emp, SIZE );_x000D_ _x000D_ return 0;_x000D_ }
_x000D_
"You need a similar assignment done from scratch? Our qualified writers will help you with a guaranteed AI-free & plagiarism-free A+ quality paper, Confidentiality, Timely delivery & Livechat/phone Support.
Discount Code: CIPD30
Click ORDER NOW..


