Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- enum class wpis
- {
- ksiazka, film
- };
- class WpisBiblioteczny
- {
- protected:
- string autor;
- string tytul;
- wpis typ;
- public:
- WpisBiblioteczny(string, string, wpis);
- virtual ~WpisBiblioteczny();
- virtual void wypisz() = 0;
- };
- class Ksiazka : public WpisBiblioteczny
- {
- unsigned liczba_stron;
- public:
- Ksiazka(unsigned, string, string);
- ~Ksiazka();
- void wypisz();
- };
- class Film : public WpisBiblioteczny
- {
- unsigned dlugosc;
- public:
- Film(unsigned, string, string);
- ~Film();
- void wypisz();
- };
- WpisBiblioteczny::WpisBiblioteczny(string aut, string title, wpis rodzaj) : autor(aut), tytul(title), typ(rodzaj) {}
- WpisBiblioteczny::~WpisBiblioteczny() {}
- Ksiazka::Ksiazka(unsigned strony, string aut, string title) : WpisBiblioteczny(aut, title, wpis::ksiazka), liczba_stron(strony) {}
- Ksiazka::~Ksiazka() {}
- void Ksiazka::wypisz()
- {
- cout << "Ksiazka pod tytulem " << tytul << " autorstwa " << autor << ", liczba stron: " << liczba_stron << endl;
- }
- Film::Film(unsigned minuty, string aut, string title) : WpisBiblioteczny(aut, title, wpis::film), dlugosc(minuty) {}
- Film::~Film() {}
- void Film::wypisz()
- {
- cout << "Film pod tytulem " << tytul << " w rezyserii " << autor << ", dlugosc: ";
- unsigned godziny = dlugosc / 60;
- unsigned minuty = dlugosc - godziny * 60;
- cout << godziny << 'h' << minuty << '\'' << endl;
- }
- int main()
- {
- string autor, tytul;
- unsigned strony_dlugosc;
- srand(time(nullptr));
- WpisBiblioteczny** tab = new WpisBiblioteczny*[3];
- for(short i = 0; i < 3; ++i)
- {
- if(rand() % 2 == 0)
- {
- cout << "Podaj autora ksiazki: ";
- getline(cin, autor);
- cout << "Podaj tytul ksiazki: ";
- getline(cin, tytul);
- cout << "Ile ksiazka ma stron? ";
- cin >> strony_dlugosc;
- tab[i] = new Ksiazka(strony_dlugosc, autor, tytul);
- }
- else
- {
- cout << "Podaj imie i nazwisko rezysera filmu: ";
- getline(cin, autor);
- cout << "Podaj tytul filmu: ";
- getline(cin, tytul);
- cout << "Ile minut trwa film? ";
- cin >> strony_dlugosc;
- tab[i] = new Film(strony_dlugosc, autor, tytul);
- }
- }
- for(short i = 0; i < 3; ++i)
- tab[i]->wypisz();
- for(short i = 0; i < 3; ++i)
- delete tab[i];
- delete[] tab;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment