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 ...
随机推荐
- 华为云DTSE携手“灵康宜”构造一站式智慧健康检测云平台
本文分享自华为云社区<华为云DTSE携手"灵康宜"构造一站式智慧健康检测云平台>,作者: HuaweiCloudDeveloper. 打破传统健康监测方式桎梏--非接触 ...
- 探索 GO 项目依赖包管理与Go Module常规操作
探索 GO 项目依赖包管理与Go Module常规操作 目录 探索 GO 项目依赖包管理与Go Module常规操作 一.Go 构建模式的演变 1.1 GOPATH (初版) 1.1.1 go get ...
- 修改微信PC通知声音
安装软件 下载地址如下 点我下载 提取码:1314 找到微信的位置 选择版本号文件夹进去 搜索关键词:WeChatResource.dll 拖拽到软件当中,选择如下分类 118是通知声音 119是来电 ...
- CentOS使用iptables开放3000端口
关闭firewall systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.service 设置ipt ...
- 使用C++实现Range序列生成器
在C++编程中,经常需要迭代一系列数字或其他可迭代对象.通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读.如果你使用过Python语言那么一定对Range语句非常的数 ...
- 算法与数据结构-07-手写类HashTable
package day05; import java.sql.SQLOutput; import java.util.Scanner; /** * 哈希表代码实现 */ public class Ha ...
- 股价暴跌11% 但是Intel的“王者归来”时刻不远了
当地时间1月25日美国股市盘后,处理器大厂Intel公布了2023财年第四季(截至2023年12月30日为止)及2023财年全年的财报,虽然四季度业绩整体优于分析师的预期,但是2024年第一季的业绩指 ...
- Linux-MySQL导入示例数据库employees
1. 下载employees示例数据库employees是一个官方提供的简单数据库,在mysql的官方找到employees的说明页面,通过github下载该数据库. https://github.c ...
- [JVM] CPU缓存一致性协议
CPU缓存一致性协议 CPU高速缓存 CPU缓存是位于cpu和内存之间的临时数据交换器,它的容量比内存小的夺但是交换速度要比内存快得多,主要是为了解决cpu运行时的处理速度与内存读写速度不匹配的问题. ...
- Asp .Net Core 系列:Asp .Net Core 集成 Panda.DynamicWebApi
目录 简介 Asp .Net Core 集成 Panda.DynamicWebApi 配置 原理 什么是POCO Controller? POCO控制器原理 ControllerFeatureProv ...