案例要求:

//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员工分组案例的更多相关文章

  1. C++ STL 之 multimap案例之员工分组

    #include <iostream> #include <vector> #include <map> #include <string> #incl ...

  2. Java生鲜电商平台-一次代码重构的实战案例

    Java生鲜电商平台-一次代码重构的实战案例 说明,Java开源生鲜电商平台-一次代码重构的实战案例,根据实际的例子,分析出重构与抽象,使代码更加的健壮与高效. 1.业务说明 系统原先已有登录功能,我 ...

  3. 产品运营数据分析—SPSS数据分组案例

    产品运营数据分析-SPSS数据分组案例 当我们的样本量过大,譬如以前讲过的,EXCEL2010最大只支持1048576行.16384列,尤其是当行数大于30万,一般的办公电脑处理都比较吃力,所以推荐数 ...

  4. 0507 构造代码块和static案例,接口interface

    0507构造代码块和static案例,接口interface [重点] 1.局部变量,成员变量,静态变量的特点 2.接口 接口语法:interface A {} 接口内的成员变量[缺省属性]publi ...

  5. mongodb命令行group分组和java代码中group分组

    group分组统计是数据库比较常用的功能,mongodb也不例外.不过相对于普通的增删改查,group操作就略微麻烦一些, 这里对group在shell中的操作.使用java原生代码操作以及集成spr ...

  6. Bash远程代码执行漏洞(CVE-2014-6271)案例分析

    Web服务器和CGI的关系 什么是WEB服务器(IIS.Nginx.Apache) WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务.(1)应用层使用HT ...

  7. python+unittest框架第三天unittest之分离测试固件和公共代码,跳过案例的执行

    我们在时间工作中,会将整个项目的代码分别放置多个模块中去编写.方便后期项目维护,比如,我们的web项目可能有多个IP地址,每个IP地址代表不同的测试环境.测试环境与Bat环境或者验收环境等.这就需要我 ...

  8. OAF_开发系列28_实现OAF中反编译获取class包代码JD Compiler(案例)

    20150730 Created By BaoXinjian

  9. JSP动态员工登陆案例

    package web; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import j ...

随机推荐

  1. C# DataTable Compute方法的使用

    在开发中需要对DataTable的数据进行处理,比如累加,求最大最小及平均值等,以前都采用手工对DataTable进行循环并计算的方式,现在发现DataTable的Compute方法可以轻松实现这些功 ...

  2. uva-11021-全概率公式

    https://vjudge.net/problem/UVA-11021 有n个球,每只的存活期都是1天,他死之后有pi的概率产生i个球(0<=i<n),一开始有k个球,问m天之后所有球都 ...

  3. ES6学习笔记(一)——扩展运算符和解构赋值

    前言 随着前端工程化的快速推进,在项目中使用ES6甚至更高的ES7等最近特性早已不是什么新鲜事.之前还觉得既然浏览器支持有限,那了解一下能看懂就好,然而仅仅了解还是不够的,现在放眼望去,那些成熟框架的 ...

  4. python学习笔记(一)---python下载以及环境的安装

    转载网址:https://www.runoob.com/python/python-install.html 1.下载python安装包: 安装包下载网址(如下图所在的网址):https://www. ...

  5. java并发编程:线程安全管理类--原子操作类--AtomicInteger

    在java并发编程中,会出现++,--等操作,但是这些不是原子性操作,这在线程安全上面就会出现相应的问题.因此java提供了相应类的原子性操作类. 1.AtomicInteger

  6. URAL 1040 Airline Company 构造,思路 难度:2

    http://acm.timus.ru/problem.aspx?space=1&num=1040 题目要求在一个联通无向图中找出一种方法给边标号使得任意一个有多条边的点,边的号码的最大公约数 ...

  7. POJ 3087 Shuffle'm Up 线性同余,暴力 难度:2

    http://poj.org/problem?id=3087 设:s1={A1,A2,A3,...Ac} s2={Ac+1,Ac+2,Ac+3,....A2c} 则 合在一起成为 Ac+1,A1,Ac ...

  8. 修改Intelij IDEA的maven依据下载为国内镜像(阿里)

    1.win7环境,默认情况下在用户目录的.m2下自己新建setting文件.QQ群交流:697028234 .m2\settings.xml 2.settings.xml文件内容为: <sett ...

  9. IE 问题集合

    1.zIndex在ie需要 先对比父级的层级

  10. Linux运维学习笔记-软硬链接知识总结

    文件链接   硬链接,通过索引节点来进行链接 硬链接原理图 硬链接的创建: 直接执行命令“ln 源文件 硬链接文件”,即可完成创建硬链接. 硬链接知识小结: 1.具有相同Inode节点号的多个文件是互 ...