Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- enum zanr{akcija,komedija,drama};
- class Film
- {
- private:
- char *ime;
- int memorija;
- zanr kojzanr;
- public:
- Film(){}
- Film(const char *ime,const int memorija,const zanr kojzanr)
- {
- this->ime=new char [strlen(ime)+1];
- strcpy(this->ime,ime);
- this->memorija=memorija;
- this->kojzanr=kojzanr;
- }
- Film (const Film &f)
- {
- this->ime=new char [strlen(f.ime)+1];
- strcpy(this->ime,f.ime);
- this->memorija=f.memorija;
- this->kojzanr=f.kojzanr;
- }
- int getMemorija()
- {
- return memorija;
- }
- Film &operator =(const Film &f)
- {
- if(this!=&f)
- {
- delete[] ime;
- this->ime=new char [strlen(f.ime)+1];
- strcpy(this->ime,f.ime);
- this->memorija=f.memorija;
- this->kojzanr=f.kojzanr;
- return *this;
- }
- return *this;
- }
- zanr getzanr()
- {
- return kojzanr;
- }
- ~Film ()
- {
- delete[] ime;
- }
- void pecati()
- {
- cout<<memorija<<"MB-"<<"\""<<ime<<"\""<<endl;
- }
- const char *getime()
- {
- this->ime=new char [strlen(ime)+1];
- strcpy(this->ime,ime);
- return ime;
- }
- };
- class DVD
- {
- private:
- Film nizaOdFilmovi[5];
- int brojNaFilmovi;
- int memoriskiKapacitet;
- int brojac;
- public:
- DVD(){}
- DVD(int brojNaFilmovi)
- {
- this->brojNaFilmovi=brojNaFilmovi;
- this->memoriskiKapacitet=0;
- this->brojac=0;
- }
- DVD (const DVD &d)
- {
- this->brojNaFilmovi=d.brojNaFilmovi;
- this->memoriskiKapacitet=d.memoriskiKapacitet;
- this->brojac=0;
- for(int i=0;i<5;i++)
- {
- this->nizaOdFilmovi[i]=d.nizaOdFilmovi[i];
- }
- }
- DVD &operator = (const DVD &d)
- {
- if(this!=&d)
- {
- this->brojNaFilmovi=d.brojNaFilmovi;
- this->memoriskiKapacitet=d.memoriskiKapacitet;
- this->brojac=0;
- for(int i=0;i<5;i++)
- {
- this->nizaOdFilmovi[i]=d.nizaOdFilmovi[i];
- }
- return *this;
- }
- return *this;
- }
- void dodadiFilm(Film f)
- {
- if (brojNaFilmovi+f.getMemorija()<=memoriskiKapacitet && brojac<5){
- nizaOdFilmovi[brojac++]=f;
- brojNaFilmovi+=f.getMemorija();
- }
- }
- void pecatiFilmoviDrugZanr(const zanr r){
- for (int i=0;i<brojac;i++)
- {
- if (nizaOdFilmovi[i].getzanr()!=r)
- nizaOdFilmovi[i].pecati();
- }
- }
- float procentNaMemorijaOdZanr (zanr r)
- {
- int vkupnoMemorija=0;
- for(int i=0;i<brojNaFilmovi;i++)
- {
- if(nizaOdFilmovi[i].getzanr()==r)
- {
- vkupnoMemorija+=nizaOdFilmovi[i].getMemorija();
- }
- }
- return (vkupnoMemorija/memoriskiKapacitet)*100.00;
- }
- int getBroj()
- {
- return brojac;
- }
- Film getFilm (int i)
- {
- return nizaOdFilmovi[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);
- } else if (testCase == 6){
- cout<<"===== Testirawe na metodot procentNaMemorijaOdZanr() od klasata DVD =====" <<endl;
- DVD omileno(40);
- 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;
- cout<<"Procent na filmovi od dadeniot zanr iznesuva: "<<omileno.procentNaMemorijaOdZanr((zanr) kojzanr)<<"%\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement