Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Стартапы - 1
- В последнее время появилась мода на придумывание стартапов. Давайте поможем начинающим предпринимателям справиться с учетом своих сотрудников.
- Создайте софт для учета работников в стартапе. Так как компании маленькие, структура у них очень простая: некоторые сотрудники назначаются менеджерами и руководят процессом.
- Вашему заказчику нужно хранить следующую информацию о сотрудниках: имя и ставку (месячную зарплату без премий и дополнительных начислений). Для менеджеров нужно хранить также количество людей, которыми они руководят.
- Печать информации о сотрудниках должна происходить в следующем формате:
- ...(Максим, напиши сам, пожалуйста, формат)
- Входные данные:
- ...
- Выходные данные:
- Напечатайте на экран информацию о всех сотрудниках компании.
- Примечание:
- Не забывайте про полиморфизм и очищение памяти.
- */
- #include <iostream>
- #include <vector>
- #include <string>
- using namespace std;
- class Worker {
- protected:
- string name;
- int rate;
- public:
- Worker(string n, int r = 10) : name(n), rate(r) {}
- virtual void info() {
- cout << "Worker " << name << ": " << rate << endl;
- }
- };
- class Manager : public Worker {
- protected:
- int staff;
- public:
- Manager(string n, int s, int r = 30) : staff(s), Worker(n, r) {}
- virtual void info() {
- cout << "Manager " << name << ": " << rate
- << ". Works with " << staff << " people" << endl;
- }
- };
- int main() {
- int m;
- cin >> m;
- vector<Worker*> company;
- Worker* tmp;
- string com, n;
- int s;
- for (int i = 0; i < m; i++) {
- cin >> com >> n;
- if (com == "worker") {
- tmp = new Worker(n);
- company.push_back(tmp);
- } else if (com == "manager") {
- cin >> s;
- tmp = new Manager(n, s);
- company.push_back(tmp);
- }
- }
- for (int i = 0; i < company.size(); i++) {
- company[i]->info();
- }
- for (int i = 0; i < company.size(); i++) {
- delete company[i];
- }
- return 0;
- }
- /*
- Пример теста:
- Ввод:
- 2
- worker Vanya
- manager Petya 1
- Вывод:
- Worker Vanya: 10
- Manager Petya: 30. Works with 1 people
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement