fig11.15

本文介绍了一个员工薪资管理系统的设计与实现,该系统包括基本的佣金员工和底薪加佣金员工的类定义及其实现。通过具体的代码示例展示了如何创建员工对象、设置属性、计算薪资以及输出相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


资源下载链接为: https://pan.quark.cn/s/5c50e6120579 在Android移动应用开发中,定位功能扮演着极为关键的角色,尤其是在提供导航、本地搜索等服务时,它能够帮助应用获取用户的位置信息。以“baiduGPS.rar”为例,这是一个基于百度地图API实现定位功能的示例项目,旨在展示如何在Android应用中集成百度地图的GPS定位服务。以下是对该技术的详细阐述。 百度地图API简介 百度地图API是由百度提供的一系列开放接口,开发者可以利用这些接口将百度地图的功能集成到自己的应用中,涵盖地图展示、定位、路径规划等多个方面。借助它,开发者能够开发出满足不同业务需求的定制化地图应用。 Android定位方式 Android系统支持多种定位方式,包括GPS(全球定位系统)和网络定位(通过Wi-Fi及移动网络)。开发者可以根据应用的具体需求选择合适的定位方法。在本示例中,主要采用GPS实现高精度定位。 权限声明 在Android应用中使用定位功能前,必须在Manifest.xml文件中声明相关权限。例如,添加<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />,以获取用户的精确位置信息。 百度地图SDK初始化 集成百度地图API时,需要在应用启动时初始化地图SDK。通常在Application类或Activity的onCreate()方法中调用BMapManager.init(),并设置回调监听器以处理初始化结果。 MapView的创建 在布局文件中添加MapView组件,它是地图显示的基础。通过设置其属性(如mapType、zoomLevel等),可以控制地图的显示效果。 定位服务的管理 使用百度地图API的LocationClient类来管理定位服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值