Advertisement
Guest User

Daj Pomogni ziti mene pred na popo da mu se javam

a guest
Jan 27th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <string.h>
  4. using namespace std;
  5. enum tip{pop,rap,rok};
  6.  
  7. class Pesna{
  8. private:
  9. char* ime;
  10. int min;
  11. tip kojtip;
  12. public:
  13. int getMin(){
  14. return min;
  15. }
  16. Pesna(){
  17. ime = NULL;
  18. }
  19. tip getTip(){
  20. return kojtip;}
  21.  
  22. Pesna(char* ime,int min,tip kojtip)
  23. {
  24. this->ime = new char[strlen(ime)+1];
  25. strcpy(this->ime, ime);
  26. this->min=min;
  27. this->kojtip=kojtip;
  28. }
  29.  
  30. void pecati(){
  31. cout<<"\""<<ime<<"\"-"<<min<<"min"<<endl;
  32. }
  33.  
  34. Pesna & operator =(const Pesna &p){
  35. if(this!=&p)
  36. {
  37. delete [] ime;
  38. this->ime = new char[strlen(p.ime)+1];
  39. strcpy(this->ime,p.ime);
  40. this->min=p.min;
  41. this->kojtip=p.kojtip;
  42.  
  43. }
  44.  
  45. return *this;
  46. }
  47.  
  48. ~Pesna(){
  49. delete [] ime;
  50. }
  51. friend class CD;
  52.  
  53. };
  54.  
  55. class CD{
  56. private:
  57. Pesna pesni[10];
  58. int maxvreme;
  59. int n;
  60. public:
  61.  
  62. CD(){
  63. n=0;
  64. }
  65.  
  66. CD(int maxvreme)
  67. {
  68. this->maxvreme=maxvreme;
  69. n=0;
  70. }
  71. Pesna getPesna(int i){
  72. return pesni[i];
  73. }
  74.  
  75. int getBroj(){
  76. return n;
  77. }
  78. void dodadiPesna (Pesna & pesnicka){
  79. if(n<10){
  80. if(maxvreme-pesnicka.min>=0)
  81. {
  82. pesni[n]=pesnicka;
  83. maxvreme-=pesnicka.min;
  84. n++;
  85.  
  86. }
  87. }
  88. }
  89.  
  90. void pecatiPesniPoTip(tip kojtip){
  91. for(int i=0;i<n;i++)
  92. {
  93. if(kojtip==pesni[n].kojtip)
  94. pesni[n].pecati();
  95. }
  96. }
  97. friend class Pesna;
  98. ~CD(){};
  99. };
  100.  
  101.  
  102. int main() {
  103. // se testira zadacata modularno
  104. int testCase;
  105. cin >> testCase;
  106.  
  107. int n, minuti, kojtip;
  108. char ime[50];
  109.  
  110. if(testCase == 1) {
  111. cout << "===== Testiranje na klasata Pesna ======" << endl;
  112. cin >> ime;
  113. cin >> minuti;
  114. cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
  115. Pesna p(ime,minuti,(tip)kojtip);
  116. p.pecati();
  117. } else if(testCase == 2) {
  118. cout << "===== Testiranje na 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<n; i++)
  129. (omileno.getPesna(i)).pecati();
  130. }
  131. else if(testCase == 3) {
  132. cout << "===== Testiranje na metodot dodadiPesna() 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. for (int i=0; i<omileno.getBroj(); i++)
  143. (omileno.getPesna(i)).pecati();
  144. }
  145. else if(testCase == 4) {
  146. cout << "===== Testiranje na metodot pecatiPesniPoTip() od klasata CD ======" << endl;
  147. CD omileno(20);
  148. cin>>n;
  149. for (int i=0;i<n;i++){
  150. cin >> ime;
  151. cin >> minuti;
  152. cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
  153. Pesna p(ime,minuti,(tip)kojtip);
  154. omileno.dodadiPesna(p);
  155. }
  156. cin>>kojtip;
  157. omileno.pecatiPesniPoTip((tip)kojtip);
  158.  
  159. }
  160. else if(testCase == 5) {
  161. cout << "===== Testiranje na metodot pecatiPesniPoTip() od klasata CD ======" << endl;
  162. CD omileno(20);
  163. cin>>n;
  164. for (int i=0;i<n;i++){
  165. cin >> ime;
  166. cin >> minuti;
  167. cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
  168. Pesna p(ime,minuti,(tip)kojtip);
  169. omileno.dodadiPesna(p);
  170. }
  171. cin>>kojtip;
  172. omileno.pecatiPesniPoTip((tip)kojtip);
  173.  
  174. }
  175.  
  176. return 0;
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement