[代码]multimap员工分组案例
案例要求:
//multimap 案例
//公司今天招聘了 5 个员工,5 名员工进入公司之后,需要指派员工在那个部门工作
//人员信息有: 姓名 年龄 电话 工资等组成
//通过 Multimap 进行信息的插入 保存 显示
//分部门显示员工信息 显示全部员工信息
程序源码:
#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<time.h>
#include<stdlib.h>
using namespace std; //multimap 案例
//公司招聘了 5 个员工,5 名员工进入公司之后,需要指派员工在那个部门工作
//人员信息有: 姓名 年龄 电话 工资等组成
//通过 Multimap 进行信息的插入 保存 显示
//分部门显示员工信息 显示全部员工信息 #define SALE_DEPARTMENT 1 //销售部
#define DEVELOP_DEPARTMENT 2 //研发部
#define FINACIAL_DEPARTMENT 3 //财务部 class Worker
{
public:
string mName;
int mAge;
string mTele;
double mSalary;
};
//创建员工
void CreatWorker(vector<Worker>&vWorker)
{
string nameSeed = "ABCDE";
for (int i = ; i < ; i++)
{
Worker worker;
worker.mName = "员工";
worker.mName += nameSeed[i]; worker.mAge = rand() % +;
worker.mSalary = rand() % + ;
worker.mTele = "+86-88888888";
//保存员工信息
vWorker.push_back(worker);
}
}
//员工分组
void WorkerGroup(vector<Worker>& vWorker, multimap<int, Worker>& workerGroup)
{
srand(time(NULL));
//把员工随机分配到不同部门
for (vector<Worker>::iterator it = vWorker.begin(); it != vWorker.end(); it++)
{
int DepartID = rand() % + ;
switch (DepartID)
{
case SALE_DEPARTMENT:
workerGroup.insert(make_pair(SALE_DEPARTMENT, *it));
break;
case DEVELOP_DEPARTMENT:
workerGroup.insert(make_pair(DEVELOP_DEPARTMENT, *it));
break;
case FINACIAL_DEPARTMENT:
workerGroup.insert(make_pair(FINACIAL_DEPARTMENT, *it));
break;
default:
break;
}
}
} void ShowWorkerGroup(multimap<int, Worker>& workerGroup,int DepartID)
{
multimap<int, Worker>::iterator it = workerGroup.find(DepartID);
//找当前部门总人数
int workerCount = workerGroup.count(DepartID);
int num = ;
for (multimap<int, Worker>::iterator dit = it; dit != workerGroup.end() && num < workerCount; dit++, num++)
{
cout << "姓名:" << dit->second.mName << " 年龄:" << dit->second.mAge << " 电话:" << dit->second.mTele << " 工资:" << dit->second.mSalary << endl;
}
}
//打印每一分组员工信息
void PrintWorkerGroup(multimap<int, Worker>& workerGroup)
{
//打印销售部门员工的信息
cout << "销售部门:" << endl;
ShowWorkerGroup(workerGroup, SALE_DEPARTMENT);
//打印研发部门员工信息
cout << "研发部门:" << endl;
ShowWorkerGroup(workerGroup, DEVELOP_DEPARTMENT);
//打印财务部门员工信息:
cout << "财务部门:" << endl;
ShowWorkerGroup(workerGroup, FINACIAL_DEPARTMENT); } int main()
{
//存放新员工信息
vector<Worker> vWorker;
//multimap保存分组信息
multimap<int, Worker> workerGroup;
//创建员工
CreatWorker(vWorker);
//员工分组
WorkerGroup(vWorker, workerGroup);
//打印每一分组员工信息
PrintWorkerGroup(workerGroup);
return ;
}
运行结果:

[代码]multimap员工分组案例的更多相关文章
- C++ STL 之 multimap案例之员工分组
#include <iostream> #include <vector> #include <map> #include <string> #incl ...
- Java生鲜电商平台-一次代码重构的实战案例
Java生鲜电商平台-一次代码重构的实战案例 说明,Java开源生鲜电商平台-一次代码重构的实战案例,根据实际的例子,分析出重构与抽象,使代码更加的健壮与高效. 1.业务说明 系统原先已有登录功能,我 ...
- 产品运营数据分析—SPSS数据分组案例
产品运营数据分析-SPSS数据分组案例 当我们的样本量过大,譬如以前讲过的,EXCEL2010最大只支持1048576行.16384列,尤其是当行数大于30万,一般的办公电脑处理都比较吃力,所以推荐数 ...
- 0507 构造代码块和static案例,接口interface
0507构造代码块和static案例,接口interface [重点] 1.局部变量,成员变量,静态变量的特点 2.接口 接口语法:interface A {} 接口内的成员变量[缺省属性]publi ...
- mongodb命令行group分组和java代码中group分组
group分组统计是数据库比较常用的功能,mongodb也不例外.不过相对于普通的增删改查,group操作就略微麻烦一些, 这里对group在shell中的操作.使用java原生代码操作以及集成spr ...
- Bash远程代码执行漏洞(CVE-2014-6271)案例分析
Web服务器和CGI的关系 什么是WEB服务器(IIS.Nginx.Apache) WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务.(1)应用层使用HT ...
- python+unittest框架第三天unittest之分离测试固件和公共代码,跳过案例的执行
我们在时间工作中,会将整个项目的代码分别放置多个模块中去编写.方便后期项目维护,比如,我们的web项目可能有多个IP地址,每个IP地址代表不同的测试环境.测试环境与Bat环境或者验收环境等.这就需要我 ...
- OAF_开发系列28_实现OAF中反编译获取class包代码JD Compiler(案例)
20150730 Created By BaoXinjian
- JSP动态员工登陆案例
package web; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import j ...
随机推荐
- C# winform实现右下角弹出窗口结果的方法
using System.Runtime.InteropServices; [DllImport("user32")] private static extern bool Ani ...
- 前端工程构建工具——Yeoman
一.Yeoman 简介 通常在开发新项目时我们都需要配置工程环境,开发目录,需要下载一些库.框架文件(如 jQuery.Backbone 等),配置编译环境(Less.Sass.Coffeescrip ...
- 201621123006 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 List中指定元素的删除(题集题目) 1.1 实验总结.并回答:列举至少2种 ...
- Beta阶段第2周/共2周 Scrum立会报告+燃尽图 11
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2411] 版本控制:https://git.coding.net/liuyy08 ...
- jQuery progression 表单进度
progression.js是一款表单输入完成进度插件.支持自定义提示框大小.方向.左边.动画效果.间距等,也支持是否显示进度条.字体大小.颜色.背景色等. 在线实例 实例演示 使用方法 <fo ...
- Linux C 数据结构 ->单向链表<-(~千金散尽还复来~)
之前看到一篇单向链表的博文,代码也看着很舒服,于是乎记录下来,留给自己~,循序渐进,慢慢 延伸到真正的内核链表~(敢问路在何方?路在脚下~) 1. 简介 链表是Linux 内核中最简单,最普通的数据结 ...
- tensorflow中summary操作
tf中 tensorboard 工具通过读取在网络训练过程中保存到本地的日志文件实现数据可视化,日志数据保存主要用到 tf.summary 中的方法. tf.summary中summary是tf中的一 ...
- 汉诺塔(Hanoi)——小小算法
传送门: 袁咩咩的小小博客 汉诺(Hanoi)塔源于古印度,是非常著名的智力趣题,大意如下: 勃拉玛是古印度的一个开天辟地的神,其在一个庙宇中留下了三根金刚石的棒,第一 根上面套着64个大小不一的圆形 ...
- LG2831 愤怒的小鸟
题意 分析 看n的范围只有18,考虑状压dp. 用\(f(s)\)表示过集合s中的点所需最小的抛物线数量. 然后枚举点对算抛物线,判断其他点是否在抛物线上来转移. 细节 判断能否构成抛物线只需要判断斜 ...
- streamsets 错误记录处理
我们可以在stage 级别,或者piepline 级别进行error 处理配置 pipeline的错误记录处理 discard(丢踢) send response to Origin pipeline ...