Alx09

Untitled

Dec 4th, 2020
501
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<list>
  5. #include<iterator>
  6. #include<string>
  7.  
  8. #define _CRT_SECURE_NO_WARNING
  9. using namespace std;
  10. class Persoana {
  11. private:
  12.     string nume;
  13.     int varsta;
  14. public:
  15.     Persoana(string nume, int varsta) {
  16.         this->nume = nume;
  17.         this->varsta = varsta;
  18.     }
  19.  
  20.     virtual void afisare() {
  21.         cout << nume << " " << varsta << " ";
  22.     }
  23.    
  24.    
  25.     string get_nume() { return nume; }
  26.    
  27.  
  28. };
  29.  
  30.  
  31.  
  32. class Fotbalist:public Persoana {
  33. private:
  34.     int nrGoluri;
  35.     string pozitie;
  36. public:
  37.     Fotbalist(string nume, int varsta, string pozitie, int nrGoluri) : Persoana(nume, varsta) {
  38.         this->nrGoluri = nrGoluri;
  39.         this->pozitie = pozitie;
  40.     }
  41.     void afisare() {
  42.         Persoana::afisare();
  43.         cout << pozitie << " " <<nrGoluri<< endl;
  44.     }
  45.  
  46.  
  47.  
  48. };
  49.  
  50. class Cantaret : public Persoana
  51. {
  52. protected:
  53.     int nrPiese;
  54. public:
  55.     Cantaret(string nume, int varsta, int nrPiese) : Persoana(nume, varsta) {
  56.         this->nrPiese = nrPiese;
  57.     }
  58.     void afisare() {
  59.         Persoana::afisare();
  60.         cout << nrPiese << endl;
  61.     }
  62. };
  63.  
  64. list <Persoana *> listaCadou;
  65. list <Persoana *>::iterator it;
  66.  
  67.  
  68.  
  69.  
  70. void showSTL() {
  71.     cout << "------------------------" << endl;
  72.     for (it = listaCadou.begin(); it != listaCadou.end(); it++)
  73.         (*it)->afisare();
  74.  
  75.  
  76.  
  77. }
  78.  
  79. istream &operator>>(istream &in, Fotbalist *f) {
  80.  
  81.    
  82.     string nume, pozitie;
  83.     int varsta, nrGoluri;
  84.  
  85.     cout << "Nume: "; in >> nume;
  86.     cout << "Varsta: "; in >> varsta;
  87.  
  88.     cout << "Pozitie: "; in >> pozitie;
  89.     cout << "Numar de goluri: "; in >> nrGoluri;
  90.     if (listaCadou.empty())
  91.         listaCadou.push_back(new Fotbalist(nume, varsta, pozitie, nrGoluri));
  92.     else {
  93.         it = listaCadou.begin();
  94.         while (it != listaCadou.end() && (*it)->get_nume() < nume)
  95.             advance(it, 1);
  96.         listaCadou.emplace(it, new  Fotbalist(nume, varsta, pozitie, nrGoluri));
  97.     }
  98.     return in;
  99. }
  100. istream &operator>>(istream &in, Cantaret *C) {
  101.  
  102.     string nume;
  103.     int varsta, nrPiese;
  104.  
  105.     cout << "Nume: "; in >> nume;
  106.     cout << "varsta: "; in >> varsta;
  107.  
  108.     cout << "NrPiese: "; in >> nrPiese;
  109.     if (listaCadou.empty())
  110.         listaCadou.push_back(new  Cantaret(nume,  varsta, nrPiese));
  111.     else {
  112.         it = listaCadou.begin();
  113.         while (it != listaCadou.end() && (*it)->get_nume() < nume)
  114.             advance(it, 1);
  115.         listaCadou.emplace(it, new  Cantaret(nume, varsta, nrPiese));
  116.     }
  117.     return in;
  118. }
  119.  
  120. int main() {
  121.     Fotbalist *F = NULL;
  122.     Cantaret *C = NULL;
  123.     bool help;
  124.     int opt;
  125.     do {
  126.         cout << "\n\n";
  127.         cout << "1.Adaugare Persoana\n";
  128.         cout << "2.Afis  persoane \n";
  129.         cout << "0.Iesire \n";
  130.         cout << "Dati optiunea dvs: ";
  131.         cin >> opt;
  132.         system("cls");
  133.         switch (opt) {
  134.         case 1:
  135.             cout << "Este fotbalist - 1 sau cantaret-0 : "; cin >> help;
  136.             if (help) cin >> F;
  137.             else cin >> C;
  138.             break;
  139.         case 2:
  140.             showSTL();
  141.             break;
  142.  
  143.         case 0:
  144.             break;
  145.  
  146.         }
  147.     } while (opt != 0);
  148.     return 0;
  149. }
  150.  
RAW Paste Data