Advertisement
Guest User

Untitled

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