fig11.15

来源:互联网 发布:淘宝网新闻今日头条 编辑:程序博客网 时间:2024/05/17 23:17

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;protected:std::string firstName;std::string lastName;std::string socialSecurityNumber;double grossSales;double commissionRate;};

BasePlusCommissionExployee.h

#pragma once#include<string>#include"CommissionEmployee.h"class BasePlusCommissionEmployee:public CommissionEmployee{public:BasePlusCommissionEmployee(const std::string &, const std::string &,const std::string &, double = 0.0, double = 0.0, double = 0.0);void setBaseSalary(double);double getBaseSalary() const;double earnings() const;void print() const;private:double baseSalary;};

BasePlusCommissionEmployee.cpp

#include<iostream>#include<stdexcept>#include"BasePlusCommissionExployee.h"using namespace std;BasePlusCommissionEmployee::BasePlusCommissionEmployee(const string &first, const string &last, const string &ssn,double sales, double rate, double salary):CommissionEmployee(first, last, ssn, sales, rate){setBaseSalary(salary);}void BasePlusCommissionEmployee::setBaseSalary(double salary){if (salary >= 0.0)baseSalary = salary;elsethrow invalid_argument("Salary must be  >= 0.0");}double BasePlusCommissionEmployee::getBaseSalary() const{return baseSalary;}double BasePlusCommissionEmployee::earnings() const{return getBaseSalary() + CommissionEmployee::earnings();}void BasePlusCommissionEmployee::print() const{cout << "base-salaried ";CommissionEmployee::print();cout<< "\nbase salary: " << getBaseSalary();}

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 getCommissionRate() * getGrossSales();}void CommissionEmployee::print() const{cout << "commission employee: " << getFirstName() << ' ' << getLastName()<< "\nsocial security number: " << getSocialSecurityNumber()<< "\ngross sales: " << getGrossSales()<< "\ncommission rate: " << getCommissionRate();}

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;}


原创粉丝点击