Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- enum zanr {action, comedy, drama};
- class Film
- {
- private:
- char *filmName;
- int filmSize;
- zanr z;
- public:
- Film(const char *filmName = " ", const int filmSize = 0, const zanr z = zanr(0))
- {
- this->filmName = new char[strlen(filmName)+1];
- strcpy(this->filmName, filmName);
- this->filmSize = filmSize;
- this->z = z;
- }
- Film(const Film &r)
- {
- filmName = new char[strlen(r.filmName)+1];
- strcpy(filmName, r.filmName);
- filmSize = r.filmSize;
- z = r.z;
- }
- Film &operator=(const Film &r)
- {
- if(this != &r)
- {
- delete [] filmName;
- filmName = new char[strlen(r.filmName)+1];
- strcpy(filmName, r.filmName);
- filmSize = r.filmSize;
- z = r.z;
- }
- return *this;
- }
- ~Film()
- {
- delete [] filmName;
- }
- void pecati()
- {
- cout<< filmSize << "MB-" << "\"" << filmName << "\"" << endl;
- }
- const int getFilmSize()
- {
- return filmSize;
- }
- const zanr getGenre()
- {
- return z;
- }
- };
- class DVD
- {
- private:
- Film f[5];
- int filmsRecorded, capacity;
- public:
- DVD(int capacity = 0)
- {
- this->capacity = capacity;
- filmsRecorded = 0;
- }
- ~DVD() {}
- void dodadiFilm(Film f)
- {
- if(filmsRecorded < 5)
- {
- int testCapacity = 0;
- for(int i=0; i<filmsRecorded; i++)
- {
- testCapacity += this->f[i].getFilmSize();
- }
- if((testCapacity + f.getFilmSize()) <= capacity)
- {
- this->f[filmsRecorded] = f;
- filmsRecorded++;
- }
- }
- }
- void pecatiFilmoviDrugZanr(const zanr z)
- {
- for(int i = 0; i < filmsRecorded; i++)
- {
- if(f[i].getGenre() != z)
- {
- f[i].pecati();
- }
- }
- }
- int getBroj()
- {
- return filmsRecorded;
- }
- Film getFilm(int i)
- {
- return f[i];
- }
- };
- int main() {
- // se testira zadacata modularno
- int testCase;
- cin >> testCase;
- int n, memorija, kojzanr;
- char ime[50];
- if(testCase == 1)
- {
- cout << "===== Testiranje na klasata Film ======" << endl;
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- f.pecati();
- } else if(testCase == 2)
- {
- cout << "===== Testiranje na klasata DVD ======" << endl;
- DVD omileno(50);
- cin>>n;
- for (int i=0; i<n; i++)
- {
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- omileno.dodadiFilm(f);
- }
- for (int i=0; i<n; i++)
- (omileno.getFilm(i)).pecati();
- } else if(testCase == 3)
- {
- cout << "===== Testiranje na metodot dodadiFilm() od klasata DVD ======" << endl;
- DVD omileno(50);
- cin>>n;
- for (int i=0; i<n; i++)
- {
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- omileno.dodadiFilm(f);
- }
- for (int i=0; i<omileno.getBroj(); i++)
- (omileno.getFilm(i)).pecati();
- } else if(testCase == 4)
- {
- cout << "===== Testiranje na metodot pecatiFilmoviDrugZanr() od klasata DVD ======" << endl;
- DVD omileno(50);
- cin>>n;
- for (int i=0; i<n; i++)
- {
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- omileno.dodadiFilm(f);
- }
- cin>>kojzanr;
- omileno.pecatiFilmoviDrugZanr((zanr)kojzanr);
- } else if(testCase == 5)
- {
- cout << "===== Testiranje na metodot pecatiFilmoviDrugZanr() od klasata DVD ======" << endl;
- DVD omileno(50);
- cin>>n;
- for (int i=0; i<n; i++)
- {
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- omileno.dodadiFilm(f);
- }
- cin>>kojzanr;
- omileno.pecatiFilmoviDrugZanr((zanr)kojzanr);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment