oop - C++ Refactoring basic semantic into Objective classes -


i have simple program computes salaries 4 different worker types. it's written semantically want refactor can have each worker type it's own class.

the main control of program in switch statement. i'd create class each worker type , use of appropriate setters , getters, perform right calculations.

payroll.cpp

#include <iostream> #include <iomanip> using namespace std;  // function prototype void userprompt (void);  int main () { // declare paycode , salary int paycode;  double salary;  // run user prompt function, input paycode userprompt (); cin >> paycode;  while( paycode != -1 ) {      //switch statement handle user input     switch( paycode ) {          case 1: // manager             cout << "manager selected." << endl;             cout << "enter weekly salary: ";             // calculate manager's salary             cin >> salary;             cout << "manager's pay $" << std::fixed << setprecision( 2 ) << salary << "\n" << endl;             break;          case 2: // hourly worker             double wage;             int hours;             cout << "hourly worker selected." << endl;             cout << "enter hourly salary: ";             cin >> wage;             cout << "enter total hours worked: ";             cin >> hours;             // calculate hourly worker's pay             // respect possible overtime             if ( hours <= 40 )                 salary = hours * wage;             else                 salary = 40.0 * wage + ( hours - 40 ) * wage * 1.5;             cout << "hourly worker's pay $" << std::fixed << setprecision( 2 ) << salary << "\n" << endl;             break;          case 3: // commission worker             int sales;             cout << "commission worker selected." << endl;             cout << "enter gross weekly sales: ";             cin >> sales;             // calculate commission worker's pay             salary = sales * 0.092 + 250;             cout << "commission worker's pay $" << std::fixed <<  setprecision( 2 ) << salary << "\n" << endl;             break;          case 4: // widget worker             int widgets, wageperwidget;             cout << "widget worker selected." << endl;             cout << "enter number of pieces: ";             cin >> widgets;             cout << "enter wage per piece: ";             cin >> wageperwidget;             // calculate widget worker's pay             salary = widgets * wageperwidget;             cout << "widget worker's pay $" << std::fixed <<  setprecision( 2 ) << salary << "\n" << endl;             break;     }      // prompt user input paycode again or exit     cout<< "enter paycode (-1 end): ";     cin >> paycode; }  exit (0); }  // userprompt function declaration void userprompt (void) { // prompt user input paycode cout << "enter paycode (-1 end): ";  } 

please review tutorials c++ class design if need learn fundamentals of oop. learn more if can answer own question after research.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -