案例要求:

//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. ActiveSupport::TimeZone; 功能:用户自行选择时区。

    TimeZone类作为一个包装器,服务一个TZinfo::Timezone 实例. 用途: 134个时区的检索. 使用简化的英文单词来取回和显示时区:如"Beijing" => ...

  2. bzoj2705: [SDOI2012]Longge的问题 欧拉定理

    题意:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). 题解:考虑n的所有因子,假设有因子k,那么对答案的贡献gcd(i,n)==k的个数即gcd(i/k,n/k)== ...

  3. 【hive】count() count(if) count(distinct if) sum(if)的区别

    表名: user_active_day (用户日活表) 表内容: user_id(用户id)   user_is_new(是否新用户 1:新增用户 0:老用户) location_city(用户所在地 ...

  4. BZOJ3427 Poi2013 Bytecomputer

    可以YY一下嘛= = 最后一定是-1, -1, ..., -1, 0, 0, ... 0, 1, 1, ..., 1的一个数列 于是f[i][j]表示到了第i个数,新数列的第j项为-1 or 0 or ...

  5. Zynq软硬件协同设计 总结一

    1.Xilinx在2012年推出了新一代的开发工具Vivado开发套件,目前的7系列FPGA既可以用以往的ISE或者XPS进行开发,也可以使用Vivado(为瓦度),而6系列等以前的产品智能使用ISE ...

  6. Centos 中扩展 软件源 的安装 之 Remi ( 为yum 扩展软件源 )

    平时一般都是使用Ubuntu的,最近用起来Centos 发现软件安装方便不是很方便,   在安装过程中接触到了这么一个概念,  就是为yum 安装 扩展源,  这里下面要说的就是其中的  Remi  ...

  7. ASP.NET MVC3默认提供了11种ActionResult的实现

      在System.Web.Mvc命名空间 ActionResult ContentResult EmptyResult FileResult HttpStatusCodeResult HttpNot ...

  8. Netty5.x 和3.x、4.x的区别及注意事项(官方翻译)

    Netty5.x 和3.x.4.x的区别及注意事项 (官方翻译) 本文档列出了Netty5新版本中值得注意变化和新特性列表.帮助你的应用更好的适应新的版本.   不像Netty3.x和4.x之间的变化 ...

  9. Dictionary字典类介绍

    说明     必须包含名空间System.Collection.Generic      Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)      键必须是唯一的,而值不 ...

  10. pthread线程私有数据

    进程内所有的线程共享地址空间,任何声明为静态或外部的变量,或在进程堆声明的变量都可以被进程内的所有线程读写. static,extern,或堆变量的值是上次线程改写的值 一个线程真正拥有的唯一私有存储 ...