fork download
  1. //*******************************************************
  2. //
  3. // Assignment 4 - Arrays
  4. //
  5. // Name: <replace with your name>
  6. //
  7. // Class: C Programming, <replace with Semester and Year>
  8. //
  9. // Date: <replace with the current date>
  10. //
  11. // Description: Program which determines overtime and
  12. // gross pay for a set of employees with outputs sent
  13. // to standard output (the screen).
  14. //
  15. //********************************************************
  16.  
  17. #include <stdio.h>
  18.  
  19. // constants to use
  20. #define SIZE 5 // number of employees to process
  21. #define STD_HOURS 40.0 // normal work week hours before overtime
  22. #define OT_RATE 1.5 // time and half overtime setting
  23.  
  24. int main()
  25. {
  26.  
  27.  
  28. // Declare variables needed for the program
  29. // Recommend an array for clock, wage, hours,
  30. // ... and overtime hours and gross.
  31. // Recommend arrays also for normal pay and overtime pay
  32. // It is OK to pre-fill clock and wage values ... or you can prompt for them
  33.  
  34. // unique employee identifier
  35. long int clockNumber [SIZE] = {98401, 526488, 765349, 34645, 127615};
  36.  
  37. float grossPay [SIZE]; // weekly gross pay - normal pay + overtime pay
  38. float hours [SIZE]; // hours worked in a given week
  39. int i; // loop and array index
  40. float normalPay [SIZE]; // normal weekly pay without any overtime
  41. float overtimeHrs[SIZE]; // overtime hours worked in a given week
  42. float overtimePay [SIZE]; // overtime pay for a given week
  43.  
  44. // hourly pay for each employee
  45. float wageRate [SIZE] = {10.6, 9.75, 10.5, 12.25, 8.35};
  46.  
  47. printf ("\n*** Pay Calculator ***\n\n");
  48.  
  49. // Process each employee one at a time
  50. for (i = 0; i < SIZE; i++)
  51. {
  52.  
  53. // TODO - Prompt and Read in hours worked for employee
  54. printf("\nEnter number of hours worked for employee clockNumber[i]: ");
  55. scanf("%f", &hours[i]);
  56.  
  57. // Calculate overtime and gross pay for employee
  58. if (hours[i] >= STD_HOURS)
  59. {
  60. overtimeHrs[i] = hours[i] - STD_HOURS;
  61. // TODO: Calculate arrays normalPay and overtimePay with overtime
  62. (normalPay[i] = STD_HOURS * wageRate[i]);
  63. (overtimePay[i] = overtimeHrs[i] * wageRate[i] * OT_RATE);
  64. }
  65. else // no OT
  66. {
  67. overtimeHrs[i] = 0;
  68. // TODO: Calculate arrays normalPay and overtimePay without overtime
  69. (normalPay[i] = hours[i] * wageRate[i]);
  70. (overtimePay[i] = overtimeHrs[i] * wageRate[i] * OT_RATE);
  71. }
  72.  
  73. // Calculate Gross Pay
  74. grossPay[i] = normalPay[i] + overtimePay[i];
  75. }
  76.  
  77. // TODO: Print a nice table header
  78. printf("\n\nClock# Wage Hours OT Base Pay Overtime Pay Gross\n");
  79. printf("---------------------------------------------------------------\n");
  80.  
  81. // Now that we have all the information in our arrays, we can
  82. // Access each employee and print to screen or file
  83. for (i = 0; i < SIZE; i++)
  84. {
  85. // TODO: Print employee information from your arrays
  86. printf("%06d %5.2f %5.1f %5.1f %8.2f %10.2f %12.2f\n",
  87. clockNumber[i], wageRate[i], hours[i], overtimeHrs[i], normalPay[i], overtimePay[i], grossPay[i]);
  88. }
  89.  
  90. return(0);
  91. }
Success #stdin #stdout 0s 5320KB
stdin
51.0
42.5
37.0
45.0
0.0
stdout
*** Pay Calculator ***


Enter number of hours worked for employee clockNumber[i]: 
Enter number of hours worked for employee clockNumber[i]: 
Enter number of hours worked for employee clockNumber[i]: 
Enter number of hours worked for employee clockNumber[i]: 
Enter number of hours worked for employee clockNumber[i]: 

Clock# Wage  Hours  OT   Base Pay   Overtime Pay    Gross
---------------------------------------------------------------
098401 10.60  51.0  11.0   424.00     174.90       598.90
526488  9.75  42.5   2.5   390.00      36.56       426.56
765349 10.50  37.0   0.0   388.50       0.00       388.50
034645 12.25  45.0   5.0   490.00      91.88       581.88
127615  8.35   0.0   0.0     0.00       0.00         0.00