fork(1) download
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <iomanip>
  5. using namespace std;
  6.  
  7. int ReadData (int [], int[], string[], string[], char[], int[], float[], const int);
  8.  
  9. int main(){
  10. const int maxSIZE = 100;
  11.  
  12. int empID[maxSIZE], empHOUR[maxSIZE], empOHOUR[maxSIZE], empSSN[maxSIZE], numEMP, i;
  13. char empSTAT[maxSIZE];
  14. string firstNAME[maxSIZE], lastNAME[maxSIZE];
  15. float empHRATE[maxSIZE], empGROSS[maxSIZE], empREGP[maxSIZE], empTAX[maxSIZE], empNET[maxSIZE], empOPAY[maxSIZE], TAX;
  16.  
  17. cout<<"___________________"<<endl<<endl;
  18. cout<<"HROMADSKE TV EUROPE"<<endl;
  19. cout<<" PAYROLL PROGRAM "<<endl;
  20. cout<<"___________________"<<endl<<endl;
  21. cout<<setiosflags(ios::fixed|ios::showpoint|ios::left);
  22. cout<<setfill(' ')<<setw(5)<<"ID"<<setw(12)<<"First Name"<<setw(15)<<"Last Name"<<setw(6)<<"STAT"<<setw(4)<<"SSN"<<setw(4)<<"HW"<<setw(7)<<"HR"<<setw(4)<<"OTH"<<setw(8)<<"OTP"<<setw(8)<<"REGP"<<setw(9)<<"GROSS"<<setw(7)<<"TAX"<<setw(9)<<"NET"<<endl;
  23. cout<<setfill('=')<<setw(5)<<""<<setw(12)<<""<<setw(15)<<""<<setw(6)<<""<<setw(4)<<""<<setw(4)<<""<<setw(7)<<""<<setw(4)<<""<<setw(8)<<""<<setw(8)<<""<<setw(9)<<""<<setw(7)<<""<<setw(9)<<""<<endl;
  24.  
  25. numEMP = ReadData(empID, empHOUR, firstNAME, lastNAME, empSTAT, empSSN, empHRATE, maxSIZE) - 1;
  26.  
  27. for (i=0; i<=numEMP; i++) {
  28. if (empHOUR[i] > 40) {
  29. empOHOUR[i] = empHOUR[i] - 40;
  30. empOPAY[i] = empOHOUR[i] * empHRATE[i] * 1.5;
  31. empREGP[i] = 40 * empHRATE[i];
  32. }
  33. else {
  34. empOHOUR[i] = 0;
  35. empOPAY[i] = 0;
  36. empREGP[i] = empHOUR[i]* empHRATE[i];
  37. }
  38. }
  39.  
  40. for (i=0; i<=numEMP; i++) {
  41. empGROSS[i] = empREGP[i] + empOPAY[i];
  42. }
  43.  
  44. for (i=0; i<=numEMP; i++) {
  45. if(empGROSS[i] > 1000) {
  46. TAX=0.3;
  47. }
  48. else {
  49. if((empGROSS[i]>800) && (empGROSS[i]<=1000)) {
  50. TAX=0.2;
  51. }
  52. else {
  53. if((empGROSS[i]>500) && (empGROSS[i]<=800)) {
  54. TAX=0.1;
  55. }
  56. else TAX=0;
  57. }
  58. }
  59. empTAX[i] = empGROSS[i] * TAX;
  60. }
  61.  
  62. for (i=0; i<=numEMP; i++) {
  63. empNET[i] = empGROSS[i] - empTAX[i];
  64. }
  65.  
  66. for (i=0; i<=numEMP; i++) {
  67. cout<<setiosflags(ios::fixed|ios::showpoint|ios::left)<<setprecision(2);
  68. cout<<setfill(' ')<<setw(5)<<empID[i]<<setw(12)<<firstNAME[i]<<setw(15)<<lastNAME[i]<<setw(6)<<empSTAT[i]<<setw(4)<<empSSN[i]<<setw(4)<<empHOUR[i]<<setw(7)<<empHRATE[i]<<setw(4)<<empOHOUR[i]<<setw(8)<<empOPAY[i]<<setw(8)<<empREGP[i]<<setw(9)<<empGROSS[i]<<setw(7)<<empTAX[i]<<setw(9)<<empNET[i]<<endl;
  69. }
  70.  
  71. return 0;
  72. }
  73.  
  74. int ReadData (int empID[], int empHOUR[], string firstNAME[], string lastNAME[], char empSTAT[], int empSSN[], float empHRATE[], int numEMP )
  75. {
  76. string str;
  77. ifstream fin("employee.in");
  78. getline(fin, str);
  79.  
  80. numEMP=0;
  81.  
  82. while(!fin.eof())
  83. {
  84. fin >> empID[numEMP] >> firstNAME[numEMP] >> lastNAME[numEMP] >> empSTAT[numEMP] >> empSSN[numEMP] >> empHOUR[numEMP] >> empHRATE[numEMP];
  85. numEMP++;
  86. }
  87.  
  88. return numEMP;
  89. }
Time limit exceeded #stdin #stdout 5s 3280KB
stdin
Standard input is empty
stdout
___________________

HROMADSKE TV EUROPE
  PAYROLL PROGRAM  
___________________

ID   First Name  Last Name      STAT  SSN HW  HR     OTH OTP     REGP    GROSS    TAX    NET      
==================================================================================================