Vla_DOS

Employee

Apr 5th, 2022 (edited)
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.38 KB | None | 0 0
  1. #include <iostream>
  2. #include <list>
  3.  
  4. using namespace std;
  5. class Employee {
  6. private:
  7.     string name, position; //поля класу
  8.     int year_of_employment;
  9.     double salary;
  10.  
  11. // Конструктор класу без параметрів
  12. public:
  13.     Employee(){
  14.         name = position = year_of_employment = salary = 0;
  15.     }
  16.  
  17. // Конструктор класу з параметрами:
  18.     Employee(string _name, string _position, int _year_of_employment, double _salary) {
  19.         name = _name;
  20.         position = _position;
  21.         year_of_employment = _year_of_employment;
  22.         salary = _salary;
  23.     }
  24.     string Name() {
  25.         return name;
  26.     }
  27.     string Position() {
  28.         return position;
  29.     }
  30.     int Year_of_employment() {
  31.         return year_of_employment;
  32.     }
  33.     double Salary() {
  34.         return salary;
  35.     }
  36.  
  37. // Метод класу для виводу даних з списку за умовою
  38.     void GetListExperience(list<Employee>& l, int year_now, int year) {
  39.         for (auto i : l) { // перебираємо всі елементи в циклі
  40.             if (year_now - i.Year_of_employment() > year)
  41.                 cout << "I'мя: " << i.Name() << "\t" << "Прiзвище: " << i.Position() << "\t" << "По батьковi: " << i.Year_of_employment() << "\t" << "Адреса: " << i.Salary() << endl;
  42.         }
  43.     }
  44. };
  45.  
  46. // Метод для додавання даних в список
  47. void Input(list<Employee>& l, int n) {
  48.     string name, position; // поле для запису даних в конструктор класу
  49.     int year_of_employment;
  50.     double salary;
  51.  
  52. // В циклі вводимо дані n разів
  53.     for (int i = 0; i < n; i++) {
  54.         cout << "Введiть iм'я: ";
  55.         cin >> name;
  56.  
  57.         cout << "Введiть посаду: ";
  58.         cin >> position;
  59.  
  60.         cout << "Введiть рiк працевлаштування: ";
  61.         cin >> year_of_employment;
  62.  
  63.         cout << "Введiть ЗП: ";
  64.         cin >> salary;
  65.  
  66.         Employee* e = new Employee(name, position, year_of_employment, salary); // передаємо дані в конструктор
  67.         l.push_back(*e); // додаємо в список об'єкт класу
  68.         cout << endl;
  69.     }
  70. }
  71.  
  72. // Виводимо весь список
  73. void GetList(list<Employee>& l) {
  74.     for (auto i : l)
  75.         cout << "I'мя: " << i.Name() << "\t" << "Посада: " << i.Position() << "\t" << "Рiк працевлаштування: " << i.Year_of_employment() << "\t" << "Зарплата: " << i.Salary() << endl;
  76. }
  77.  
  78. // Вивід даних списку за умовою
  79. void GetListSalary(list<Employee>& l, int salary) {
  80.     for (auto i : l) {
  81.         if (i.Salary() > salary) // перевірка
  82.             cout << "I'мя: " << i.Name() << "\t" << "Посада: " << i.Position() << "\t" << "Рiк працевлаштування: " << i.Year_of_employment() << "\t" << "Зарплата: " << i.Salary() << endl;
  83.     }
  84. }
  85. void GetListPosition(list<Employee>& l, string position) {
  86.     for (auto i : l) {
  87.         if (i.Position() == position)
  88.             cout << "I'мя: " << i.Name() << "\t" << "Посада: " << i.Position() << "\t" << "Рiк працевлаштування: " << i.Year_of_employment() << "\t" << "Зарплата: " << i.Salary() << endl;
  89.     }
  90. }
  91.  
  92. int main()
  93. {
  94.     setlocale(0, "");
  95.     Employee e; // створюємо об'єкт класу
  96.     list<Employee> l = list<Employee>(); // створюємо список типу Employee
  97.     cout << "Вкажiть кiлькiсть працiвникiв: ";
  98.     int count;
  99.     cin >> count;
  100.  
  101.     Input(l, count); // Визиваємо метод
  102.  
  103.     cout << "\n Вивiд всiх данних:\n";
  104.     GetList(l);
  105.  
  106.     cout << "\nВивiд за стажем:\n Введіть поточний рiк: ";
  107.     int year_now, year;
  108.     cin >> year_now;
  109.     cout << "Введiть рік: ";
  110.     cin >> year;
  111.     e.GetListExperience(l, year_now, year);
  112.  
  113.     cout << "\nВивiд за зарплатою:\n Введіть розмiр зарплати: ";
  114.     int salary;
  115.     cin >> salary;
  116.  
  117.     GetListSalary(l, salary);
  118.  
  119.     cout << "\nВивiд за посадою:\n Введіть посаду: ";
  120.     string position;
  121.     cin >> position;
  122.     GetListPosition(l, position);
  123. }
  124.  
Add Comment
Please, Sign In to add comment