小企业员工管理
- 每个员工都具有基本信息(姓名、性别、年龄、职务、工作时间等)但是根据员工类型不同可能属性也不一样。
- 程序初始化时,需要初始化企业的员工基本信息。并打印输出。
- 可以增加新入职的员工。
- 删除已经退休的或离职的员工。
- 计算员工的工资(规则合理即可,不同员工的工资计算不一样)。
- 可以按名字或工号查询具体员工信息。
#include
#include
#include<stdio.h>
using namespace std;
class CCompany
{
private:
string na,infor;
int n,income,salary,number;
CEmployee* E[3];
public:
CCompany();
int Edit();
int GetSalary();
int GetNumber();
CEmployee* getEmployee();
void output();
~CCompany();
protected:
};
CCompany::CCompany()
{
}
CCompany::~CCompany()
{
}
int CCompany::Edit()
{
int i=0;
cout<<“输入公司名公司相关信息公司收入员工工资支出员工人数”<<endl;
cin>>na>>infor>>income>>salary>>number;
for(i;i<3;i++)
{
E[i]=new CEmployee();
E[i]->Edit();
}
}
int CCompany::GetSalary()
{
return salary;
}
int CCompany::GetNumber()
{
return number;
}
void CCompany::output()
{
cout<<na <<infor <<income <<endl;
}
CEmployee* CCompany::getEmployee()
{
return *E;
}
class CEmployee
{
private:
string name,sex,id,number;
int age;
public:
int time;
CEmployee();
int Edit();
int output();
int GetAge();
virtual void pay();
string GetName();
string GetNumber();
~CEmployee();
protected:
};
CEmployee::CEmployee()
{
}
CEmployee::~CEmployee()
{
}
int CEmployee::Edit()
{
cout<<“请依次输入姓名性别年龄身份证工号入职时间”<<endl;
cin>>name;
cin>>sex;
cin>>age;
cin>>id;
cin>>number;
cin>>time;
}
int CEmployee::output()
{
cout<<name<<endl;
cout<<sex<<endl;
cout<<age<<endl;
cout<<id<<endl;
cout<<number<<endl;
cout<<time<<endl;
}
int CEmployee::GetAge()
{
return age;
}
void CEmployee::pay()
{
cout<<“月薪为:¥1000”<<endl;
}
string CEmployee::GetName()
{
return name;
}
string CEmployee::GetNumber()
{
return number;
}
class CManager : public CEmployee
{
private:
int worktime;
string duty;
public:
CManager();
int Edit();
void output();
void pay();
~CManager();
protected:
};
CManager::CManager()
{
}
CManager::~CManager()
{
}
int CManager::Edit()
{
CEmployee::Edit();
cout<<“输入职位工作时间”<<endl;
cin>>duty>>worktime;
}
void CManager::output()
{
CEmployee::output();
cout<<duty<<endl;
cout<<worktime<<endl;
}
void CManager::pay()
{
cout<<“月薪为:¥20000”<<endl;
}
class CSmanager : public CEmployee
{
private:
int worktime;
string duty;
public:
CSmanager();
int Edit();
void output();
void pay();
~CSmanager();
protected:
};
CSmanager::CSmanager()
{
}
CSmanager::~CSmanager()
{
}
int CSmanager::Edit()
{
CEmployee::Edit();
cout<<“输入职位工作时间”<<endl;
cin>>duty>>worktime;
}
void CSmanager::output()
{
cout<<duty<<endl;
cout<<worktime<<endl;
}
void CSmanager::pay()
{
cout<<“月薪为:¥50000”<<endl;
}
class CFinancalStaff : public CEmployee
{
private:
int worktime;
string duty;
public:
CFinancalStaff();
int Edit();
void output();
void pay();
~CFinancalStaff();
protected:
};
CFinancalStaff::CFinancalStaff()
{
}
CFinancalStaff::~CFinancalStaff()
{
}
int CFinancalStaff::Edit()
{
CEmployee::Edit();
cout<<“输入职位工作时间”<<endl;
cin>>duty>>worktime;
}
void CFinancalStaff::output()
{
cout<<duty<<endl;
cout<<worktime<<endl;
}
void CFinancalStaff::pay()
{
cout<<“月薪为:¥12000”<<endl;
}
int main()
{
int n,t,i=0,sum=0,k,flag,m;
string name1,num1;
CEmployee* e[3];
CCompany c1;
c1.Edit();
c1.output();
*e=c1.getEmployee();
sum=c1.GetSalary()*c1.GetNumber();
cout<<sum<<endl;
cout<<“1.增加新员工”<<endl;
cout<<“2.删除退休或离职员工”<<endl;
cout<<"3.输入你想查询的员工”<<endl;
cout<<“4.输入你想查询的员工”<<endl;
cout <<“请输入你想选择的功能:”<< endl;
cin>>n;
switch(n)
{
case 1:
cout<<“新增员工数”<<endl;
cin>>t;
for(i=c1.GetNumber();i<t+c1.GetNumber();i++)
{
cout<<“请输入第”<<i+1<<“个员工的信息:”<<endl;
cout<<“1为普通员工 2为中层管理人员 3为高层管理人员 4为财务人员” <<endl;
cin>>m;
switch(m)
{
case 1:
{
e[i] = new CEmployee();
break;
}
case 2:
{
e[i]=(CEmployee *)new CManager();
break;
}
case 3:
{
e[i] =(CEmployee *)new CSmanager();
break;
}
case 4:
{
e[i] = (CEmployee *)new CFinancalStaff();
break;
}
}
e[i]->Edit();
cout<<“第”<<i+1<<“个员工的信息录入完毕!”<<endl;
}
break;
case 2:
for(i=0;i<c1.GetNumber();i++)
{
if(e[i]->GetAge()>=65)
{
delete e[i];
}
}
break;
case 3:
cout<<“请输入你想查询的职工姓名:”<<endl;
cin>>name1;
flag=1;
for(i=0;i<c1.GetNumber();i++)
{
if(e[i]->GetName()==name1)
{
flag=0;
k=i;
cout<<“查询的职工信息如下:”<<endl;
cout<<“姓名性别年龄身份证工号入职时间”<<endl;
cout<<e[k]->output()<<endl;
}
}
if(flag=1)
{
cout<<“不存在此职工!”<<endl;
}
break;
case 4:
cout<<“请输入你想查询的职工工号:”<<endl;
cin>>num1;
flag=1;
for(i=0;i<c1.GetNumber();i++)
{
if(e[i]->GetNumber()==num1)
{
flag=0;
k=i;
cout<<“查询的职工信息如下:”<<endl;
cout<<“姓名性别年龄身份证工号入职时间”<<endl;
cout<<e[k]->output()<<endl;
}
}
if(flag=1)
{
cout<<“不存在此职工!”<<endl;
}
break;
default:
break;
}
return 0;
}
自己写的,可能不大好。