STL_员工分组案例


prtyaa
prtyaa 2023-12-26 19:21:20 50894 赞同 0 反对 0
分类: 资源
公司今天招聘了 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();
 }

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
prtyaaL2
粉丝 1 资源 1949 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  125
统信桌面专业版【全盘安装UOS系统】介绍  120
银河麒麟桌面操作系统安装佳能打印机驱动方法  111
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!