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 ...
随机推荐
- P7900 [COCI2006-2007#2] SJECIŠTA_题解
[COCI2006-2007#2] SJECIŠTA_题解 rt 我们来看一下题目描述 考虑一个有 \(n\) 个顶点的凸多边形,且这个多边形没有任何三个(或以上) 的对角线交于一点. 这句话什么意思 ...
- 6.6 Windows驱动开发:内核枚举Minifilter微过滤驱动
Minifilter 是一种文件过滤驱动,该驱动简称为微过滤驱动,相对于传统的sfilter文件过滤驱动来说,微过滤驱动编写时更简单,其不需要考虑底层RIP如何派发且无需要考虑兼容性问题,微过滤驱动使 ...
- C/C++ Qt 使用JSON解析库 [修改篇]
JSON是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集,使用完全独立于编程语言的文本格式来存储和表示数据,简洁清晰的的层次结构使得JSON成为理想的数据交换语言,Qt库为JSON的 ...
- 字节码编程,Javassist篇四《通过字节码插桩监控方法采集运行时入参出参和异常信息》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 字节码编程插桩这种技术常与 Javaagent 技术结合用在系统的非入侵监控中,这样 ...
- pymysql基本使用规则
1.执行SQL #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(ho ...
- 予力八六三软件应用现代化,提升DevSecOps效能,探索交付之路
本文分享自华为云社区<予力八六三软件应用现代化,提升DevSecOps效能,探索全球交付之路>,作者: HuaweiCloudDeveloper. 来源:<华为云DTSE>期刊 ...
- 曝iPhone 15系列将于9月13日发布 9月22日发售:7大升级、或售5999元起
按照往年惯例,新款iPhone将于9月中下旬(第三周)与大家见面.9to5Mac今日带来了新款iPhone的最新消息--iPhone 15系列将于9月13日发布,9月22日正式发售. 9to5Mac从 ...
- 打开PDB报错ORA-30013
多租户架构,之前还在做运维的时期接触也不多.遇到多租户问题,第一反应是有些发虚的. 但实际很多问题很简单,也容易解决.本文就是一个例子. 问题:RAC节点2打开所有PDB时,报错ORA-30013. ...
- redmine获取cookie和其他系统实现单点登录
前言 最近有个需求,需要将我们一个平台对接到redmine,让用户可以通过这个平台直接在redmine提工单,需要实现免登录跳转.首先是想到去查redmine有无相应的单点登录功能,查到redmine ...
- IntelliJ IDEA 查看一个接口的实现类。