首页 > 其他分享 >员工分组案例

员工分组案例

时间:2023-04-12 23:45:43浏览次数:38  
标签:Salary Name int ++ 员工 案例 second 分组

include

using namespace std;

include

include

include

include

/*

  • 公司今天招聘了10个员工(ABCDEFGHIJ),10名员工进入公司之后,需要指派员工在那个部门工作
  • 员工信息有: 姓名 工资组成;部门分为:策划、美术、研发
  • 随机给10名员工分配部门和工资
  • 通过multimap进行信息的插入 key(部门编号) value(员工)
  • 分部门显示员工信息
    */

define CEHUA 0

define MEISHU 1

define YANFA 2

class Worker
{
public:
string m_Name;
int m_Salary;
};

void createWorker(vector&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&v,multimap<int,Worker>&m)
{
for (vector::iterator it = v.begin(); it != v.end(); it++)
{
//产生随机部门编号
int deptId = rand() % 3; // 0 1 2

	//将员工插入到分组中
	//key部门编号,value具体员工
	m.insert(make_pair(deptId, *it));
}

}

void showWorkerByGourp(multimap<int,Worker>&m)
{
// 0 A B C 1 D E 2 F G ...
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 << "美术部门: " << endl;
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 << "研发部门: " << endl;
pos = m.find(YANFA);
count = m.count(YANFA); // 统计具体人数
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);

//2、员工分组
multimap<int, Worker>mWorker;
setGroup(vWorker, mWorker);


//3、分组显示员工
showWorkerByGourp(mWorker);

////测试
//for (vector<Worker>::iterator it = vWorker.begin(); it != vWorker.end(); it++)
//{
//	cout << "姓名: " << it->m_Name << " 工资: " << it->m_Salary << endl;
//}

system("pause");

return 0;

}

标签:Salary,Name,int,++,员工,案例,second,分组
From: https://www.cnblogs.com/gyg1222/p/17311890.html

相关文章

  • 88-云原生操作系统-Jenkins和LNMP架构业务容器化案例
    前提:基础镜像的构建请参考分层镜像构建并部署业务到Kubernetes集群生产案例基于StatefulSet实现MySql业务容器化案例Pod调度运⾏时,如果应⽤不需要任何稳定的标示、有序的部署、删除和扩展,则应该使⽤⼀组⽆状态副本的控制器StatefulSet来部署应⽤,例如Deployment或ReplicaSet更适......
  • 跟踪员工考勤时间和出勤率的四种方法
    用于跟踪员工考勤时间和出勤的程序可以为企业带来各种好处,它可以帮助管理人员掌握正在进行的项目及其完成状态,并让员工更好地了解某些任务需要多长时间,以便他们可以做出相应的计划。当您有效地跟踪员工的出勤时间和出勤率时,工资单处理和合规性也会变得容易很多。如果您想知道如何跟......
  • 多线程应用案例
    需求解析一个Excel中多个sheet的数据,那么此时就可以考虑使用多线程,每个线程解析一个sheet中的数据,然后等待所有的sheet数据解析完成后,再把数据入库在这个需求中,要实现主线程等待所有现场完成shee数据解析操作,第一种方案:采用join()方法publicclassMyJoinTest{publicstaticvoid......
  • 同步合约数据到数据库经典案例2
    在上一篇文章中,我们从eventlog中同步数据。本篇我们尝试直接调用合约来获取数据。在我们的示例合约中,定义了一个struct用来保存数字藏品的上架信息。```javascriptstructsalesInfo{addresssales;addresscollection;uint96token_id;addresstoken;uint......
  • 新员工入职,前端基础环境变量的配置!node、nvm、vue-cli的安装和下载
    1.安装nvm及配置首先下载nvm不要下载node,如果电脑已经有node的话需要卸载node,并使用命令提示符来查看node的位置(wherenode)手动删除nvm下载链接:https://nvm.uihtm.com/下载最新版本,next傻瓜式操作(需要注意的是)选择node.js文件位置,如果需要更改,请在这里进行更改......
  • web网站使用indexedDB缓存大数量案例
    前言及背景indexedDB是html5标准引入的web数据持久化方案之一,现代浏览器大多按照标准对其进行了实现,我在新的项目中用到它来作为持久化数据存储,由于最近在web端项目,每次web前端需要实时计算中间成果预计18G的中间过度数据,预计最终每次生成200M以上的结果数据,在此过程耗时30多......
  • Javaweb-登录界面-filter配合案例-2023-04-11
    1、新建login.jsp登录界面响应的路径<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Login</title></head><body><h1>登录界面</h1><hr><form......
  • #yyds干货盘点 springboot和vue搭建前后端项目实现员工的增删改查
    前言我是歌谣今天继续带来前后端项目的开发上次已经开发了部门管理,今天继续开发员工管理后端第一步empcontroller代码packagecom.itheima.controller;importcom.itheima.pojo.Emp;importcom.itheima.pojo.PageBean;importcom.itheima.pojo.Result;importcom.itheima.s......
  • 使用 selenium 自动化抓取百度案例
    #1.导入fromselenium.webdriver.chrome.serviceimportServicefromseleniumimportwebdriverfromselenium.webdriver.common.byimportByimporttime#下面是阻止闪退的#fromselenium.webdriver.chrome.optionsimportOptions#options=Options()#2.创建......
  • 【服务器数据恢复】 重装系统导致EMC存储xfs文件系统分区丢失的数据恢复案例
    服务器数据恢复环境:EMC某型号存储,20块磁盘组建raid5磁盘阵列,划分2个lun。服务器故障:管理员执行重装系统操作后发现分区发生改变,原先的sdc3分区丢失,该分区采用xfs文件系统,存储了公司重要业务信息,急需恢复该分区数据。服务器数据恢复过程:1、将故障存储中所有磁盘编号后取出,将所......