MeehoweCK

Untitled

Apr 19th, 2021
516
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×