Advertisement
Guest User

Untitled

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