//案列-员工分组
//描述:公司招聘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. 华为云DTSE携手“灵康宜”构造一站式智慧健康检测云平台

    本文分享自华为云社区<华为云DTSE携手"灵康宜"构造一站式智慧健康检测云平台>,作者: HuaweiCloudDeveloper. 打破传统健康监测方式桎梏--非接触 ...

  2. 探索 GO 项目依赖包管理与Go Module常规操作

    探索 GO 项目依赖包管理与Go Module常规操作 目录 探索 GO 项目依赖包管理与Go Module常规操作 一.Go 构建模式的演变 1.1 GOPATH (初版) 1.1.1 go get ...

  3. 修改微信PC通知声音

    安装软件 下载地址如下 点我下载 提取码:1314 找到微信的位置 选择版本号文件夹进去 搜索关键词:WeChatResource.dll 拖拽到软件当中,选择如下分类 118是通知声音 119是来电 ...

  4. CentOS使用iptables开放3000端口

    关闭firewall systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.service 设置ipt ...

  5. 使用C++实现Range序列生成器

    在C++编程中,经常需要迭代一系列数字或其他可迭代对象.通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读.如果你使用过Python语言那么一定对Range语句非常的数 ...

  6. 算法与数据结构-07-手写类HashTable

    package day05; import java.sql.SQLOutput; import java.util.Scanner; /** * 哈希表代码实现 */ public class Ha ...

  7. 股价暴跌11% 但是Intel的“王者归来”时刻不远了

    当地时间1月25日美国股市盘后,处理器大厂Intel公布了2023财年第四季(截至2023年12月30日为止)及2023财年全年的财报,虽然四季度业绩整体优于分析师的预期,但是2024年第一季的业绩指 ...

  8. Linux-MySQL导入示例数据库employees

    1. 下载employees示例数据库employees是一个官方提供的简单数据库,在mysql的官方找到employees的说明页面,通过github下载该数据库. https://github.c ...

  9. [JVM] CPU缓存一致性协议

    CPU缓存一致性协议 CPU高速缓存 CPU缓存是位于cpu和内存之间的临时数据交换器,它的容量比内存小的夺但是交换速度要比内存快得多,主要是为了解决cpu运行时的处理速度与内存读写速度不匹配的问题. ...

  10. Asp .Net Core 系列:Asp .Net Core 集成 Panda.DynamicWebApi

    目录 简介 Asp .Net Core 集成 Panda.DynamicWebApi 配置 原理 什么是POCO Controller? POCO控制器原理 ControllerFeatureProv ...