Advertisement
NickG

Payroll Calc - payroll.cpp

Mar 7th, 2012
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.99 KB | None | 0 0
  1. //NickG
  2. //Payroll Calculator
  3.  
  4. #include <iostream>
  5. #include <iomanip>
  6. #include "valid.hpp" //Input validation functions
  7. #include "clear.hpp" //Cross-Platform screen clear function
  8. #include "taxes.hpp" //Taxes function
  9. using namespace std;
  10.  
  11. int main() {
  12. int hours, piece1, piece2;
  13. float wage;
  14. char response;
  15. cout << fixed << setprecision (2); //Set output format and precision
  16. do {
  17.    clear();
  18.    do {
  19.       cout << "Employee position?" <<endl;
  20.       cout << "m - Manager\n" << "h - Hourly Worker\n" << "c - Commission Worker\n" << "p - Pieceworker" <<endl;
  21.       cout << "Input:";
  22.       cin >> response;
  23.       cin.ignore(255,'\n'); //This clears the cin buffer, just keeps things sane
  24.       clear();
  25.       } while ((response!='m')&&(response!='M')&&(response!='h')&&(response!='H')&&(response!='c')&&(response!='C')&&(response!='p')&&(response!='P')); //Wait for valid input
  26.  
  27.    switch (response) {  //Employee Switch
  28.       case 'M':
  29.       case 'm':
  30.                cout << "Hours worked:";
  31.                cin >> hours;
  32.                intvalid (&hours);
  33.                cin.ignore(255,'\n');
  34.                cout << "Weekly Wage:$";
  35.                cin >> wage;
  36.                flvalid (&wage);
  37.                clear();
  38.                if (hours<35)
  39.                {wage*=(float(hours)/35);}
  40.                taxes(wage);
  41.                break;
  42.       case 'H':
  43.       case 'h':
  44.                cout << "Hours worked:";
  45.                cin >> hours;
  46.                intvalid (&hours);
  47.                cin.ignore(255,'\n');
  48.                cout << "Hourly Wage:$";
  49.                cin >> wage;
  50.                flvalid (&wage);
  51.                clear();
  52.                if (hours>40)
  53.                {wage=(40*wage)+((hours-40)*wage*1.5);}
  54.                else
  55.                {wage*=hours;}
  56.                taxes(wage);
  57.                break;
  58.      
  59.       case 'C':
  60.       case 'c':
  61.                cout << "Sales:$";
  62.                cin >> wage;
  63.                flvalid (&wage);
  64.                clear();
  65.                wage=250+(wage*=.057);
  66.                taxes(wage);
  67.                break;
  68.       case 'P':
  69.       case 'p':
  70.                cout << "Widgets Assembled:";
  71.                cin >> hours; //Saves an int
  72.                intvalid (&hours);
  73.                cin.ignore(255,'\n');
  74.                cout << "Ball Bearings Assembled:";
  75.                cin >> piece1;
  76.                intvalid (&piece1);
  77.                cin.ignore(255,'\n');
  78.                cout << "Transfer Racks Assembled:";
  79.                cin >> piece2;
  80.                intvalid (&piece2);
  81.                cin.ignore(255,'\n');
  82.                clear();
  83.                wage=float(hours)*1.5+(piece1*2)+float(piece2)*2.5;
  84.                taxes(wage);
  85.                break;
  86.       }
  87.    do {
  88.       cout << "Run again?(y/n)";
  89.       cin >> response;
  90.       cin.ignore(255,'\n');
  91.       } while ((response!='y')&&(response!='Y')&&(response!='n')&&(response!='N'));  //Wait for valid input
  92.    clear();
  93.    } while ((response=='y')||(response=='Y'));
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement