Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.98 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Fruct
  5. {
  6. protected:
  7. double greutate;
  8.  
  9. Fruct()
  10. {
  11. greutate = 0;
  12. }
  13.  
  14. public:
  15.  
  16. Fruct(double x)
  17. {
  18. greutate = x;
  19. }
  20.  
  21. virtual double modProcesare() = 0;
  22.  
  23. virtual char *gust() = 0;
  24.  
  25. virtual double greutatex() = 0;
  26.  
  27. virtual void gustfruct() = 0;
  28. };
  29.  
  30. class Lamaie:public Fruct
  31. {
  32. protected:
  33. Lamaie() :Fruct()
  34. {}
  35. public:
  36. Lamaie(double y) :Fruct(y)
  37. {}
  38.  
  39. double modProcesare()
  40. {
  41. cout << "Fructul este lamaie,se curata de coaja si se feliaza. ";
  42. greutate = 0.85*greutate;
  43. return greutate;
  44. }
  45.  
  46. char *gust()
  47. {
  48. return "acru";
  49. }
  50.  
  51. double greutatex()
  52. {
  53. return greutate;
  54. }
  55.  
  56. void gustfruct()
  57. {
  58. cout << "Fructul este acru." << endl;
  59. }
  60.  
  61. };
  62.  
  63. class Banana :public Fruct
  64. {
  65. protected:
  66. Banana() :Fruct()
  67. {}
  68. public:
  69. Banana(double y) :Fruct(y)
  70. {}
  71.  
  72. double modProcesare()
  73. {
  74. cout << "Fructul este banana,se curata coaja si se taie in felii. ";
  75. greutate = 0.9*greutate;
  76. return greutate;
  77. }
  78.  
  79. char *gust()
  80. {
  81. return "dulce";
  82. }
  83.  
  84. double greutatex()
  85. {
  86. return greutate;
  87. }
  88.  
  89. void gustfruct()
  90. {
  91. cout << "Fructul este dulce." << endl;
  92. }
  93.  
  94. };
  95.  
  96. class Mar :public Fruct
  97. {
  98. protected:
  99. Mar() :Fruct()
  100. {}
  101. public:
  102. Mar(double y) :Fruct(y)
  103. {}
  104.  
  105. double modProcesare()
  106. {
  107. cout << "Fructul este mar,se curata coaja si se inlatura cotorul apoi se feliaza. ";
  108. greutate = 0.8*greutate;
  109. return greutate;
  110. }
  111.  
  112. char *gust()
  113. {
  114. return "dulce";
  115. }
  116.  
  117. double greutatex()
  118. {
  119. return greutate;
  120. }
  121.  
  122. void gustfruct()
  123. {
  124. cout << "Fructul este dulce." << endl;
  125. }
  126.  
  127. };
  128.  
  129. class Grapefruit :public Fruct
  130. {
  131. protected:
  132. Grapefruit() :Fruct()
  133. {}
  134. public:
  135. Grapefruit(double y) :Fruct(y)
  136. {}
  137.  
  138. double modProcesare()
  139. {
  140. cout << "Fructul este grapefruit,se curata de coaja si se feliaza. ";
  141. greutate = 0.88*greutate;
  142. return greutate;
  143. }
  144.  
  145. char *gust()
  146. {
  147. return "amar";
  148.  
  149. }
  150.  
  151. double greutatex()
  152. {
  153. return greutate;
  154. }
  155.  
  156.  
  157. void gustfruct()
  158. {
  159. cout << "Fructul este amar." << endl;
  160. }
  161. };
  162.  
  163.  
  164. void functie(Fruct *x[10])
  165. {
  166. for (int i = 0; i < 10; i++)
  167. {
  168. cout << x[i]->modProcesare() << endl;
  169. cout << endl;
  170. }
  171.  
  172. double greutatetot = 0;
  173.  
  174. for (int i = 0; i < 10; i++)
  175. {
  176. greutatetot = greutatetot+x[i]->greutatex();
  177. }
  178.  
  179. cout << "Greutatea totala dupa prelucrare a tuturor fructelor din cos: " << greutatetot << "kg."<< endl;
  180.  
  181. double a = 0,b = 0, c = 0;
  182.  
  183.  
  184. for (int i = 0; i < 10; i++)
  185. {
  186.  
  187. if (x[i]->gust() == "acru")
  188. {
  189. a = a + x[i]->greutatex();
  190. }
  191. else
  192. if (x[i]->gust() == "amar")
  193. {
  194. b = b + x[i]->greutatex();
  195. }
  196. else
  197. if (x[i]->gust() == "dulce")
  198. {
  199. c = c + x[i]->greutatex();
  200. }
  201. }
  202.  
  203. cout << "Kg de fructe acre:" << a << endl;
  204. cout << "Kg de fructe amare:" << b << endl;
  205. cout << "Kg de fructe dulci:" << c << endl;
  206.  
  207. double lasuta = 0;
  208.  
  209. if (a > b && a > c)
  210. {
  211. lasuta = (a * 100) / greutatetot;
  212. cout << "Amestecul este: " << lasuta << "% acru." << endl;
  213. }
  214.  
  215. if (b > a && b > c)
  216. {
  217. lasuta = (b * 100) / greutatetot;
  218. cout << "Amestecul este: " << lasuta << "% amar."<<endl;
  219. }
  220.  
  221. if (c > b && c > a)
  222. {
  223. lasuta = (c * 100) / greutatetot;
  224. cout << "Amestecul este: " << lasuta << "% dulce."<<endl;
  225. }
  226.  
  227.  
  228. }
  229.  
  230.  
  231. int main()
  232. {
  233. Lamaie a(10);
  234. Mar b(10);
  235. Grapefruit c(10);
  236. Banana d(10);
  237.  
  238. //cout << a.modProcesare() << endl;
  239. //cout << b.modProcesare() << endl;
  240. //cout << c.modProcesare() << endl;
  241. //cout << d.modProcesare() << endl;
  242.  
  243. //a.gustfruct();
  244. //b.gustfruct();
  245. //c.gustfruct();
  246. //d.gustfruct();
  247.  
  248. Fruct *CosFructe[10];
  249. CosFructe[0] = new Lamaie(10);
  250. CosFructe[1] = new Grapefruit(10);
  251. CosFructe[2] = new Mar(10);
  252. CosFructe[3] = new Banana(10);
  253. CosFructe[4] = new Mar(10);
  254. CosFructe[5] = new Mar(10);
  255. CosFructe[6] = new Banana(10);
  256. CosFructe[7] = new Banana(10);
  257. CosFructe[8] = new Lamaie(10);
  258. CosFructe[9] = new Grapefruit(10);
  259.  
  260.  
  261.  
  262. functie(CosFructe);
  263.  
  264. system("pause");
  265. return 0;
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement