/* Program using structures to store and manipulate information about
employee(s) of a company. */
#include <stdio.h>
#include <string.h>
#define N 2 /* defines the number of employees */
typedef struct
{
int age;
float salary;
char *fName;
char *lName;
}employee;
void PrintInfo ( employee );
employee RaiseSal (employee );
main()
{
/* Create an array of size N and of type employee
and initialise it ie give values to the members of the structure.
*/
employee emp_list[N] = { {24,100000.00, "Jack", "Hill"},
{25,200000.00, "Jill", "Hill"}
};
int i;
/* see notes for more about initialising structures.
If a new employee is hired you simply change N -> N+1 and add their details
ie. age etc. to the end of the arrays above.
3 function calls - each is passed the variable employee emp_list[i],
corresponding to a different employee for each i (with its assigned values)
*/
for (i=0;i<N;i++)
{
PrintInfo( emp_list[i] );
emp_list[i] = RaiseSal( emp_list[i] );
PrintInfo( emp_list[i] );
} /* end of loop over i*/
}
void PrintInfo( employee emp )
{
printf("%s %s is %d years old.", emp.fName, emp.lName, emp.age);
printf("\n%s's salary is %.2f.\n", emp.lName, emp.salary);
/* the .2 in the 2nd print statement just specifies how many decimal places
in the output
*/
}
employee RaiseSal( employee emp )
{
emp.salary *= 1.5;
return emp;
}