Advertisement
Guest User

Untitled

a guest
Mar 24th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. enum zanr{akcija,komedija,drama};
  7.  
  8. class Film
  9. {
  10.     private:
  11.     char *ime;
  12.     int memorija;
  13.     zanr kojzanr;
  14.     public:
  15.     Film(){}
  16.     Film(const char *ime,const int memorija,const zanr kojzanr)
  17.     {
  18.         this->ime=new char [strlen(ime)+1];
  19.         strcpy(this->ime,ime);
  20.         this->memorija=memorija;
  21.         this->kojzanr=kojzanr;
  22.     }
  23.     Film (const Film &f)
  24.     {
  25.         this->ime=new char [strlen(f.ime)+1];
  26.         strcpy(this->ime,f.ime);
  27.         this->memorija=f.memorija;
  28.         this->kojzanr=f.kojzanr;
  29.     }
  30.     int getMemorija()
  31.     {
  32.         return memorija;
  33.     }
  34.     Film &operator =(const Film &f)
  35.     {
  36.         if(this!=&f)
  37.         {
  38.             delete[] ime;
  39.             this->ime=new char [strlen(f.ime)+1];
  40.         strcpy(this->ime,f.ime);
  41.         this->memorija=f.memorija;
  42.         this->kojzanr=f.kojzanr;
  43.             return *this;
  44.         }
  45.         return *this;
  46.     }
  47.     zanr getzanr()
  48.     {
  49.         return kojzanr;
  50.     }
  51.     ~Film ()
  52.     {
  53.         delete[] ime;
  54.     }
  55.     void pecati()
  56.     {
  57.         cout<<memorija<<"MB-"<<"\""<<ime<<"\""<<endl;
  58.     }
  59.     const char *getime()
  60.     {
  61.         this->ime=new char [strlen(ime)+1];
  62.         strcpy(this->ime,ime);
  63.         return ime;
  64.     }
  65. };
  66.  
  67. class DVD
  68. {
  69.     private:
  70.     Film nizaOdFilmovi[5];
  71.     int brojNaFilmovi;
  72.     int memoriskiKapacitet;
  73.     int brojac;
  74.     public:
  75.     DVD(){}
  76.     DVD(int brojNaFilmovi)
  77.     {
  78.         this->brojNaFilmovi=brojNaFilmovi;
  79.         this->memoriskiKapacitet=0;
  80.         this->brojac=0;
  81.     }
  82.     DVD (const DVD &d)
  83.     {
  84.         this->brojNaFilmovi=d.brojNaFilmovi;
  85.         this->memoriskiKapacitet=d.memoriskiKapacitet;
  86.         this->brojac=0;
  87.         for(int i=0;i<5;i++)
  88.         {
  89.             this->nizaOdFilmovi[i]=d.nizaOdFilmovi[i];
  90.         }
  91.     }
  92.     DVD &operator = (const DVD &d)
  93.     {
  94.         if(this!=&d)
  95.         {
  96.             this->brojNaFilmovi=d.brojNaFilmovi;
  97.         this->memoriskiKapacitet=d.memoriskiKapacitet;
  98.             this->brojac=0;
  99.         for(int i=0;i<5;i++)
  100.         {
  101.             this->nizaOdFilmovi[i]=d.nizaOdFilmovi[i];
  102.         }
  103.             return *this;
  104.         }
  105.         return *this;
  106.     }
  107.     void dodadiFilm(Film f)
  108.     {
  109.         if (brojNaFilmovi+f.getMemorija()<=memoriskiKapacitet && brojac<5){
  110.             nizaOdFilmovi[brojac++]=f;
  111.             brojNaFilmovi+=f.getMemorija();
  112.         }
  113.     }
  114.     void pecatiFilmoviDrugZanr(const zanr r){
  115.         for (int i=0;i<brojac;i++)
  116.         {
  117.             if (nizaOdFilmovi[i].getzanr()!=r)
  118.                 nizaOdFilmovi[i].pecati();
  119.         }
  120.     }
  121.     float procentNaMemorijaOdZanr (zanr r)
  122.     {
  123.         int vkupnoMemorija=0;
  124.        
  125.         for(int i=0;i<brojNaFilmovi;i++)
  126.         {
  127.             if(nizaOdFilmovi[i].getzanr()==r)
  128.         {
  129.             vkupnoMemorija+=nizaOdFilmovi[i].getMemorija();
  130.         }
  131.         }
  132.        return (vkupnoMemorija/memoriskiKapacitet)*100.00;
  133.     }
  134.     int getBroj()
  135.     {
  136.         return brojac;
  137.     }
  138.     Film getFilm (int i)
  139.     {
  140.         return nizaOdFilmovi[i];
  141.     }
  142.    
  143. };
  144.  
  145. int main() {
  146.     // se testira zadacata modularno
  147.     int testCase;
  148.     cin >> testCase;
  149.  
  150.     int n, memorija, kojzanr;
  151.     char ime[50];
  152.  
  153.     if (testCase == 1) {
  154.         cout << "===== Testiranje na klasata Film ======" << endl;
  155.         cin >> ime;
  156.         cin >> memorija;
  157.         cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  158.         Film f(ime, memorija, (zanr) kojzanr);
  159.         f.pecati();
  160.     } else if (testCase == 2) {
  161.         cout << "===== Testiranje na klasata DVD ======" << endl;
  162.         DVD omileno(50);
  163.         cin >> n;
  164.         for (int i = 0; i < n; i++) {
  165.             cin >> ime;
  166.             cin >> memorija;
  167.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  168.             Film f(ime, memorija, (zanr) kojzanr);
  169.             omileno.dodadiFilm(f);
  170.         }
  171.         for (int i = 0; i < n; i++)
  172.             (omileno.getFilm(i)).pecati();
  173.     } else if (testCase == 3) {
  174.         cout << "===== Testiranje na metodot dodadiFilm() od klasata DVD ======" << endl;
  175.         DVD omileno(50);
  176.         cin >> n;
  177.         for (int i = 0; i < n; i++) {
  178.             cin >> ime;
  179.             cin >> memorija;
  180.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  181.             Film f(ime, memorija, (zanr) kojzanr);
  182.             omileno.dodadiFilm(f);
  183.         }
  184.         for (int i = 0; i < omileno.getBroj(); i++)
  185.             (omileno.getFilm(i)).pecati();
  186.     } else if (testCase == 4) {
  187.         cout << "===== Testiranje na metodot pecatiFilmoviDrugZanr() od klasata DVD ======" << endl;
  188.         DVD omileno(50);
  189.         cin >> n;
  190.         for (int i = 0; i < n; i++) {
  191.             cin >> ime;
  192.             cin >> memorija;
  193.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  194.             Film f(ime, memorija, (zanr) kojzanr);
  195.             omileno.dodadiFilm(f);
  196.         }
  197.         cin >> kojzanr;
  198.         omileno.pecatiFilmoviDrugZanr((zanr) kojzanr);
  199.  
  200.     } else if (testCase == 5) {
  201.         cout << "===== Testiranje na metodot pecatiFilmoviDrugZanr() od klasata DVD ======" << endl;
  202.         DVD omileno(50);
  203.         cin >> n;
  204.         for (int i = 0; i < n; i++) {
  205.             cin >> ime;
  206.             cin >> memorija;
  207.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  208.             Film f(ime, memorija, (zanr) kojzanr);
  209.             omileno.dodadiFilm(f);
  210.         }
  211.         cin >> kojzanr;
  212.         omileno.pecatiFilmoviDrugZanr((zanr) kojzanr);
  213.  
  214.     } else if (testCase == 6){
  215.         cout<<"===== Testirawe na metodot procentNaMemorijaOdZanr() od klasata DVD =====" <<endl;
  216.         DVD omileno(40);
  217.         cin >> n;
  218.         for (int i = 0; i < n; i++) {
  219.             cin >> ime;
  220.             cin >> memorija;
  221.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  222.             Film f(ime, memorija, (zanr) kojzanr);
  223.             omileno.dodadiFilm(f);
  224.         }
  225.         cin >> kojzanr;
  226.         cout<<"Procent na filmovi od dadeniot zanr iznesuva: "<<omileno.procentNaMemorijaOdZanr((zanr) kojzanr)<<"%\n";
  227.        
  228.     }
  229.  
  230.     return 0;
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement