Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <iomanip>
  4. using namespace std;
  5. class Plants
  6. {
  7. protected:
  8. char* name;
  9. double win, spr, sum, aut;
  10. public:
  11. Plants() { name = NULL; }
  12. Plants(char*, double, double, double, double);
  13. ~Plants() { delete[]name; }
  14. char* getname() { return name; }
  15. double getwin() { return win; }
  16. double getspr() { return spr; }
  17. double getsum() { return sum; }
  18. double getaut() { return aut; }
  19. Plants(const Plants&);
  20. Plants& operator=(const Plants&);
  21. friend ostream& operator<<(ostream&, const Plants&);
  22. friend istream& operator>>(istream&, Plants&);
  23. };
  24.  
  25. class Y_plants:public Plants
  26. {
  27. int year;
  28. public:
  29. Y_plants() : Plants() { }
  30. Y_plants(const Y_plants&);
  31. Y_plants(char*, double, double, double, double, int);
  32. Y_plants& operator=(const Y_plants&);
  33. Y_plants(const Plants&, int);
  34. int getyear() { return year; }
  35. friend ostream& operator<<(ostream&, const Y_plants&);
  36. friend istream& operator>>(istream&, Y_plants&);
  37. };
  38.  
  39. Plants::Plants(char* aname, double awin, double aspr, double asum, double baut)
  40. {
  41. int n;
  42. n = strlen(aname);
  43. name = new char[n + 1];
  44. strcpy(name, aname);
  45. win = awin;
  46. spr = aspr;
  47. sum = asum;
  48. aut = baut;
  49. }
  50. Plants::Plants(const Plants& p)
  51. {
  52. int n = strlen(p.name);
  53. name = new char[n+1];
  54. strcpy(name, p.name);
  55. win = p.win;
  56. spr = p.spr;
  57. sum = p.sum;
  58. aut = p.aut;
  59. }
  60. Plants& Plants:: operator=(const Plants& p)
  61. {
  62. if (this != &p)
  63. {
  64. delete[]name;
  65. name = new char[strlen(p.name) + 1];
  66. strcpy(name, p.name);
  67. win = p.win;
  68. spr = p.spr;
  69. sum = p.sum;
  70. aut = p.aut;
  71. }
  72. return *this;
  73. }
  74. ostream& operator<<(ostream& s, const Plants& p)
  75. {
  76. s << p.name << " " << p.win << " " << p.spr << " " << p.sum << " " << p.aut << '\n';
  77. return s;
  78. }
  79. istream& operator>>(istream& s, Plants& p)
  80. {
  81. char text[100];
  82. s >> text >> p.win >> p.spr >> p.sum >> p.aut;
  83. delete[]p.name;
  84. p.name = new char[strlen(text) + 1];
  85. strcpy(p.name, text);
  86. return s;
  87. }
  88.  
  89. Y_plants::Y_plants(char* aname, double awin, double aspr, double asum, double baut, int ayear):Plants(aname, awin, aspr, asum, baut)
  90. {
  91. year = ayear;
  92. }
  93. Y_plants::Y_plants(const Y_plants& p) : Plants(p)
  94. {
  95. year = p.year;
  96. }
  97.  
  98. Y_plants::Y_plants(const Plants& p, int ayear) : Plants(p)
  99. {
  100. year = ayear;
  101. }
  102. Y_plants& Y_plants::operator=(const Y_plants& p)
  103. {
  104. if (this != &p)
  105. {
  106. delete[]name;
  107. name = new char[strlen(p.name) + 1];
  108. strcpy(name, p.name);
  109. win = p.win;
  110. spr = p.spr;
  111. sum = p.sum;
  112. aut = p.aut;
  113. year = p.year;
  114. }
  115. return *this;
  116. }
  117. ostream& operator<<(ostream& s, const Y_plants& c)
  118. {
  119. s << Plants(c) << " " << c.year;
  120. return s;
  121. }
  122. istream& operator>>(istream& s, Y_plants& c)
  123. {
  124. Plants x;
  125. s >> x >> c.year;
  126. return s;
  127. }
  128. void main()
  129. {
  130. setlocale(LC_ALL, "");
  131. Y_plants a[50];
  132. double win, spr, sum, aut, l = 0, max = 0, r = 0, t = 0, y = 0;
  133. int i, n, y1;
  134.  
  135. cout << "Введите кол-во цехов: ";
  136. cin >> n;
  137.  
  138. cout << "Введите название цеха, выработку за каждый квартал в рублях (с 1-го по 4-й) и какого года: ";
  139. for (i = 0; i < n; i++)
  140. cin >> a[i];
  141. cout << "\n\n";
  142.  
  143. cout << "Название цеха| 1-й квартал | 2-й квартал | 3-й квартал| 4-й квартал| Год| \n";
  144. for (i = 0; i < n; i++)
  145. cout << a[i];
  146.  
  147.  
  148.  
  149. for (i = 0; i < n; i++)
  150. {
  151. l += a[i].getwin();
  152. r += a[i].getspr();
  153. t += a[i].getsum();
  154. y += a[i].getaut();
  155. }
  156. if (max < l / n)
  157. max = l / n;
  158. if (max < r / n)
  159. max = r / n;
  160. if (max < t / n)
  161. max = t / n;
  162. if (max < y / n)
  163. max = y / n;
  164.  
  165. cout << "Наибольшая выработка по заводу(в рублях) за квартал: " << '\n';
  166. if (max == l / n)
  167. cout << "1-й Квартал: " << max <<" "<< '\n';
  168. if (max == r / n)
  169. cout << "2-й Квартал: " << max <<" "<< '\n';
  170. if (max == t / n)
  171. cout << "3-й Квартал: " << max <<" "<< '\n';
  172. if (max == y / n)
  173. cout << "4-й Квартал: " << max <<" "<< '\n';
  174.  
  175. system("pause");
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement