描述:
1.10 个员工 ABCDEFGHIJ 进入公司后分配到各个部门;
2. 员工信息有: 姓名, 工资组成; 部门信息有: 策划, 美术, 研发;
3. 随机给 10 名员工分配部门和工资;
4. 通过 Multimap 进行信息的输入; key: 部门编号, value: 员工
5. 分部门显示员工信息;
srand((unsigned)time(NULL)): 为了防止随机数每次重复, 常常使用系统时间来初始化
- #include<iostream>
- using namespace std;
- #include <vector>
- #include <string>
- #include <map>
- #include <ctime>
- /*
- - 公司今天招聘了 10 个员工 (ABCDEFGHIJ),10 名员工进入公司之后, 需要指派员工在那个部门工作
- - 员工信息有: 姓名 工资组成; 部门分为: 策划, 美术, 研发
- - 随机给 10 名员工分配部门和工资
- - 通过 multimap 进行信息的插入 key(部门编号) value(员工)
- - 分部门显示员工信息
- */
- #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;
- }
输出:
来源: http://www.bubuko.com/infodetail-3354434.html