Andziev

CD

Apr 22nd, 2016
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. enum tip {pop,rap,rok };
  5. class Pesna {
  6. private:
  7.     char *ime;
  8.     int minuti;
  9.     tip muzika;
  10. public:
  11.     Pesna () {}
  12.     Pesna (char *i,int m,tip muz) {
  13.         ime=new char [strlen(i)+1];
  14.         strcpy(ime,i);
  15.         minuti=m;
  16.         muzika=muz;
  17.     }
  18.     void pecati() {
  19.         cout<<"\""<<ime<<"\""<<"-"<<minuti<<"min"<<endl;
  20.     }
  21.     int getmin ()
  22.     {
  23.         return minuti;
  24.     }
  25.     tip getTip()
  26.     {
  27.         return muzika;
  28.     }
  29. };
  30. class CD {
  31. private:
  32.     Pesna pesni[10];
  33.     int n;
  34.     int max;
  35. public:
  36.     CD () { }
  37.     CD (int max) {
  38.         this->max=max;
  39.         n=0;
  40.     }
  41.     CD & dodadiPesna (Pesna p)
  42.     {
  43.         ++n;
  44.         int temp=0;
  45.         for(int i=0; i<n-1; i++)
  46.         {
  47.             temp+=pesni[i].getmin();
  48.         }
  49.         if(n>10 || max<(temp+p.getmin()))
  50.         {
  51.             --n;
  52.             return *this;
  53.         }
  54.         pesni[n-1]=p;
  55.         return *this;
  56.     }
  57.     Pesna & getPesna (int k)
  58.     {
  59.         return pesni[k];
  60.     }
  61.     int getBroj ()
  62.     {
  63.         return n;
  64.     }
  65.     void pecatiPesniPoTip(tip t)
  66.     {
  67.         for(int i=0; i<n; i++)
  68.         {
  69.              if(pesni[i].getTip()==t)
  70.                 pesni[i].pecati();
  71.         }
  72.        
  73.     }
  74. };
  75. int main() {
  76.     // se testira zadacata modularno
  77.     int testCase;
  78.     cin >> testCase;
  79.  
  80.     int n, minuti, kojtip;
  81.     char ime[50];
  82.  
  83.     if(testCase == 1) {
  84.         cout << "===== Testiranje na klasata Pesna ======" << endl;
  85.         cin >> ime;
  86.         cin >> minuti;
  87.         cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
  88.         Pesna p(ime,minuti,(tip)kojtip);
  89.         p.pecati();
  90.     } else if(testCase == 2) {
  91.         cout << "===== Testiranje na klasata CD ======" << endl;
  92.         CD omileno(20);
  93.         cin>>n;
  94.         for (int i=0; i<n; i++) {
  95.             cin >> ime;
  96.             cin >> minuti;
  97.             cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
  98.             Pesna p(ime,minuti,(tip)kojtip);
  99.             omileno.dodadiPesna(p);
  100.         }
  101.         for (int i=0; i<n; i++)
  102.             (omileno.getPesna(i)).pecati();
  103.     } else if(testCase == 3) {
  104.         cout << "===== Testiranje na metodot dodadiPesna() od klasata CD ======" << endl;
  105.         CD omileno(20);
  106.         cin>>n;
  107.         for (int i=0; i<n; i++) {
  108.             cin >> ime;
  109.             cin >> minuti;
  110.             cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
  111.             Pesna p(ime,minuti,(tip)kojtip);
  112.             omileno.dodadiPesna(p);
  113.         }
  114.         for (int i=0; i<omileno.getBroj(); i++)
  115.             (omileno.getPesna(i)).pecati();
  116.     } else if(testCase == 4) {
  117.         cout << "===== Testiranje na metodot pecatiPesniPoTip() od klasata CD ======" << endl;
  118.         CD omileno(20);
  119.         cin>>n;
  120.         for (int i=0; i<n; i++) {
  121.             cin >> ime;
  122.             cin >> minuti;
  123.             cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
  124.             Pesna p(ime,minuti,(tip)kojtip);
  125.             omileno.dodadiPesna(p);
  126.         }
  127.         cin>>kojtip;
  128.         omileno.pecatiPesniPoTip((tip)kojtip);
  129.  
  130.     } else if(testCase == 5) {
  131.         cout << "===== Testiranje na metodot pecatiPesniPoTip() od klasata CD ======" << endl;
  132.         CD omileno(20);
  133.         cin>>n;
  134.         for (int i=0; i<n; i++) {
  135.             cin >> ime;
  136.             cin >> minuti;
  137.             cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
  138.             Pesna p(ime,minuti,(tip)kojtip);
  139.             omileno.dodadiPesna(p);
  140.         }
  141.         cin>>kojtip;
  142.         omileno.pecatiPesniPoTip((tip)kojtip);
  143.  
  144.     }
  145.  
  146.     return 0;
  147. }
Add Comment
Please, Sign In to add comment