小企业员工管理

小企业员工管理

  1. 每个员工都具有基本信息(姓名、性别、年龄、职务、工作时间等)但是根据员工类型不同可能属性也不一样。
  2. 程序初始化时,需要初始化企业的员工基本信息。并打印输出。
  3. 可以增加新入职的员工。
  4. 删除已经退休的或离职的员工。
  5. 计算员工的工资(规则合理即可,不同员工的工资计算不一样)。
  6. 可以按名字或工号查询具体员工信息。
    #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;
}

自己写的,可能不大好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值