题目要求://公司今天招聘5个员工,5名员工进入公司之后,需要指派员工在那个部门工作人员信息有:姓名,年龄,电话和工资等组成,通过multimap进行信息的插入保存和显示分部门显示员工信息。
#include<iostream>
#include<map>
#include<string>
#include<vector>
#include<stdlib.h>
#include<time.h>
using namespace std;
#define SALE_DEPARTMENT 1
#define DEVELEP_DEPATMENT 2
#define FINACE_DEPARTMENT 3
//公司今天招聘5个员工,5名员工进入公司之后,需要指派员工在那个部门工作
//人员信息有:姓名,年龄,电话和工资等组成
//通过multimap进行信息的插入保存和显示
//分部门显示员工信息
class Worker
{
public:
string mName;
int mAge;
string mTele;
int mSalary;
};
//创建员工
void Create_Worker(vector<Worker>& vWorker)
{
string nameSeed="ABCDE";
//vector<Worker>vWorker;
for(int i=0;i<5;i++)
{
Worker worker;
worker.mName="选手";
worker.mName+=nameSeed[i];
worker.mAge=rand()%10+20;
worker.mTele="010-8888888";
worker.mSalary=rand()%10000+10000;
vWorker.push_back(worker);
}
}
//员工分组
void WorkerByGroup(vector<Worker>& vWorker,multimap<int,Worker>& workerGroup)
{
//随即把员工分配到不同的部门
for(vector<Worker>::iterator it=vWorker.begin();it!=vWorker.end();it++)
{
int departID=rand()%3+1;
switch(departID)
{
case SALE_DEPARTMENT:
workerGroup.insert(make_pair(SALE_DEPARTMENT,*it));
break;
case DEVELEP_DEPATMENT:
workerGroup.insert(make_pair(DEVELEP_DEPATMENT,*it));
break;
case FINACE_DEPARTMENT:
workerGroup.insert(make_pair(FINACE_DEPARTMENT,*it));
break;
default:
break;
}
}
}
void PrintWorker_Information(multimap<int,Worker>& workerGroup,int departID)
{
//打印销售员工信息
multimap<int,Worker>::iterator it=workerGroup.find(departID);
//找当前部门总人数
int departCount=workerGroup.count(departID);
int num=0;
for(multimap<int,Worker>::iterator pos=it;pos!=workerGroup.end()&&num<departCount;pos++,num++)
{
cout<<"姓名:"<<pos->second.mName<<" 年龄:"<<pos->second.mAge<<" 工资:"<<pos->second.mSalary<<" 电话:"<<pos->second.mTele<<endl;
}
}
//打印每一部分员工信息
void PrintWorkerByGroup(multimap<int,Worker>& workerGroup)
{
cout<<"销售部门"<<endl;
PrintWorker_Information(workerGroup,SALE_DEPARTMENT);
cout<<"开发部门"<<endl;
PrintWorker_Information(workerGroup,DEVELEP_DEPATMENT);
cout<<"财务部门"<<endl;
PrintWorker_Information(workerGroup,FINACE_DEPARTMENT);
}
int main()
{
srand(time(NULL));
//存放员工信息
vector<Worker>vWorker;
//保存分组信息
multimap<int,Worker>workerGroup;
//创建员工
Create_Worker(vWorker);
//员工分组
WorkerByGroup(vWorker,workerGroup);
//打印每一部分员工信息
PrintWorkerByGroup(workerGroup);
return 0;
}