随笔 - 297  文章 - 0 评论 - 0 阅读 - 4866
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

/*

  • 公司今天招聘了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   许七安gyg  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示