STL_员工分组案例

公司今天招聘了 5 个员工, 5 名员工进入公司之后,需要指派员工在那个部门工作

  • 人员信息有: 姓名 年龄 电话 工资等组成
  • 通过 Multimap 进行信息的插入 保存 显示
  • 分部门显示员工信息 显示全部员工信息
//main.cpp文件
#include "worker.h"
#include "manager.h"

int main()
{
	manager m;
	m.show();
	return 0;
}
//work.h文件
#pragma once
#include <string>
#include <map>
#include <vector>
#include <map>
using namespace std;

class worker
{
public:
	string getName();
	void setName(string name);

	string getTelephone();
	void setTelephone(string telephone);

	int getAge();
	void setAge(int age);

	float getSalary();
	void setSalary(float salary);

private:
	string name;
	int age;
	string telephone;
	float salary;
};
//work.cpp文件
#include "worker.h"
#include <string>
using namespace std;

string worker::getName() {
	return this->name;
}

void worker::setName(string name) {
	this->name = name;
}

string worker::getTelephone() {
	return this->telephone;
}

void worker::setTelephone(string telephone) {
	this->telephone = telephone;
}

int worker::getAge() {
	return this->age;
}

void worker::setAge(int age) {
	this->age = age;
}

float worker::getSalary() {
	return this->salary;
}

void worker::setSalary(float salary) {
	this->salary = salary;
}
//manager.h文件
#pragma once

#define WORKER_NUMBER 5

#define SALE_DEPATMENT 1 //销售部门
#define DEVELOP_DEPATMENT 2 //研发部门
#define FINACIAL_DEPATMENT 3 //财务部门

#include <string>
#include <map>
#include <vector>
#include <map>
#include "worker.h"
using namespace std;
class manager
{
public:
	void create_worker();
	void divide_worker();
	void print_worker(int departID);
	void print_worker_by_group();
	void show();
private:
	vector<worker> worker_vector;
	multimap<int, worker> worker_group;
};
//manager.cpp文件
#include "worker.h"
#include "manager.h"
#include <string>
#include <map>
#include <vector>
#include <iostream>
#include <map>
#include <time.h>
using namespace std;

void manager::create_worker() {

	string name_seed = "ABCDE";

	for (int i = 0; i < WORKER_NUMBER; i++) {

		worker worker;
		string tmp = name_seed.substr(i, 1);
		worker.setName("选手" + tmp);
		worker.setAge(rand() % 15 + 20);
		worker.setTelephone("010-88888888");
		worker.setSalary(rand()%10000+1000.00);

		this->worker_vector.push_back(worker);
	}
}

void manager::divide_worker() {
	srand(time(NULL));
	for (vector<worker>::iterator it = this->worker_vector.begin() ; it !=this->worker_vector.end(); it++) {

		int departID = rand() % 3 + 1;
		switch (departID) {

			case SALE_DEPATMENT:
				this->worker_group.insert(make_pair(SALE_DEPATMENT, *it));
				break;
			case DEVELOP_DEPATMENT:
				this->worker_group.insert(make_pair(DEVELOP_DEPATMENT, *it));
				break;
			case FINACIAL_DEPATMENT:
				this->worker_group.insert(make_pair(FINACIAL_DEPATMENT, *it));
				break;
			default:
				break;
		}
	}
}

void manager::print_worker(int departID) {
	
	multimap<int, worker>::iterator it = this->worker_group.find(departID);
	
	int DepartCount = this->worker_group.count(departID);
	int num = 0;
	for (multimap<int, worker>::iterator pos = it; it != this->worker_group.end() && num < DepartCount; pos++, num++) {
		cout << "姓名:" << pos->second.getName()<< " 年龄:" << pos->second.getAge() << " 电话:" << pos->second.getTelephone() << " 工资:" << pos->second.getSalary() << endl;
	}
}

//打印每一部分员工信息
void manager::print_worker_by_group() {

	//显示销售部门
	cout << "销售部门:" << endl;
	this->print_worker(SALE_DEPATMENT);
	//显示开发部门
	cout << "研发部门:" << endl;
	this->print_worker(DEVELOP_DEPATMENT);
	//显示财务部门
	cout << "财务部门:" << endl;
	this->print_worker(FINACIAL_DEPATMENT);
}

void manager::show() {
	this->create_worker();
	this->divide_worker();
	this->print_worker_by_group();
}
要安装Docker并安装插件,可以按照以下步骤进行操作: 1. 首先,安装Docker。可以按照官方文档提供的步骤进行安装,或者使用适合您操作系统的包管理器进行安装。 2. 安装Docker Compose插件。可以使用以下方法安装: 2.1 下载指定版本的docker-compose文件: curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.2 赋予docker-compose文件执行权限: chmod +x /usr/local/bin/docker-compose 2.3 验证安装是否成功: docker-compose --version 3. 在安装插件之前,可以测试端口是否已被占用,以避免编排过程中出错。可以使用以下命令安装netstat并查看端口号是否被占用: yum -y install net-tools netstat -npl | grep 3306 现在,您已经安装了Docker并安装了Docker Compose插件,可以继续进行其他操作,例如上传docker-compose.yml文件到服务器,并在服务器上安装MySQL容器。可以参考Docker的官方文档或其他资源来了解如何使用Docker和Docker Compose进行容器的安装和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Docker安装docker-compose插件](https://blog.youkuaiyun.com/qq_50661854/article/details/124453329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Docker安装MySQL docker安装mysql 完整详细教程](https://blog.youkuaiyun.com/qq_40739917/article/details/130891879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值