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

  1 //案列-员工分组
2 //描述:公司招聘10个员工(ABCDEFGHIJ),10名指派员工进入公司,需要指派那个员工在那个部门工作
3 //员工信息有:姓名 工资组成; 部门分为:策划 美术 研发
4 //随机给10名员工分配工资和部门
5 //通过multimap进行信息的插入,key(部门编号) value员工
6 //分部门显示员工信息
7
8 #include<iostream>
9 #include<string>
10 #include<map>
11 #include<vector>
12
13
14 using namespace std;
15 #define CEHUA 0
16 #define MEISHU 1
17 #define YANFA 2
18
19 class Worker
20 {
21 public:
22
23 string m_Name;
24 int m_Salary;
25 };
26
27 void createWorker(vector<Worker>& v)
28 {
29 string nameSeed = "ABCDEFGHIJ";
30 for (int i = 0; i < 10; i++)
31 {
32 Worker worker;
33 worker.m_Name = "员工";
34 worker.m_Name += nameSeed[i];
35
36 worker.m_Salary = rand() % 10000 + 10000; //10000-19999
37
38 //将员工放入容器中
39 v.push_back(worker);
40
41
42 }
43 }
44 //员工分组
45 void setGroup(vector<Worker>& v, multimap<int, Worker>& m)
46 {
47 for (vector<Worker>::iterator it = v.begin(); it != v.end(); it++)
48 {
49 //产生随机部门编号
50 int deptId = rand() % 3; //0 1 2
51 //将员工插入到分组中
52 //key代表部门标号 value代表员工
53 m.insert(make_pair(deptId, *it));
54 }
55 }
56
57 void showWorkerByGroup(multimap<int, Worker>& m)
58 {
59
60 cout << "策划部门:" << endl;
61
62 multimap<int, Worker>::iterator pos = m.find(CEHUA);
63 int count = m.count(CEHUA); //统计具体人数
64 int index = 0;
65 for (; pos != m.end()&& index<count; pos++,index++)
66 {
67 cout << "姓名:" << pos->second.m_Name << "\t工资:" << pos->second.m_Salary << endl;
68
69 }
70
71 cout << "------------------------------" << endl;
72 cout << "美术部门:" << endl;
73 pos = m.find(MEISHU);
74 count = m.count(MEISHU); //统计具体人数
75 index = 0;
76 for (; pos != m.end() && index < count; pos++, index++)
77 {
78 cout << "姓名:" << pos->second.m_Name << "\t工资:" << pos->second.m_Salary << endl;
79
80 }
81
82 cout << "------------------------------" << endl;
83 cout << "研发部门:" << endl;
84 pos = m.find(YANFA);
85 count = m.count(YANFA); //统计具体人数
86 index = 0;
87 for (; pos != m.end() && index < count; pos++, index++)
88 {
89 cout << "姓名:" << pos->second.m_Name << "\t工资:" << pos->second.m_Salary << endl;
90
91 }
92
93
94
95 }
96 int main()
97 {
98 srand((unsigned int)time(NULL));
99 //1.创建员工
100 vector<Worker>vWorker;
101 createWorker(vWorker);
102
103 //2.员工分组
104 multimap<int, Worker>mWorker;
105 setGroup(vWorker, mWorker);
106
107 //3.分组显示员工
108 showWorkerByGroup(mWorker);
109
110 //测试
111 //for (vector<Worker>::iterator it = vWorker.begin(); it != vWorker.end(); it++)
112 //{
113 // cout << "姓名:" << it->m_Name << "\t工资:" << (*it).m_Salary << endl;
114 //}
115
116 system("pause");
117 return 0;
118 }

每次打印结果都不一样 随机分配

C++ //案列-员工分组 ( 容器存放,查找,打印,统计,宏定义 ,随机)的更多相关文章

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

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

  2. [代码]multimap员工分组案例

    案例要求: //multimap 案例//公司今天招聘了 5 个员工,5 名员工进入公司之后,需要指派员工在那个部门工作//人员信息有: 姓名 年龄 电话 工资等组成//通过 Multimap 进行信 ...

  3. 大数据技术之_14_Oozie学习_Oozie 的简介+Oozie 的功能模块介绍+Oozie 的部署+Oozie 的使用案列

    第1章 Oozie 的简介第2章 Oozie 的功能模块介绍2.1 模块2.2 常用节点第3章 Oozie 的部署3.1 部署 Hadoop(CDH版本的)3.1.1 解压缩 CDH 版本的 hado ...

  4. Tensorflow 中(批量)读取数据的案列分析及TFRecord文件的打包与读取

    内容概要: 单一数据读取方式: 第一种:slice_input_producer() # 返回值可以直接通过 Session.run([images, labels])查看,且第一个参数必须放在列表中 ...

  5. 2021年-在windwos下如何用TOMACT发布一个系统(完整配置案列)

    2021年新年第一篇:博主@李宗盛-关于在Windwos下使用TOMCAT发布一个系统的完成配置案列. 之前写过关于TOMCAT的小篇幅文档,比较分散,可以作为对照与参考. 此篇整合在一起,一篇文档写 ...

  6. Spring MVC的配置文件(XML)的几个经典案列

    1.既然是配置文件版的,那配置文件自然是必不可少,且应该会很复杂,那我们就以一个一个的来慢慢分析这些个经典案列吧! 01.实现Controller /* * 控制器 */ public class M ...

  7. js闭包的作用域以及闭包案列的介绍:

    转载▼ 标签: it   js闭包的作用域以及闭包案列的介绍:   首先我们根据前面的介绍来分析js闭包有什么作用,他会给我们编程带来什么好处? 闭包是为了更方便我们在处理js函数的时候会遇到以下的几 ...

  8. SAMSUNG某型号一千短信成功记录!对比其他软件恢复不成功的案列!

    Hello! 大家好欢迎再次来到Dr.wonde的博客, 下面谈一下今天的案列,今年11月26号收到了一客户寄来的三星S4手机恢复里面短信, 如下图所示,用其他软件恢复以后,数据为零,没有恢复,,这下 ...

  9. php知识案列分享

    今天再跟大家分享一下,以下案列. 使用array_flip函数生成随机数,可以去掉重复值. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 < ...

  10. linux下mysql函数的详细案列

    MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...

随机推荐

  1. 【分享代码片段】terraform中,如何从刚刚创建的 deployment 中获得所有容器的名字和 ip

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 不好意思,刚刚才开始用 terraform,或许是更好的办 ...

  2. 小白学k8s(6)使用kubespray部署k8s

    kubespray部署k8s 准备 需要关闭防火墙 配置hosts 处理镜像 配置文件 运行 通过对应的镜像 运行代码 查看结果 出现的问题 墙 错误的配置 kubespray部署k8s 准备 kub ...

  3. 解决idea登录github出现的invalid authentication data 404 not found以及登录 token 失效

    0.错误提醒: Your token is invalid, please re-login github and get token again. 报错无效的用户名(invalid username ...

  4. 9.0 Python 内置模块应用

    Python 是一种高级.面向对象.通用的编程语言,由Guido van Rossum发明,于1991年首次发布.Python 的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发.Py ...

  5. centos7安装protobuf|序列化和反序列化工具

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...

  6. 案例:OGG目标端进程ABENDED处理

    源端环境:RHEL 6.5 + Oracle 11.2.0.4 RAC + OGG 19.1.0.0.4 目标端环境:RHEL 7.6 + Oracle 19.3 + OGG 19.1.0.0.4 故 ...

  7. Linux-Shell变量的算术运算

    一.算术运算符 1.+.- 求和. a+b   a-b 2. *./.% 求乘积,商,余数    a*b   a/b    a/b 3.** 幂运算,例如 3**3 是求 3 的立方,即 27 4. ...

  8. Git操作--Pycharm

    声明: 1)仅作为个人学习,如有冒犯,告知速删! 2)不想误导,如有错误,不吝指教! 一--在idea中配置git: 1. 更改git的安装路径:file-->settings,找到versio ...

  9. NC216012 Let'sPlayCurling

    题目链接 题目 题目描述 Curling is a sport in which players slide stones on a sheet of ice toward a target area ...

  10. NVME(学习笔记二)—CMB

    什么是CMB 在NVMe Express 1.2 Spec中开始支持一个特性,那就是CMB(Controller Memory Buffer),是指SSD控制器内部的读写存储缓冲区,与HMB(Host ...