fig11_06.cpp

来源:互联网 发布:linux弱口令扫描工具 编辑:程序博客网 时间:2024/06/05 02:00

CommissionEmployee.h

#pragma once#include<string>class CommissionEmployee{public:CommissionEmployee(const std::string &, const std::string &,const std::string &, double = 0.0, double = 0.0);void setFirstName(const std::string &);std::string getFirstName() const;void setLastName(const std::string &);std::string getLastName() const;void setSocialSecurityNumber(const std::string &);std::string getSocialSecurityNumber() const;void setGrossSales(double);double getGrossSales() const;void setCommissionRate(double);double getCommissionRate() const;double earnings() const;void print() const;private:std::string firstName;std::string lastName;std::string socialSecuritynumber;double grossSales;double commissionRate;};

CommissionEmployee.cpp

#include<iostream>#include<stdexcept>#include"CommissionEmployee.h"using namespace std;CommissionEmployee::CommissionEmployee(const string &first, const string &last, const string &ssn,double sales, double rate){firstName = first;lastName = last;socialSecuritynumber = ssn;setGrossSales(sales);setCommissionRate(rate );}void CommissionEmployee::setFirstName(const string &first){firstName = first;}string CommissionEmployee::getFirstName() const{return firstName;}void CommissionEmployee::setLastName(const string &last){lastName = last;}string CommissionEmployee::getLastName() const{return lastName;}void CommissionEmployee::setSocialSecurityNumber(const string &ssn){socialSecuritynumber = ssn;}string CommissionEmployee::getSocialSecurityNumber() const{return socialSecuritynumber;}void CommissionEmployee::setGrossSales(double sales){if (sales >= 0)grossSales = sales;elsethrow invalid_argument("Gross salesmust be >= 0.0");}double CommissionEmployee::getGrossSales() const{return grossSales;}void CommissionEmployee::setCommissionRate(double rate){if (rate > 0.0 && rate < 1.0)commissionRate = rate;elsethrow invalid_argument("Commission rate must be > 0.0 and <1.0");}double CommissionEmployee::getCommissionRate() const{return commissionRate;}double CommissionEmployee::earnings() const{return commissionRate * grossSales;}void CommissionEmployee::print() const{cout << "commission employee: " << firstName << ' ' << lastName<< "\nsocial security number: " << socialSecuritynumber<< "\ngross sales: " << grossSales<< "\ncommission rate: " << commissionRate;}

fig11_06.cpp

#include<iostream>#include<iomanip>#include"CommissionEmployee.h"using namespace std;int main(){CommissionEmployee employee("Sue", "Jones", "222-22-2222", 10000, .06);cout << fixed << setprecision(2);cout << "Employee information obtained by get funtions: \n"<< "\nFirst name is " << employee.getFirstName()<< "\nLast name is " << employee.getLastName()<< "\nSocial security number is "<< employee.getSocialSecurityNumber()<< "\nGross sales is " << employee.getGrossSales()<< "\nCommission rate is " << employee.getCommissionRate() << endl;employee.setGrossSales(8000);employee.setCommissionRate(.1);cout << "\mUpdate employee information output by print function: \n"<< endl;employee.print();cout << "\n\nEmployee's earnings: $" << employee.earnings() << endl;}