📄 company.h
字号:
#ifndef company_h
#define company_h
#include"worker.h"
#include<iomanip>
#include<iostream>
#include<string>
using namespace std;
class company
{
public:
company();
~company();
void addworker();
void deleteworker();
void tidy();//数组整理
void sort();//排序
void tsmadd();//各销售经理工资计算
void printout();
void salermanagerprint();//销售经理信息
private:
employee* pworkers[100];
long numworker;
};
company::company()
{
for(long i=0;i<100;i++)
pworkers[i]=NULL;
numworker=0;
}
company::~company()
{
for(long i=0;i<100;i++)
delete pworkers[i];
}
void company::addworker()
{
long index,temp=-1;
cout<<"请选择要输入员工的职位:1.销售员 2.技术员 3.经理 4.销售经理。"<<endl;
cin>>index;
switch(index)
{
case 1:
for(long i=0;i<100;i++)
if(pworkers[i]==NULL)
{
pworkers[i]=new saler;
pworkers[i]->input();
numworker++;
temp=i;
break;
}
break;
case 2:
for(long i=0;i<100;i++)
if(pworkers[i]==NULL)
{
pworkers[i]=new technician;
pworkers[i]->input();
numworker++;
temp=i;
break;
}
break;
case 3:
for(long i=0;i<100;i++)
if(pworkers[i]==NULL)
{
pworkers[i]=new manager;
pworkers[i]->input();
numworker++;
temp=i;
break;
}
break;
case 4:
for(long i=0;i<100;i++)
if(pworkers[i]==NULL)
{
pworkers[i]=new salermanager;
pworkers[i]->input();
numworker++;
temp=i;
break;
}
break;
default:
cout<<"选择错误!"<<endl;
}
for(long i=0;temp>0&&i<100;i++)
if(pworkers[i]!=NULL && i!=temp)
if(pworkers[temp]->getnumber()==pworkers[i]->getnumber())
{
cout<<"错误,发现员工号重复!"<<endl;
pworkers[i]=NULL;
numworker--;
break;
}
tidy();
tsmadd();
}
void company::deleteworker()
{
long index;
cout<<"输入要删除员工的工作号。"<<endl;
cin>>index;
for(long i=0;i<100;i++)
{
if(pworkers[i]!=NULL)
if(pworkers[i]->getnumber()==index)
{
delete pworkers[i];
pworkers[i]=NULL;
numworker--;
cout<<"已删除"<<index<<"号员工"<<endl;
}
}
tidy();
}
void company::tidy() //数组整理
{
long ti=0;
employee* tworkers[100];
for(long i=0;i<100;i++)
tworkers[i]=NULL;
for(long i=0;i<100;i++)
if(pworkers[i]!=NULL)
{
tworkers[ti]=pworkers[i];
ti++;
}
for(long i=0;i<100;i++)
pworkers[i]=NULL;
for(long i=0;i<100;i++)
if(tworkers[i]!=NULL)
pworkers[i]=tworkers[i];
}
void company::sort()//排序
{
employee* pworker;
for(long i=numworker-1;i>0;i--)
for(long j=0;j<i;j++)
{
if(pworkers[j]->getwage()<pworkers[j+1]->getwage())
{
pworker=pworkers[j+1];
pworkers[j+1]=pworkers[j];
pworkers[j]=pworker;
}
}
for(long i=0;pworkers[i]!=NULL;i++)
pworkers[i]->setrank(i+1);
}
void company::tsmadd()//销售经理工资计算
{
for(long index=0;index<100;index++)
{
if(pworkers[index]!=NULL)
{
if(pworkers[index]->getjob()=="销售经理")
{
for(long index2=0;index2<100;index2++)
if(pworkers[index2]!=NULL)
{
if(pworkers[index2]->getjob()=="销售员"&& pworkers[index2]->getdepartment()==pworkers[index]->getdepartment())
pworkers[index]->settsm(pworkers[index]->gettsm()+pworkers[index2]->getsalemoney());
}
}
}
}
}
void company::salermanagerprint()
{
long index;
char word=0,word2;
while(word!='q')
{
cout<<"请输入销售经理的职工号"<<endl;
cin>>index;
for(long i=0;i<100;i++)
if(pworkers[i]!=NULL)
if(pworkers[i]->getjob()=="销售经理"&& pworkers[i]->getnumber()==index)
{
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"| 职工号 |"<<" 姓名 |"<<" 部门 |"<<" 性别 |"<<" 年龄 |"<<" 岗位 |"<<" 工资 |"<<" 排名 |"<<endl;
cout<<"|"<<setw(8)<<pworkers[i]->getnumber()<<"|"<<setw(14)<<pworkers[i]->getname()<<"|"<<setw(6)<<pworkers[i]->getdepartment()<<"|"<<setw(6)<<pworkers[i]->getsex()<<"|"<<setw(6)<<pworkers[i]->getage()<<"|"<<setw(10)<<pworkers[i]->getjob()<<"|"<<setw(12)<<pworkers[i]->getwage()<<"|"<<setw(8)<<pworkers[i]->getrank()<<"|"<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"输入任意字母显示该部门销售员信息"<<endl;
cin>>word2;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"| 职工号 |"<<" 姓名 |"<<" 部门 |"<<" 性别 |"<<" 年龄 |"<<" 岗位 |"<<" 工资 |"<<" 排名 |"<<endl;
for(long j=0;j<100;j++)
if(pworkers[j]!=NULL)
if(pworkers[j]->getjob()=="销售员"&& pworkers[j]->getdepartment()==pworkers[i]->getdepartment() && j!=i)
cout<<"|"<<setw(8)<<pworkers[j]->getnumber()<<"|"<<setw(14)<<pworkers[j]->getname()<<"|"<<setw(6)<<pworkers[j]->getdepartment()<<"|"<<setw(6)<<pworkers[j]->getsex()<<"|"<<setw(6)<<pworkers[j]->getage()<<"|"<<setw(10)<<pworkers[j]->getjob()<<"|"<<setw(12)<<pworkers[j]->getwage()<<"|"<<setw(8)<<pworkers[j]->getrank()<<"|"<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
}
cout<<"出入\"q\"结束数据输入,其他字母继续输入。"<<endl;
cin>>word;
}
}
void company::printout()
{
long index;
cout<<"请选择打印的项目:1.人员信息。 2.销售经理信息。"<<endl;
cin>>index;
sort();
switch(index)
{
case 1:
{
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"| 职工号 |"<<" 姓名 |"<<" 部门 |"<<" 性别 |"<<" 年龄 |"<<" 岗位 |"<<" 工资 |"<<" 排名 |"<<endl;
for(long index=0;index<100;index++)
if(pworkers[index]!=NULL)
{
cout<<"|"<<setw(8)<<pworkers[index]->getnumber()<<"|"<<setw(14)<<pworkers[index]->getname()<<"|"<<setw(6)<<pworkers[index]->getdepartment()<<"|"<<setw(6)<<pworkers[index]->getsex()<<"|"<<setw(6)<<pworkers[index]->getage()<<"|"<<setw(10)<<pworkers[index]->getjob()<<"|"<<setw(12)<<pworkers[index]->getwage()<<"|"<<setw(8)<<pworkers[index]->getrank()<<"|"<<endl;
}
cout<<"---------------------------------------------------------------------------------"<<endl;
break;
}
case 2:
{
salermanagerprint();
break;
}
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -