nicb

Asd lab 02/10/18 (Problema Anfore)

Oct 2nd, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. //
  2. //  main.cpp
  3. //  Lab1 Ferone
  4. //
  5. //  Created by Nicola Beneduce on 02/10/2018.
  6. //  Copyright © 2018 Nicola Beneduce. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. using namespace std;
  11.  
  12. class contenitore
  13. {
  14.     int qt=0;
  15. public:
  16.     contenitore(){};
  17.     void versa (int x) { qt= qt+x;}
  18.     void togli (int x) {qt-=x;}
  19.     int getQt() { return qt;}
  20.     ~contenitore (){};
  21. };
  22.  
  23. class anfora: public contenitore
  24. {
  25.     int capacita;
  26. public:
  27.     anfora(){};
  28.     void setta_cap(int litri) {capacita = litri;}
  29.     void riempi(){versa(capacita);};
  30.     void svuota(){togli(getQt());};
  31.     bool isVuota() { return (getQt()==0);};
  32.     bool isPiena() { return (getQt()==capacita);};
  33.     void spostaContenuto(anfora &otre)
  34.     {
  35.         int diff=otre.capacita-otre.getQt();
  36.         if(getQt()<=diff)
  37.         {
  38.             otre.versa(getQt());
  39.             togli(getQt());
  40.         }
  41.         else
  42.         {
  43.             otre.versa(diff);
  44.             togli(diff);
  45.         }
  46.     }
  47. };
  48. class indovinello
  49.     {
  50.         anfora anfora3;
  51.         anfora anfora5;    
  52.     public:
  53.         indovinello(int lt1, int lt2){anfora3.setta_cap(lt1); anfora5.setta_cap(lt2);};
  54.         void svolgi()
  55.         {
  56.             anfora5.riempi();
  57.             anfora5.spostaContenuto(anfora3);
  58.             anfora3.svuota();
  59.             anfora5.spostaContenuto(anfora3);
  60.             anfora5.riempi();
  61.             anfora5.spostaContenuto(anfora3);
  62.             cout<<"risultato: "<<anfora5.getQt()<<endl;
  63.         }
  64.         ~indovinello()  {};
  65.  
  66.    
  67. };
  68.  
  69. int main(int argc, const char * argv[])
  70. {
  71.     indovinello indovinello_i(3, 5);
  72.     indovinello_i.svolgi();
  73.     return 0;
  74. }
Add Comment
Please, Sign In to add comment