⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 empfunc.cpp

📁 清华大学出版社出版的c++程序设计课本
💻 CPP
字号:
//empfunc.cpp
#include<iostream.h>
#include<string.h>
#include"employee.h"

int employee::employeeNo=1000; 	//员工编号基数为1000

employee::employee()
{
	char namestr[50]; 	//输入雇员姓名时首先临时存放在namestr中
	cout<<"请输下一个入雇员的姓名:";
	cin>>namestr;
	name=new char[strlen(namestr)+1]; 	//动态申请用于存放姓名的内存空间
	strcpy(name,namestr); 	//将临时存放的姓名复制到name
	individualEmpNo=employeeNo++;	//新输入的员工,其编号为目前最大编号加1
	grade=1; 	//级别初值为1
	accumPay=0.0; 	//月薪总额初值为0
}

employee::~employee()
{
	delete name; 	//在析沟函数中删除为存放姓名动态分配的内存空间
}

void employee::promote(int increment)
{
	grade+=increment; 	//升级,提升的级数由increment指定
}

technician::technician()
{
	hourlyRate=100; 	//每小时酬金100元
}

void technician::promote(int)
{
	employee::promote(2);	//调用基类的升级函数,升2级
}

void technician::pay()
{
	cout<<"请输入"<<name<<"本月的工作时数:";
	cin>>workHours;
	accumPay=hourlyRate*workHours; 	//计算月薪,按小时计酬
	cout<<"兼职技术人员"<<name<<"编号"<<individualEmpNo
		<<"本月工资"<<accumPay<<endl;
}

void technician::displayStatus()
{
	cout<<"兼职技术人员"<<name<<"编号"<<individualEmpNo
		<<"级别为"<<grade<<"级,已付本月工资"<<accumPay<<endl;
}

salesman::salesman()
{
	CommRate=0.04; 	//销售提成比例4%
}

void salesman::promote(int)
{
	employee::promote(0); 	//调用基类的升级函数,升0级
}

void salesman::pay()
{
	cout<<"请输入"<<name<<"本月的销售额:";
	cin>>sales;
	accumPay=sales*CommRate; 	//月薪=销售提成
	cout<<"推销员"<<name<<"编号"<<individualEmpNo
		<<"本月工资"<<accumPay<<endl;
}

void salesman::displayStatus()
{
	cout<<"推销员"<<name<<"编号"<<individualEmpNo
		<<"级别为"<<grade<<"级,已付本月工资"<<accumPay<<endl;
}

manager::manager()
{
	monthlyPay=8000; 	//固定月薪8000元
}

void manager::promote(int)
{
	employee::promote(3); 	//调用基类的升级函数,升3级
}

void manager::pay()
{
	accumPay=monthlyPay; 	//月薪总额即固定月薪数
	cout<<"经理"<<name<<"编号"<<individualEmpNo
		<<"本月工资"<<accumPay<<endl;
}

void manager::displayStatus()
{
	cout<<"经理"<<name<<"编号"<<individualEmpNo
		<<"级别为"<<grade<<"级,已付本月工资"<<accumPay<<endl;
}

salesmanager::salesmanager()
{
	monthlyPay=5000;
	CommRate=0.005;
}

void salesmanager::promote(int)
{
	employee::promote(2); 	//调用基类的升级函数,升2级
}

void salesmanager::pay()
{
	cout<<"请输入"<<employee::name<<"所管辖部门本月的销售总额:";
	cin>>sales;
	accumPay=monthlyPay+CommRate*sales;  //月薪=固定月薪+销售提成
	cout<<"销售经理"<<name<<"编号"<<individualEmpNo
		<<"本月工资"<<accumPay<<endl;
}

void salesmanager::displayStatus()
{
	cout<<"销售经理"<<name<<"编号"<<individualEmpNo
		<<"级别为"<<grade<<"级,已付本月工资"<<accumPay<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -