Advertisement
Guest User

[C++] CD

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