Advertisement
HabKaffee

Untitled

Feb 28th, 2021
171
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //  Copyright 2021 Nikita Naumov
  2.  
  3. #include "Factory.h"
  4.  
  5. std::vector<Employee*> makeStaffVector(std::string pathFile) {
  6.     unsigned number = 0;
  7.     std::ifstream FileIn;
  8.     FileIn.open(pathFile);
  9.     if (!FileIn.is_open()) {
  10.         std::cout << "File wasn't opened" << std::endl;
  11.         throw -1;
  12.     }
  13.     std::vector<Employee*> vector;
  14.     std::string fullname;
  15.     std::string tmp1, tmp2;
  16.     while (!FileIn.eof()) {
  17.         FileIn >> tmp1 >> tmp2;
  18.         fullname += tmp1 + " " + tmp2;
  19.         tmp1.clear();
  20.         tmp2.clear();
  21.         std::vector<int> quantity(7);
  22.         int randomClass = std::rand()%7;
  23.         switch (randomClass) {
  24.             case 0:
  25.                 if (quantity[0] < 10) {
  26.                     vector.push_back(new Cleaner(number, fullname));
  27.                     quantity[0]++;
  28.                     break;
  29.                 }
  30.             case 1:
  31.                 if (quantity[1] < 20) {
  32.                     vector.push_back(new Driver(number, fullname));
  33.                     quantity[1]++;
  34.                     break;
  35.                 }
  36.             case 2:
  37.                 if (quantity[2] < 15) {
  38.                     vector.push_back(new ProjectManager(number, fullname));
  39.                     quantity[2]++;
  40.                     break;
  41.                 }
  42.             case 3:
  43.                 vector.push_back(new Programmer(number, fullname));
  44.                 quantity[3]++;
  45.                 break;
  46.             case 4:
  47.                 if (quantity[4]) {
  48.                     vector.push_back(new SeniorManager(number, fullname));
  49.                     quantity[4]++;
  50.                     break;
  51.                 }
  52.             case 5:
  53.                 if (quantity[5] < 15) {
  54.                     vector.push_back(new TeamLeader(number, fullname));
  55.                     quantity[5]++;
  56.                     break;
  57.                 }
  58.             case 6:
  59.                 vector.push_back(new Tester(number, fullname));
  60.                 quantity[6]++;
  61.                 break;
  62.             default:
  63.                 break;
  64.         }
  65.         fullname.clear();
  66.         number++;
  67.     }
  68.     return vector;
  69. }
Advertisement
RAW Paste Data Copied
Advertisement