Advertisement
fcamuso

Corso recupero Javascript - video 34

Mar 9th, 2023
705
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. class Persona {
  7. public:
  8.  
  9.   Persona() {
  10.     //cout << "Costruttore vuoto della classe madre\n";
  11.   }
  12.  
  13.   Persona(string _cognome, string _nome, int _anno_nascita, string _tessera_sanitaria)
  14.   {
  15.     cognome=_cognome;
  16.     nome=_nome;
  17.     anno_nascita= _anno_nascita;
  18.     tessera_sanitaria = _tessera_sanitaria;
  19.   }
  20.  
  21.   string get_cognome() {return cognome;}
  22.   string get_nome() {return nome;}
  23.   int get_anno_nascita() {return anno_nascita;}
  24.  
  25.   void set_cognome(string nuovo_cognome) {cognome=nuovo_cognome;}
  26.   void set_nome(string nuovo_nome) {nome=nuovo_nome;}
  27.   void set_anno_nascita(int nuovo_anno) {anno_nascita = nuovo_anno;}
  28.  
  29.   virtual string schedaAnagrafica() {
  30.     string s = "SCHEDA ANAGRAFICA di " + cognome + " " + nome + "\n";
  31.     s += string(45, '=') + "\n";
  32.     s += "Nato nell'anno: " + to_string(anno_nascita) + "\n";
  33.     s += "N. tessera sanitaria: " + tessera_sanitaria + "\n";
  34.  
  35.     return s;
  36.   }
  37.  
  38. protected:
  39.   string cognome="";
  40.   string nome="";
  41.   int anno_nascita=0;
  42.   string tessera_sanitaria="";
  43. };
  44.  
  45.  
  46. class Sportivo : public Persona {
  47.  
  48. public:
  49.   Sportivo(string _cognome, string _nome, int _anno_nascita)
  50.     : Persona(_cognome, _nome, _anno_nascita, "")
  51.  
  52.   {
  53.  
  54.   }
  55.  
  56.   int get_battiti_a_riposo() {return battiti_a_riposo;}
  57.   string get_data_ultima_visita() {return data_ultima_visita;}
  58.  
  59.  
  60.   void set_battiti_a_riposo(int nuovi_battiti) {battiti_a_riposo=nuovi_battiti;}
  61.   void set_data_ultima_visita(string data) {data_ultima_visita=data;}
  62.  
  63. //  string schedaAnagrafica() {
  64. //    string s = Persona::schedaAnagrafica();
  65. //
  66. //    s += "Battiti cardiaci al minuto a riposo: " + to_string(battiti_a_riposo) + "\n";
  67. //    s += "Data ultima visita medica sportiva: " + data_ultima_visita + "\n";
  68. //
  69. //    return s;
  70. //  }
  71.  
  72.   string schedaAnagrafica() override {
  73.   string s = "SCHEDA ANAGRAFICA di " + cognome + " " + Persona::nome + "\n";
  74.     s += string(45, '=') + "\n";
  75.     s += "Nato nell'anno: " + to_string(anno_nascita) + "\n";
  76.  
  77.     if (tessera_sanitaria!="")
  78.       s += "N. tessera sanitaria: " + tessera_sanitaria + "\n";
  79.  
  80.     s += "Battiti cardiaci al minuto a riposo: " + to_string(battiti_a_riposo) + "\n";
  81.     s += "Data ultima visita medica sportiva: " + data_ultima_visita + "\n";
  82.  
  83.     s+= "Detto... " + nome + "\n";
  84.  
  85.     return s;
  86.   }
  87.  
  88. private:
  89.  
  90.   int battiti_a_riposo = 0;
  91.   string data_ultima_visita="";
  92.   string nome="El Furia";
  93.  
  94. };
  95.  
  96. class Alunno : public Persona {
  97.  
  98. public:
  99.   Alunno(string _cognome, string _nome, int _anno_nascita, string _istituto)
  100.     : Persona(_cognome, _nome, _anno_nascita, "")
  101.  
  102.   {
  103.      istituto = _istituto;
  104.   }
  105.  
  106.   string get_istituto() {return istituto;}
  107.   void set_istituto(string _istituto) {istituto = _istituto;}
  108.  
  109.  
  110.   string schedaAnagrafica() override {
  111.     string s = Persona::schedaAnagrafica();
  112.  
  113.     s += "Frequentante l'istituto: " + istituto + "\n";
  114.     return s;
  115.   }
  116.  
  117.  
  118. private:
  119.  
  120.   string istituto="";
  121.  
  122. };
  123.  
  124.  
  125. class Lavoratore : public Persona {
  126.  
  127. public:
  128.   Lavoratore(string _cognome, string _nome, int _anno_nascita, string _codice_fiscale)
  129.     : Persona(_cognome, _nome, _anno_nascita, "")
  130.  
  131.   {
  132.      codice_fiscale = _codice_fiscale;
  133.   }
  134.  
  135.   string get_codice_fiscale() {return codice_fiscale;}
  136.   void set_codice_fiscale(string _codice_fiscale) {codice_fiscale = _codice_fiscale;}
  137.  
  138.  
  139.   string schedaAnagrafica() override {
  140.     string s = Persona::schedaAnagrafica();
  141.  
  142.     s += "Codice Fiscale: " + codice_fiscale + "\n";
  143.     return s;
  144.   }
  145.  
  146.  
  147. private:
  148.  
  149.   string codice_fiscale="";
  150. };
  151.  
  152. int main()
  153. {
  154.  
  155. //  Persona p1 = Persona("Rossi", "Mario", 1990, "CX3247-AS-2011C");
  156. //  cout << p1.schedaAnagrafica() << endl;
  157. //
  158. //  Sportivo sp1 = Sportivo("Verdi", "Sandro", 1987);
  159. //  cout << sp1.schedaAnagrafica() << endl;
  160.  
  161.  
  162.  
  163.   //conformitá di tipo + late binding (dynamic binding)
  164.   vector<Persona *>persone = vector<Persona *>();
  165.  
  166.   persone.push_back(new Alunno("Sandroni", "Sandro", 2006, "G. Romani"));
  167.   persone.push_back(new Sportivo("Speedy", "Gonzales", 2000));
  168.   persone.push_back(new Lavoratore("Fantozzi", "Ugo", 1950, "SONSFI50GAT123O"));
  169.  
  170.   for (int i=0; i<persone.size(); i++)
  171.     cout << persone[i]->schedaAnagrafica();
  172.  
  173.  
  174. //  Persona *p1 = ;
  175. //  Persona *p2 = ;
  176. //  Persona *p3 = ;
  177. //
  178. //  cout << p1->schedaAnagrafica() << endl;
  179. //  cout << p2->schedaAnagrafica() << endl;
  180. //  cout << p3->schedaAnagrafica() << endl;
  181.  
  182.     return 0;
  183. }
  184.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement