1、公司招聘10名员工(ABCDEFGHIJ),随机分配到3个部门(策划、美术、研发)
2、员工信息:姓名、工资
3、通过multimap进行信息的插入 key(部门编号) value(员工)
4、分部门显示员工信息
#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <ctime>
using namespace std;
/*
需求:
1、公司招聘10名员工(ABCDEFGHIJ),随机分配到3个部门(策划、美术、研发)
2、员工信息:姓名、工资
3、通过multimap进行信息的插入 key(部门编号) value(员工)
4、分部门显示员工信息
*/
#define CEHUA 0
#define MEISHU 1
#define RD 2
class Worker
{
public:
string m_Name;
int m_Salary;
};
//创建10名员工
void createWorker(vector<Worker>& v)
{
string nameSeed="ABCDEFGHIJ";
for (int i = 0; i < 10; i++)
{
Worker worker;
worker.m_Name="员工";
worker.m_Name+=nameSeed[i];
worker.m_Salary=rand() % 10000 + 10000; //随机产生工资 10000~19999
v.push_back(worker); //将员工放入容器中
}
}
//员工分组
void setGroup(vector<Worker>& v,multimap<int,Worker>& m)
{
for(vector<Worker>::iterator it = v.begin();it!=v.end();it++)
{
//产生随机的编号
int deptId = rand() % 3; //0 1 2
//将员工插入容器
//key deptId,value *it;
m.insert(make_pair(deptId,*it));
}
}
//分组显示
void showWorkerByGroup(multimap<int,Worker>& m)
{
cout<<"策划部门: "<<endl;
multimap<int,Worker>::iterator pos = m.find(CEHUA);
int count =m.count(CEHUA); //统计具体的人数
int index = 0;
for(;pos!=m.end() && index <count;pos++,index++)
{
cout<<"姓名:"<<pos->second.m_Name<<" 工资:"<<pos->second.m_Salary<<endl;
}
cout<<"---------------"<<endl;
cout<<"美术部门:";
pos = m.find(MEISHU);
count =m.count(MEISHU); //统计具体的人数
index = 0;
for(;pos!=m.end() && index <count;pos++,index++)
{
cout<<"姓名:"<<pos->second.m_Name<<" 工资:"<<pos->second.m_Salary<<endl;
}
cout<<"---------------"<<endl;
cout<<"研发部门:";
pos = m.find(RD);
count =m.count(RD); //统计具体的人数
index = 0;
for(;pos!=m.end() && index <count;pos++,index++)
{
cout<<"姓名:"<<pos->second.m_Name<<" 工资:"<<pos->second.m_Salary<<endl;
}
}
int main()
{
srand((unsigned int)time(NULL));
//1、创建员工
vector<Worker> vWorker;
createWorker(vWorker);
for (vector<Worker>::iterator it=vWorker.begin();it!=vWorker.end(); it++)
{
cout<<"姓名:"<< it->m_Name <<" 工资:"<<it->m_Salary<<endl;
}
//2、员工分组
multimap<int,Worker> mWorker;
setGroup(vWorker,mWorker);
//3、分组显示员工
showWorkerByGroup(mWorker);
}
姓名:员工A 工资:18407
姓名:员工B 工资:13812
姓名:员工C 工资:14174
姓名:员工D 工资:18192
姓名:员工E 工资:10849
姓名:员工F 工资:14103
姓名:员工G 工资:10687
姓名:员工H 工资:12572
姓名:员工I 工资:13335
姓名:员工J 工资:15919
策划部门:
姓名:员工C 工资:14174
姓名:员工E 工资:10849
姓名:员工H 工资:12572
姓名:员工J 工资:15919
---------------
美术部门:姓名:员工D 工资:18192
姓名:员工F 工资:14103
姓名:员工G 工资:10687
---------------
研发部门:姓名:员工A 工资:18407
姓名:员工B 工资:13812
姓名:员工I 工资:13335
姓名:员工A 工资:17943
姓名:员工B 工资:10191
姓名:员工C 工资:14192
姓名:员工D 工资:19341
姓名:员工E 工资:13503
姓名:员工F 工资:16553
姓名:员工G 工资:10165
姓名:员工H 工资:17228
姓名:员工I 工资:14151
姓名:员工J 工资:11458
策划部门:
姓名:员工E 工资:13503
姓名:员工F 工资:16553
---------------
美术部门:姓名:员工A 工资:17943
姓名:员工G 工资:10165
姓名:员工H 工资:17228
姓名:员工J 工资:11458
---------------
研发部门:姓名:员工B 工资:10191
姓名:员工C 工资:14192
姓名:员工D 工资:19341
姓名:员工I 工资:14151
姓名:员工A 工资:17276
姓名:员工B 工资:18981
姓名:员工C 工资:10874
姓名:员工D 工资:16020
姓名:员工E 工资:13056
姓名:员工F 工资:16133
姓名:员工G 工资:13501
姓名:员工H 工资:16499
姓名:员工I 工资:17277
姓名:员工J 工资:15930
策划部门:
姓名:员工A 工资:17276
姓名:员工B 工资:18981
---------------
美术部门:姓名:员工C 工资:10874
姓名:员工D 工资:16020
姓名:员工F 工资:16133
姓名:员工H 工资:16499
姓名:员工J 工资:15930
---------------
研发部门:姓名:员工E 工资:13056
姓名:员工G 工资:13501
姓名:员工I 工资:17277
done!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。