公司招聘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案例学习总结的更多相关文章

  1. Storm入门2-单词计数案例学习

     [本篇文章主要是通过一个单词计数的案例学习,来加深对storm的基本概念的理解以及基本的开发流程和如何提交并运行一个拓扑] 单词计数拓扑WordCountTopology实现的基本功能就是不停地读入 ...

  2. 通过 Autostereograms 案例学习 OpenGL 和 OpenCL 的互操作性

    引言 在过去的十年里, GPU (图形处理单元)已经从特殊硬件(特供)转变成能够在数值计算领域开辟新篇章的高性能计算机设备. 很多算法能够使用拥有巨大的处理能力的GPU来快速运行和处理大数据量.即使在 ...

  3. angular的splitter案例学习

    angular的splitter案例学习,都有注释了,作为自己的备忘. <!DOCTYPE html> <html ng-app="APP"> <he ...

  4. 8.3 ContosoMVCWeb官方案例学习

    1. 分页案例学习 2. 排序搜索案例学习 3.使用Configuration.cs中的Seed方法 在数据库迁移过程中,使用update-database,会运行seed方法.seed方法能够将初始 ...

  5. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  6. GIS案例学习笔记-三维生成和可视化表达

    GIS案例学习笔记-三维生成和可视化表达 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:针对栅格或者矢量数值型数据,进行三维可视化表达 操作时间:15分钟 案 ...

  7. 获取字段唯一值工具- -ArcPy和Python案例学习笔记

    获取字段唯一值工具- -ArcPy和Python案例学习笔记   目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...

  8. 面图层拓扑检查和错误自动修改—ArcGIS案例学习笔记

    面图层拓扑检查和错误自动修改-ArcGIS案例学习笔记 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 数据源: gis_ex10\ex01\parcel.shp, ...

  9. 计算平面面积和斜面面积-ArcGIS案例学习笔记

    计算平面面积和斜面面积-ArcGIS案例学习笔记 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 数据:实验数据\Chp8\Ex5\demTif.tif 平面面积= ...

  10. ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画

    ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画 计划时间:第二天下午 教程:Pdf/405 数据:ch9/ex3 方法: 1. 创建DEM SA工具箱/插值分析/地形转栅格 2. 生成 ...

随机推荐

  1. 调用 restful的api的方法

    var // myurl : string; tmpstr : String;// string; RespData :TStringStream; sendData : TStringList; j ...

  2. ESP32-S3接入大模型API,对话AI

    ESP32-S3接入大模型API,对话AI 1.先使用python验证可行性 import requests url = "https://api.siliconflow.cn/v1/cha ...

  3. 【Java异步编程利器】CompletableFuture完全指南

    Java异步编程利器:CompletableFuture完全指南 图:传统同步 vs 异步编程模式对比 一.为什么需要异步编程? 同步 vs 异步的餐厅点餐比喻 同步方式 异步方式 顾客站在柜台前等待 ...

  4. python环境配置命令

    在Python中,创建新的环境通常指的是创建一个隔离的Python环境,以便在该环境中安装和管理不同版本的库,而不会影响到系统中其他Python环境的库.这通常用于解决不同项目之间的依赖冲突.下面是一 ...

  5. 使用Python解决氢原子问题

    引言 大家好!今天我们将讨论一个非常经典的物理问题-氢原子问题,并使用 Python 来进行求解.氢原子问题是量子力学中的基础问题,它帮助我们理解原子内部的电子结构及其能量水平.通过这篇文章,大家将学 ...

  6. Rabbitmq防止消息的丢失

    一.Rabbitmq的流程图 二.出现消息丢失的三个可能 A:写消息的过程,消息都没到rabbitmq,在网络传输过程就丢了:或者是消息到了rabbitmq,但是人家内部出错了没保存下来 例子: 1. ...

  7. app自动化设计

    一.在pom.xml引入依赖 testng:测试框架用例管理 appium:需要用到appium log4j:日志集成 allure:生成报告 二.po分层 分为基础层,page层,用例层,xml文件 ...

  8. git仓库常用git命令&极速入门教程

    简易的命令行入门教程: Git 全局设置: git config --global user.name "yourName" git config --global user.em ...

  9. java代码发起POST请求,并封装条件

    一.场景 不同的系统采用调用,这里我们是定时任务调用其他系统的接口获取数据并返回处理 二.代码 技术点: 发起Post请求 封装接口所需条件<key,vlaue> 将返回的{"c ...

  10. 提示词工程:引导AI高效完成任务的艺术

    提示词工程(Prompt Engineering)是人工智能时代的一项关键技能,它研究如何设计最佳提示词,以引导大型语言模型产生我们所需的结果.本文将深入探讨提示词工程的核心概念.组成部分及其与微调的 ...