Advertisement
Guest User

Untitled

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