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

📄 empfunc.cpp

📁 《C++语言程序设计(第2版)》例题程序
💻 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::pay()	//计算月薪,空函数
{
}

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

void employee::displayStatus()	//显示人员信息,空函数
{
}

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

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::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::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::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 + -