/*

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

  • 员工信息有: 姓名 工资组成;部门分为:策划、美术、研发

  • 随机给10名员工分配部门和工资

  • 通过multimap进行信息的插入 key(部门编号) value(员工)

  • 分部门显示员工信息

    */

    #include<iostream>
    using namespace std;
    #include <vector>
    #include <string>
    #include <map>
    #include <ctime>
    
    #define CEHUA  0
    #define MEISHU 1
    #define YANFA  2
    
    class Worker
    {
    public:
    	string m_Name;
    	int m_Salary;
    };
    
    void createWorker(vector<Worker>&v)
    {
    	string nameSeed = "ABCDEFGHIJ";
    	for (int i = 0; i < 10; i++)
    	{
    		Worker worker;
    		worker.m_Name = "员工";
    		worker.m_Name += nameSeed[i];
    
    		worker.m_Salary = rand() % 10000 + 10000; // 10000 ~ 19999
    		//将员工放入到容器中
    		v.push_back(worker);
    	}
    
    }
    
    //员工分组
    void setGroup(vector<Worker>&v,multimap<int,Worker>&m)
    {
    	for (vector<Worker>::iterator it = v.begin(); it != v.end(); it++)
    	{
    		//产生随机部门编号
    		int deptId = rand() % 3; // 0 1 2 
    
    		//将员工插入到分组中
    		//key部门编号,value具体员工
    		m.insert(make_pair(deptId, *it));
    	}
    
    }
    
    void showWorkerByGourp(multimap<int,Worker>&m)
    {
    	// 0  A  B  C   1  D  E   2  F G ...
    	cout << "策划部门:" << endl;
    
    	multimap<int,Worker>::iterator pos = m.find(CEHUA);
    	int count = m.count(CEHUA); // 统计具体人数
    	int index = 0;
    	for (; pos != m.end() && index < count; pos++ , index++)
    	{
    		cout << "姓名: " << pos->second.m_Name << " 工资: " << pos->second.m_Salary << endl;
    	}
    	
    	cout << "----------------------" << endl;
    	cout << "美术部门: " << endl;
    	pos = m.find(MEISHU);
    	count = m.count(MEISHU); // 统计具体人数
    	index = 0;
    	for (; pos != m.end() && index < count; pos++, index++)
    	{
    		cout << "姓名: " << pos->second.m_Name << " 工资: " << pos->second.m_Salary << endl;
    	}
    	
    	cout << "----------------------" << endl;
    	cout << "研发部门: " << endl;
    	pos = m.find(YANFA);
    	count = m.count(YANFA); // 统计具体人数
    	index = 0;
    	for (; pos != m.end() && index < count; pos++, index++)
    	{
    		cout << "姓名: " << pos->second.m_Name << " 工资: " << pos->second.m_Salary << endl;
    	}
    
    }
    
    int main() {
    
    	srand((unsigned int)time(NULL));
    	
    	//1、创建员工
    	vector<Worker>vWorker;
    	createWorker(vWorker);
    	
    	//2、员工分组
    	multimap<int, Worker>mWorker;
    	setGroup(vWorker, mWorker);
    
    
    	//3、分组显示员工
    	showWorkerByGourp(mWorker);
    	
    	////测试
    	//for (vector<Worker>::iterator it = vWorker.begin(); it != vWorker.end(); it++)
    	//{
    	//	cout << "姓名: " << it->m_Name << " 工资: " << it->m_Salary << endl;
    	//}
    	
    	system("pause");
    	
    	return 0;
    }
    
posted on 2023-04-12 23:35  许七安gyg  阅读(46)  评论(0编辑  收藏  举报
$(document).ready(function() { // 禁止右键 $(document).bind("contextmenu", function(){return false;}); // 禁止选择 $(document).bind("selectstart", function(){return false;}); // 禁止Ctrl+C 和Ctrl+A $(document).keydown(function(event) { if ((event.ctrlKey&&event.which==67) || (event.ctrlKey&&event.which==86)) { //alert("对不起,版权所有,禁止复制"); return false; } }); });