C++ //案列-员工分组 ( 容器存放,查找,打印,统计,宏定义 ,随机)
//案列-员工分组
//描述:公司招聘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++ //案列-员工分组 ( 容器存放,查找,打印,统计,宏定义 ,随机)的更多相关文章
- C++ STL 之 multimap案例之员工分组
#include <iostream> #include <vector> #include <map> #include <string> #incl ...
- [代码]multimap员工分组案例
案例要求: //multimap 案例//公司今天招聘了 5 个员工,5 名员工进入公司之后,需要指派员工在那个部门工作//人员信息有: 姓名 年龄 电话 工资等组成//通过 Multimap 进行信 ...
- 大数据技术之_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 ...
- Tensorflow 中(批量)读取数据的案列分析及TFRecord文件的打包与读取
内容概要: 单一数据读取方式: 第一种:slice_input_producer() # 返回值可以直接通过 Session.run([images, labels])查看,且第一个参数必须放在列表中 ...
- 2021年-在windwos下如何用TOMACT发布一个系统(完整配置案列)
2021年新年第一篇:博主@李宗盛-关于在Windwos下使用TOMCAT发布一个系统的完成配置案列. 之前写过关于TOMCAT的小篇幅文档,比较分散,可以作为对照与参考. 此篇整合在一起,一篇文档写 ...
- Spring MVC的配置文件(XML)的几个经典案列
1.既然是配置文件版的,那配置文件自然是必不可少,且应该会很复杂,那我们就以一个一个的来慢慢分析这些个经典案列吧! 01.实现Controller /* * 控制器 */ public class M ...
- js闭包的作用域以及闭包案列的介绍:
转载▼ 标签: it js闭包的作用域以及闭包案列的介绍: 首先我们根据前面的介绍来分析js闭包有什么作用,他会给我们编程带来什么好处? 闭包是为了更方便我们在处理js函数的时候会遇到以下的几 ...
- SAMSUNG某型号一千短信成功记录!对比其他软件恢复不成功的案列!
Hello! 大家好欢迎再次来到Dr.wonde的博客, 下面谈一下今天的案列,今年11月26号收到了一客户寄来的三星S4手机恢复里面短信, 如下图所示,用其他软件恢复以后,数据为零,没有恢复,,这下 ...
- php知识案列分享
今天再跟大家分享一下,以下案列. 使用array_flip函数生成随机数,可以去掉重复值. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 < ...
- linux下mysql函数的详细案列
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...
随机推荐
- 【解决了一个小问题】terraform apply 的时候出现访问 localhost 出错
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 有这样一段 terraform 的部署脚本: provid ...
- 华为云虚拟IP申请
在上一篇文章当中我们搭建好了我们的 Nginx,这节呢,我们主要就是搭建我们的 Keepalive 与 Haproxy,搭建之前我们首先不要将我们华为云上面的弹性公网IP给取消了后续在取消,这次我介绍 ...
- errgroup的常见误用
errgroup想必稍有经验的golang程序员都应该听说过,实际项目中用过的也应该不在少数.它和sync.WaitGroup类似,都可以发起执行并等待一组协程直到所有协程运行结束.除此之外errgr ...
- 解锁ChatGLM-6B的潜力:优化大语言模型训练,突破任务困难与答案解析难题
解锁ChatGLM-6B的潜力:优化大语言模型训练,突破任务困难与答案解析难题 LLM(Large Language Model)通常拥有大量的先验知识,使得其在许多自然语言处理任务上都有着不错的性能 ...
- C/C++ 实现Windows注册表操作
Windows注册表(Registry)是Windows操作系统中用于存储系统配置信息.用户设置和应用程序数据的一个集中式数据库.它是一个层次结构的数据库,由键(Key)和值(Value)组成,这些键 ...
- Flask 实现简单的图片上传
通过使用Flask框架实现一个简单的图片上传工具,当用户提交图片后会自动将图片保存到upload目录下,代码如下 import os from flask import Flask, request ...
- 驱动开发:内核MDL读写进程内存
MDL内存读写是最常用的一种读写模式,通常需要附加到指定进程空间内然后调用内存拷贝得到对端内存中的数据,在调用结束后再将其空间释放掉,通过这种方式实现内存读写操作,此种模式的读写操作也是最推荐使用的相 ...
- 从浏览器原理出发聊聊 Chrome 插件
浏览器架构演进 单进程浏览器时代 单进程浏览器是指浏览器的所有功能模块都是运行在同一个进程里,这些模块包含了网络.插件.JavaScript 运行环境.渲染引擎和页面等.在 2007 年之前,市面上浏 ...
- centos7安装protobuf|序列化和反序列化工具
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...
- Vulkan学习苦旅06:创建渲染通道(VkRenderPass)
对于一个复杂的图形应用程序,需要多个过程的配合,以生成图像的各个部分.通常,各个过程间存在着依赖关系,例如某个过程生成的图像(输出)被另一个过程使用(作为此过程的输入).在Vulkan中,每个过程被称 ...