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 z;
- public:
- Film()
- {
- ime = new char[0];
- memorija=0;
- z=AKCIJA;
- }
- Film(char *ime,int memorija,zanr z)
- {
- this->ime = new char [strlen(ime)+1];
- strcpy(this->ime,ime);
- this->memorija = memorija;
- this->z = z;
- }
- Film(Film &f)
- {
- this->ime = new char [strlen(f.ime)+1];
- strcpy(this->ime,f.ime);
- this->memorija = f.memorija;
- this->z = f.z;
- }
- Film& operator = (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->z = f.z;
- }
- return *this;
- }
- zanr getZanr()
- {
- return z;
- }
- int getMemorija()
- {
- return memorija;
- }
- void pecati()
- {
- cout<<memorija<<"MB-\""<<ime<<"\""<<endl;
- }
- ~Film()
- {
- delete []ime;
- }
- };
- class DVD
- {
- private:
- Film f[5];
- int brFilmovi;
- int kapacitet;
- int currentSize;
- public:
- DVD()
- {
- brFilmovi=0;
- //f = new Film[brFilmovi];
- kapacitet=0;
- currentSize=0;
- }
- DVD(int kapacitet)
- {
- this->kapacitet = kapacitet;
- brFilmovi=0;
- /*
- f = new Film[brFilmovi];
- for(int i=0;i<brFilmovi;i++)
- {
- this->f[i] = f[i];
- }
- */
- kapacitet=0;
- currentSize=0;
- }
- int getBroj()
- {
- return brFilmovi;
- }
- Film& getFilm(int i)
- {
- return f[i];
- }
- void dodadiFilm(Film &nov)
- {
- if(kapacitet>=currentSize + nov.getMemorija())
- {
- if(brFilmovi<5)
- {
- f[brFilmovi] = nov;
- brFilmovi++;
- currentSize+=nov.getMemorija();
- }
- }
- }
- /*
- void dodadiFilm(Film &nov)
- {
- if(kapacitet>currentSize + nov.getMemorija())
- {
- Film *temp = new Film[brFilmovi+1];
- for(int i=0;i<brFilmovi;i++)
- {
- temp[i] = f[i];
- }
- temp[brFilmovi] = nov;
- delete []f;
- f = temp;
- brFilmovi++;
- }
- }
- */
- void pecatiFilmoviDrugZanr(zanr z)
- {
- for(int i=0;i<brFilmovi;i++)
- {
- if(f[i].getZanr()!=z)
- {
- f[i].pecati();
- }
- }
- }
- float procentNaMemorijaOdZanr(zanr z)
- {
- int size=0;
- for(int i=0;i<brFilmovi;i++)
- {
- if(f[i].getZanr()==z)
- {
- size+=f[i].getMemorija();
- }
- }
- return (float)size*100/currentSize;
- }
- };
- 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;
- }
- /*
- #include<iostream>
- #include<cstring>
- using namespace std;
- enum zanr {
- akcija, komedija, drama
- };
- class Film {
- private:
- char * ime;
- int memorija;
- zanr zanrFilm;
- void copy(const Film &f){
- this->ime = new char [strlen(f.ime)+1];
- strcpy(this->ime,f.ime);
- this->memorija=f.memorija;
- this->zanrFilm=f.zanrFilm;
- }
- public:
- Film(char * ime = "", int memorija=0, zanr zanrFilm = akcija){
- this->ime = new char [strlen(ime)+1];
- strcpy(this->ime,ime);
- this->memorija=memorija;
- this->zanrFilm=zanrFilm;
- }
- Film(const Film &f){
- copy(f);
- }
- ~Film() {
- delete ime;
- }
- Film &operator = (const Film &f){
- if (this!=&f){
- delete ime;
- copy(f);
- }
- return *this;
- }
- void pecati() {
- cout<<memorija<<"MB-"<<"\""<<ime<<"\""<<endl;
- }
- int getMemorija() {
- return memorija;
- }
- zanr getZhanr() {
- return zanrFilm;
- }
- };
- class DVD {
- private:
- Film filmovi[5];
- int broj;
- int kapacitet;
- int momentalno;
- public:
- DVD(int kapacitet){
- this->kapacitet=kapacitet;
- broj=0;
- momentalno=0;
- }
- void dodadiFilm(Film f) {
- if (momentalno+f.getMemorija()<=kapacitet&&broj<5){
- filmovi[broj++]=f;
- momentalno+=f.getMemorija();
- }
- }
- void pecatiFilmoviDrugZanr(const zanr r){
- for (int i=0;i<broj;i++){
- // cout<<filmovi[i].pecati()<<" "<<r<<" "<<
- if (filmovi[i].getZhanr()!=r)
- filmovi[i].pecati();
- }
- }
- int getBroj() {
- return broj;
- }
- Film getFilm (int i){
- return filmovi[i];
- }
- float procentNaMemorijaOdZanr(zanr r){
- float sum = 0.0;
- for (int i=0;i<broj;i++)
- if (filmovi[i].getZhanr()==r)
- sum+=filmovi[i].getMemorija();
- return sum / momentalno * 100.0;
- }
- };
- 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