Advertisement
nikolaliltek

DVD

Mar 29th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. enum zanr{AKCIJA,KOMEDIJA,DRAMA};
  5. class Film{
  6. private:
  7.     char *ime;
  8.     int memorija;
  9.     zanr z;
  10. public:
  11.     Film(char* ime="",int memorija=0,zanr z=zanr(0)){
  12.         this->memorija=memorija;
  13.         this->z=z;
  14.         this->ime=new char[strlen(ime)+1];
  15.         strcpy(this->ime,ime);
  16.     }
  17.    
  18.     Film (const Film& f){
  19.         memorija=f.memorija;
  20.         z=f.z;
  21.         ime=new char[strlen(f.ime)+1];
  22.         strcpy(ime,f.ime);
  23.     }
  24.    
  25.     Film& operator=(const Film& f){
  26.         if(this==&f) return *this;
  27.         memorija=f.memorija;
  28.         z=f.z;
  29.         delete [] ime;
  30.         ime=new char[strlen(f.ime)+1];
  31.         strcpy(ime,f.ime);
  32.         return *this;
  33.     }
  34.    
  35.     void pecati(){
  36.         char c='"';
  37.         cout<<memorija<<"MB-"<<c<<ime<<c<<endl;
  38.     }
  39.    
  40.     int getm(){ return memorija; }
  41.    
  42.     zanr getz(){ return z; }
  43.    
  44.     ~Film(){
  45.         delete [] ime;
  46.     }
  47.    
  48. };
  49.  
  50. class DVD{
  51. private:
  52.     Film f[5];
  53.     int brf;
  54.     int mb;
  55. public:
  56.     DVD (int mb=0){
  57.         this->mb=mb;
  58.         brf=0;
  59.     }
  60.    
  61.     void dodadiFilm(Film ff){
  62.         if(brf<5&&ff.getm()<=mb){
  63.             f[brf]=ff;
  64.             ++brf;
  65.             mb-=ff.getm();
  66.         }
  67.     }
  68.    
  69.     void pecatiFilmoviDrugZanr(zanr z){
  70.         for(int i=0;i<brf;i++){
  71.             if(f[i].getz()!=z){
  72.                 f[i].pecati();
  73.             }
  74.         }
  75.     }
  76.    
  77.     Film getFilm(int i){ return f[i]; }
  78.    
  79.     int getBroj(){ return brf; }
  80.    
  81.     ~DVD(){}
  82.    
  83. };
  84. int main() {
  85.     // se testira zadacata modularno
  86.     int testCase;
  87.     cin >> testCase;
  88.  
  89.     int n, memorija, kojzanr;
  90.     char ime[50];
  91.  
  92.     if(testCase == 1) {
  93.         cout << "===== Testiranje na klasata Film ======" << endl;
  94.         cin >> ime;
  95.         cin >> memorija;
  96.         cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  97.         Film f(ime,memorija,(zanr)kojzanr);
  98.         f.pecati();
  99.     } else if(testCase == 2) {
  100.         cout << "===== Testiranje na klasata DVD ======" << endl;
  101.         DVD omileno(50);
  102.         cin>>n;
  103.         for (int i=0; i<n; i++) {
  104.             cin >> ime;
  105.             cin >> memorija;
  106.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  107.             Film f(ime,memorija,(zanr)kojzanr);
  108.             omileno.dodadiFilm(f);
  109.         }
  110.         for (int i=0; i<n; i++)
  111.             (omileno.getFilm(i)).pecati();
  112.     } else if(testCase == 3) {
  113.         cout << "===== Testiranje na metodot dodadiFilm() od klasata DVD ======" << endl;
  114.         DVD omileno(50);
  115.         cin>>n;
  116.         for (int i=0; i<n; i++) {
  117.             cin >> ime;
  118.             cin >> memorija;
  119.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  120.             Film f(ime,memorija,(zanr)kojzanr);
  121.             omileno.dodadiFilm(f);
  122.         }
  123.         for (int i=0; i<omileno.getBroj(); i++)
  124.             (omileno.getFilm(i)).pecati();
  125.     } else if(testCase == 4) {
  126.         cout << "===== Testiranje na metodot pecatiFilmoviDrugZanr() od klasata DVD ======" << endl;
  127.         DVD omileno(50);
  128.         cin>>n;
  129.         for (int i=0; i<n; i++) {
  130.             cin >> ime;
  131.             cin >> memorija;
  132.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  133.             Film f(ime,memorija,(zanr)kojzanr);
  134.             omileno.dodadiFilm(f);
  135.         }
  136.         cin>>kojzanr;
  137.         omileno.pecatiFilmoviDrugZanr((zanr)kojzanr);
  138.  
  139.     } else if(testCase == 5) {
  140.         cout << "===== Testiranje na metodot pecatiFilmoviDrugZanr() od klasata DVD ======" << endl;
  141.         DVD omileno(50);
  142.         cin>>n;
  143.         for (int i=0; i<n; i++) {
  144.             cin >> ime;
  145.             cin >> memorija;
  146.             cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
  147.             Film f(ime,memorija,(zanr)kojzanr);
  148.             omileno.dodadiFilm(f);
  149.         }
  150.         cin>>kojzanr;
  151.         omileno.pecatiFilmoviDrugZanr((zanr)kojzanr);
  152.  
  153.     }
  154.  
  155.     return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement