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
Post a Comment