C++ map案例学习总结
公司招聘5个员工,五名员工进入公司之后,需要指派员工在哪个部门工作
人员信息:姓名 年龄 电话 工资 等组成
通过Multimap进行信息的插入 保存 显示
分部门显示员工信息 显示全部员工信息
#include<iostream>
#include<vector>
#include<string>
#include<map>
using namespace std;
#define SALE_DEPATMENT 1 //销售
#define DEVELOP_DEPATMENT 2 //研发
#define FINACITAL_DEPATMENT 3 //财务
class Worker {
public:
string name;
string tel;
int age;
int salary;
};
void Create_Worker (vector<Worker>& v) {
string seedname = "ABCDE";
srand(time(0));
for (int i = 0;i < 5;i ++) {
Worker worker;
worker.name = "员工";
worker.name += seedname[i];
worker.age = rand()% 11+20;
worker.tel = "010-6666666";
worker.salary = rand()% 10000 + 10000;
//保存员工信息
v.push_back(worker);
}
}
void Group (vector<Worker>& v,multimap<int,Worker>& WorkerGroup) {
//把员工随机分配到不同部门
//srand(time(0));
for (vector<Worker>::iterator it = v.begin();it != v.end();it ++) {
int n = rand()% 3 + 1;
switch (n) {
case SALE_DEPATMENT : {
WorkerGroup.insert(make_pair(SALE_DEPATMENT,*it));
break;
}
case DEVELOP_DEPATMENT : {
WorkerGroup.insert(make_pair(DEVELOP_DEPATMENT,*it));
break;
}
case FINACITAL_DEPATMENT : {
WorkerGroup.insert(make_pair(FINACITAL_DEPATMENT,*it));
break;
}
}
}
}
void ShowWorkers (multimap<int,Worker>& WorkerGroup,int DepartID) {
multimap<int,Worker>::iterator it = WorkerGroup.find(DepartID);
int DepartCount = WorkerGroup.count(DepartID);
int num = 0;
for (multimap<int,Worker>::iterator pos = it;it != WorkerGroup.end() && num < DepartCount;pos ++,num ++) {
cout << "\t姓名:" << pos->second.name << " ";
cout << "年龄:" << pos->second.age << " ";
cout << "电话:" << pos->second.tel << " ";
cout << "薪资:" << pos->second.salary << " " << endl;
}
}
void Print_WorkerByGroup (multimap<int,Worker>& WorkerGroup) {
//打印销售部员工信息
cout << "销售部门:" <<endl;
ShowWorkers(WorkerGroup,SALE_DEPATMENT);
cout << "研发部门:" <<endl;
ShowWorkers(WorkerGroup,DEVELOP_DEPATMENT);
cout << "财务部门:" <<endl;
ShowWorkers(WorkerGroup,FINACITAL_DEPATMENT);
}
int main () {
//存放新员工信息
vector<Worker> v;
//multimap保存分组信息
multimap<int,Worker> WorkerGroup;
//创建员工
Create_Worker(v);
//分组
Group(v,WorkerGroup);
//打印每一个部门员工信息
Print_WorkerByGroup(WorkerGroup);
return 0;
}
C++ map案例学习总结的更多相关文章
- Storm入门2-单词计数案例学习
[本篇文章主要是通过一个单词计数的案例学习,来加深对storm的基本概念的理解以及基本的开发流程和如何提交并运行一个拓扑] 单词计数拓扑WordCountTopology实现的基本功能就是不停地读入 ...
- 通过 Autostereograms 案例学习 OpenGL 和 OpenCL 的互操作性
引言 在过去的十年里, GPU (图形处理单元)已经从特殊硬件(特供)转变成能够在数值计算领域开辟新篇章的高性能计算机设备. 很多算法能够使用拥有巨大的处理能力的GPU来快速运行和处理大数据量.即使在 ...
- angular的splitter案例学习
angular的splitter案例学习,都有注释了,作为自己的备忘. <!DOCTYPE html> <html ng-app="APP"> <he ...
- 8.3 ContosoMVCWeb官方案例学习
1. 分页案例学习 2. 排序搜索案例学习 3.使用Configuration.cs中的Seed方法 在数据库迁移过程中,使用update-database,会运行seed方法.seed方法能够将初始 ...
- Java集合Map接口与Map.Entry学习
Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...
- GIS案例学习笔记-三维生成和可视化表达
GIS案例学习笔记-三维生成和可视化表达 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:针对栅格或者矢量数值型数据,进行三维可视化表达 操作时间:15分钟 案 ...
- 获取字段唯一值工具- -ArcPy和Python案例学习笔记
获取字段唯一值工具- -ArcPy和Python案例学习笔记 目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...
- 面图层拓扑检查和错误自动修改—ArcGIS案例学习笔记
面图层拓扑检查和错误自动修改-ArcGIS案例学习笔记 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 数据源: gis_ex10\ex01\parcel.shp, ...
- 计算平面面积和斜面面积-ArcGIS案例学习笔记
计算平面面积和斜面面积-ArcGIS案例学习笔记 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 数据:实验数据\Chp8\Ex5\demTif.tif 平面面积= ...
- ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画
ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画 计划时间:第二天下午 教程:Pdf/405 数据:ch9/ex3 方法: 1. 创建DEM SA工具箱/插值分析/地形转栅格 2. 生成 ...
随机推荐
- java学习-7-捕获异常处理
Java使用异常来表示错误,并通过try ... catch捕获异常:1.Error错误是你的程序无能为力的,也无法捕获的,比如内存耗尽,最终会由JVM进行捕获打印出信息.几乎听天由命.但是老手程序员 ...
- [设计模式/Java/多线程] 设计模式之单例模式【9】
0 序 此文系对最常见的设计模式----单例模式的最全总结. 1 概述:单例模式 模式定义 单例模式: 保证1个类有且仅有1个实例,并提供1个访问它的全局访问点. 1个类有且仅有1个实例,并自行实例化 ...
- B站插入外站链接地址(现已禁用)
问题描述: B站中插入链接时,无法插入外站链接,提示[请输入正确的站内链接地址]: 日常文章编写中,经常需要插入外站链接跳转,以便于用户快速定位 分析: B站专栏文章编辑使用的富文本编辑器,应该是支持 ...
- 《Deep Learning Inference on Embedded Devices: Fixed-Point vs Posit》(一)
After the success of performing deep learning inference by using an 8-bit precision representation o ...
- 关于HarmonyOS NEXT中的模块化开发
今天不写页面和动画,斗胆给大家讲一讲软件工程. 软件工程讲究高内聚低耦合,意思就是把整个工程按照分工不同分成不同的模块,每一个模块紧密联系又互不影响.就像一座摩天大楼,它里面的电路网非常庞大和复杂,它 ...
- TensorFlow 基础 (02)
前面对 tensorflow 的基础数据类型, 数值, 字符串, 布尔等, 有初步认识,尤其是重点的 tensor 张量, 包含了, 标量, 向量, 矩阵 ... 这样的基本概念. 我现在回过头来看, ...
- Flutter制作桌面图标长按展示操作项面板
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- Vite 3 来了!新增功能 + 如何迁移
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- ASP.NET Core之Razor Page相关
cshtml一般是这样: @page @model IndexModel @{ ViewData["Title"] = "Home page"; } <d ...
- 小白也能行!10分钟用Cursor搭建个人博客网站(零基础教程)
一.Cursor是什么?Cursor是一款基于AI的智能代码编辑器,它整合了GPT-4技术,可以帮助我们: 自动生成代码 解释代码含义 修复代码错误 对话式编程指导特别适合编程新手使用,传统搭建博客需 ...