Advertisement
chasnasestra

Untitled

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