AlexandrTalchuk

Untitled

Nov 20th, 2020
24
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Разработать связи между следующими классами : класс «Служащий»
  2. //(содержащий ФИО служащего), класс «Работники с почасовой оплатой»
  3. //(оплата за час, часы, отработанные за неделю), класс «Работники со сдельной
  4. //оплатой»(оплата за единицу продукции, число единиц продукции,
  5. // произведенной за неделю).Все классы должны содержать функции
  6. // получения и изменения всех полей.Написать программу, позволяющую
  7. // получать сведения о служащих.Использовать конструктор с параметрами,
  8. // конструктор без параметров, конструктор копирования.В класс добавить
  9. // необходимый набор полей и методов(минимум два поля и два метода) на
  10. // свое усмотрение.
  11. #include <iostream>
  12. #include <string>
  13. #include <fstream>
  14. #include<list>
  15. using namespace std;
  16.  
  17. double In(const char* text = "") {
  18. double res;
  19. cout << text;
  20. while (!(cin >> res) || cin.get() != '\n') {
  21. cout << "Ошибка ввода! Попробуйте еще: " << endl;
  22. cin.clear();
  23. while (cin.get() != '\n');
  24. }
  25. return res;
  26. }
  27.  
  28. class Employee
  29. {
  30. protected:
  31. string LastName,FirstName,MiddleName;
  32. double salary;
  33. int count;
  34. public:
  35. Employee() {};
  36. Employee(string LastName,string FirstName,string MiddleName)
  37. {
  38. this->LastName = LastName;
  39. this->FirstName = FirstName;
  40. this->LastName = LastName;
  41. }
  42.  
  43. Employee(const Employee& other)
  44. {
  45. this->LastName = LastName;
  46. this->FirstName = FirstName;
  47. this->LastName = LastName;
  48. }
  49.  
  50.  
  51. void getName()
  52. {
  53. cout << "FullName: " << LastName << FirstName << MiddleName << endl;
  54. }
  55.  
  56. void setName()
  57. {
  58. cout << "Enter Lastname: ";
  59. cin >> LastName;
  60. cout << "Enter FirstName: ";
  61. cin >> FirstName;
  62. cout << "Enter MiddleName: ";
  63. cin >> MiddleName;
  64. }
  65. virtual void Work(float salary, int count) {};
  66.  
  67. };
  68.  
  69. class WorkerWithHoursPay: public Employee
  70. {
  71.  
  72. public:
  73. WorkerWithHoursPay() {};
  74. WorkerWithHoursPay(string LastName, string FirstName, string MiddleName, double salary, int count) :Employee(LastName, FirstName, MiddleName)
  75. {
  76. this->salary = salary;
  77. this->count = count;
  78. }
  79.  
  80. void Work(float salary,int count) override
  81. {
  82. cout << "Enter salary per hour: ";
  83. cin >> salary;
  84. cout << "Enter a count of hours per week: ";
  85. cin >> count;
  86. }
  87.  
  88. };
  89.  
  90. class WorkerWithIncentivePay:public Employee
  91. {
  92. public:
  93. WorkerWithIncentivePay() {};
  94. WorkerWithIncentivePay(string LastName, string FirstName, string MiddleName,double salary,int count) :Employee(LastName, FirstName, MiddleName)
  95. {
  96. this->salary = salary;
  97. this->count = count;
  98. }
  99.  
  100. void Work(float salary, int count) override
  101. {
  102. cout << "Enter salary per one unit: ";
  103. cin >> salary;
  104. cout << "Enter a count of units per week: ";
  105. cin >> count;
  106. }
  107.  
  108. };
  109.  
  110.  
  111. void menu()
  112. {
  113. int choise;
  114. bool f = true;
  115.  
  116.  
  117. do
  118. {
  119. cout << "1. Enter information about workers" << endl << "2. Show information about workers" << endl << "3. Exit" << endl;
  120. cin >> choise;
  121. switch (choise)
  122. {
  123. case 1:
  124. {
  125.  
  126. }
  127. system("cls");
  128. break;
  129. case 2:
  130.  
  131. case 3:
  132. f = false;
  133. break;
  134. default:
  135. cout << "Try again" << endl;
  136. break;
  137. }
  138.  
  139. } while (f);
  140.  
  141. }
  142. int main()
  143. {
  144. menu();
  145. }
RAW Paste Data