Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. /*
  2. В последнее время появилась мода на придумывание стартапов. Давайте поможем начинающим предпринимателям справиться с учетом своих сотрудников.
  3. Создайте софт для учета работников в стартапе. Так как компании маленькие, структура у них очень простая: некоторые сотрудники назначаются менеджерами и руководят процессом.
  4. */
  5.  
  6. #include <iostream>
  7. #include <vector>
  8. #include <string>
  9.  
  10. using namespace std;
  11.  
  12. class Worker {
  13. protected:
  14. string name;
  15. int rate;
  16. public:
  17. Worker(string n, int r = 10) : name(n), rate(r) {}
  18. virtual void info() {
  19. cout << "Worker " << name << ": " << rate << endl;
  20. }
  21. };
  22.  
  23. class Manager : public Worker {
  24. protected:
  25. int staff;
  26. public:
  27. Manager(string n, int s, int r = 30) : staff(s), Worker(n, r) {}
  28. virtual void info() {
  29. cout << "Manager " << name << ": " << rate
  30. << ". Works with " << staff << " people" << endl;
  31. }
  32. };
  33.  
  34. int main() {
  35. int m;
  36. cin >> m;
  37. vector<Worker*> company;
  38. Worker* tmp;
  39. string com, n;
  40. int s;
  41. for (int i = 0; i < m; i++) {
  42. cin >> com >> n;
  43. if (com == "worker") {
  44. tmp = new Worker(n);
  45. company.push_back(tmp);
  46. } else if (com == "manager") {
  47. cin >> s;
  48. tmp = new Manager(n, s);
  49. company.push_back(tmp);
  50. }
  51. }
  52. for (int i = 0; i < company.size(); i++) {
  53. company[i]->info();
  54. }
  55. for (int i = 0; i < company.size(); i++) {
  56. delete company[i];
  57. }
  58. return 0;
  59. }
  60.  
  61. /*
  62.  
  63. Пример теста:
  64. Ввод:
  65. 2
  66. worker Vanya
  67. manager Petya 1
  68.  
  69. Вывод:
  70. Worker Vanya: 10
  71. Manager Petya: 30. Works with 1 people
  72.  
  73. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement