MeehoweCK

Untitled

Apr 19th, 2021
736
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.54 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. enum class wpis
  8. {
  9.     ksiazka, film
  10. };
  11.  
  12. class WpisBiblioteczny
  13. {
  14. protected:
  15.     string autor;
  16.     string tytul;
  17.     wpis typ;
  18. public:
  19.     WpisBiblioteczny(string, string, wpis);
  20.     virtual ~WpisBiblioteczny();
  21.     virtual void wypisz() = 0;
  22. };
  23.  
  24. class Ksiazka : public WpisBiblioteczny
  25. {
  26.     unsigned liczba_stron;
  27. public:
  28.     Ksiazka(unsigned, string, string);
  29.     ~Ksiazka();
  30.     void wypisz();
  31. };
  32.  
  33. class Film : public WpisBiblioteczny
  34. {
  35.     unsigned dlugosc;
  36. public:
  37.     Film(unsigned, string, string);
  38.     ~Film();
  39.     void wypisz();
  40. };
  41.  
  42. WpisBiblioteczny::WpisBiblioteczny(string aut, string title, wpis rodzaj) : autor(aut), tytul(title), typ(rodzaj) {}
  43. WpisBiblioteczny::~WpisBiblioteczny() {}
  44.  
  45. Ksiazka::Ksiazka(unsigned strony, string aut, string title) : WpisBiblioteczny(aut, title, wpis::ksiazka), liczba_stron(strony) {}
  46. Ksiazka::~Ksiazka() {}
  47. void Ksiazka::wypisz()
  48. {
  49.     cout << "Ksiazka pod tytulem " << tytul << " autorstwa " << autor << ", liczba stron: " << liczba_stron << endl;
  50. }
  51.  
  52. Film::Film(unsigned minuty, string aut, string title) : WpisBiblioteczny(aut, title, wpis::film), dlugosc(minuty) {}
  53. Film::~Film() {}
  54. void Film::wypisz()
  55. {
  56.     cout << "Film pod tytulem " << tytul << " w rezyserii " << autor << ", dlugosc: ";
  57.     unsigned godziny = dlugosc / 60;
  58.     unsigned minuty = dlugosc - godziny * 60;
  59.     cout << godziny << 'h' << minuty << '\'' << endl;
  60. }
  61.  
  62. int main()
  63. {
  64.     string autor, tytul;
  65.     unsigned strony_dlugosc;
  66.     srand(time(nullptr));
  67.     WpisBiblioteczny** tab = new WpisBiblioteczny*[3];
  68.     for(short i = 0; i < 3; ++i)
  69.     {
  70.         if(rand() % 2 == 0)
  71.         {
  72.             cout << "Podaj autora ksiazki: ";
  73.             getline(cin, autor);
  74.             cout << "Podaj tytul ksiazki: ";
  75.             getline(cin, tytul);
  76.             cout << "Ile ksiazka ma stron? ";
  77.             cin >> strony_dlugosc;
  78.             tab[i] = new Ksiazka(strony_dlugosc, autor, tytul);
  79.         }
  80.         else
  81.         {
  82.             cout << "Podaj imie i nazwisko rezysera filmu: ";
  83.             getline(cin, autor);
  84.             cout << "Podaj tytul filmu: ";
  85.             getline(cin, tytul);
  86.             cout << "Ile minut trwa film? ";
  87.             cin >> strony_dlugosc;
  88.             tab[i] = new Film(strony_dlugosc, autor, tytul);
  89.         }
  90.     }
  91.  
  92.     for(short i = 0; i < 3; ++i)
  93.         tab[i]->wypisz();
  94.     for(short i = 0; i < 3; ++i)
  95.         delete tab[i];
  96.     delete[] tab;
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment