Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.90 KB | None | 0 0
  1. Танцов клуб Problem 2 (1 / 1)
  2. (60 поени)
  3.  
  4. Да се креира класа Clen во која се чуваат податоци за име (низа од максимум 50 знаци), презиме (низа од максимум 50 знаци) и степен во клубот (цел број) (5 поени). За оваа класа да се преоптоварат:
  5.  
  6. Оператор ++ (prefix и postfix нотација) – за инкрементирање на степенот во клубот (10 поени)
  7. Оператор << - за печатење на сите податоци за членот во формат: Ime Prezime, stepen. (5 поени)
  8. Оператор != - за споредба на два члена според нивниот степен (5 поени)
  9. Потоа да се креира класа Klub во која се чува име на клубот (низа од максимум 100 знаци), динамички алоцирана низа од објекти од класата Clen, како и број на елементи во низата (цел број) (5 поени). За класата да се обезбедат:
  10.  
  11. Оператор += – за додавање на нов член во низата со членови (10 поени)
  12. Оператор << - за печатење на името на клубот и сите негови членови во посебен ред (5 поени)
  13. Функција со потпис: Klub& novKlub(Clen &c). Со оваа функција се креира нов клуб кој ги содржи сите членови кои имаат ист степен во клубот со членот c кој е предаден како аргумент на функцијата и притоа степенот на сите членови се зголемува за едно ниво погоре (10 поени).
  14. Да се имплементираат сите дополнителни методи што се повикуваат за програмата да биде валидна. (5 поени)
  15.  
  16.  
  17. #include<iostream>
  18. #include<cstring>
  19. using namespace std;
  20.  
  21. class Clen {
  22. private:
  23. char ime[50];
  24. char prezime[50];
  25. int stepen;
  26. public:
  27. Clen () {}
  28.  
  29. Clen (char *ime, char *prezime, int stepen)
  30. {
  31. strcpy(this->ime,ime);
  32. strcpy(this->prezime,prezime);
  33. this->stepen = stepen;
  34. }
  35.  
  36. Clen &operator= (const Clen &c)
  37. {
  38. if (this != &c)
  39. {
  40. strcpy(this->ime,c.ime);
  41. strcpy(this->prezime,c.prezime);
  42. this->stepen = c.stepen;
  43. }
  44. return *this;
  45. }
  46.  
  47. Clen &operator++ ()
  48. {
  49. stepen++;
  50. return *this;
  51. }
  52.  
  53. Clen &operator++ (int)
  54. {
  55. Clen c(*this);
  56. stepen++;
  57. return c;
  58. }
  59.  
  60. friend ostream &operator<< (ostream &o,const Clen &c)
  61. {
  62. o<<c.ime<<" "<<c.prezime<<", "<<c.stepen<<endl;
  63. return o;
  64. }
  65.  
  66. bool operator != (const Clen &c)
  67. {
  68. if (stepen != c.stepen)
  69. return true;
  70. else
  71. return false;
  72. }
  73.  
  74. };
  75.  
  76. class Klub {
  77. private:
  78. char imeKlub[100];
  79. Clen *c;
  80. int broj;
  81. public:
  82. Klub (char *imeKlub)
  83. {
  84. strcpy(this->imeKlub,imeKlub);
  85. this->c = NULL;
  86. this->broj = 0;
  87. }
  88.  
  89. Klub &operator= (const Klub &k)
  90. {
  91. if (this != &k)
  92. {
  93. delete [] c;
  94. this->c = new Clen [broj];
  95. for (int i=0;i<broj;i++)
  96. {
  97. this->c[i] = k.c[i];
  98. }
  99. broj = k.broj;
  100. strcpy(imeKlub,k.imeKlub);
  101. }
  102.  
  103. return *this;
  104.  
  105. }
  106.  
  107. Klub &operator+= (Clen clen)
  108. {
  109. Clen *tmp = new Clen [broj+1];
  110. for (int i=0;i<broj;i++)
  111. {
  112. tmp[i] = c[i];
  113. }
  114. tmp[broj++] = clen;
  115. delete [] c;
  116. c = tmp;
  117. return *this;
  118. }
  119.  
  120.  
  121. friend ostream &operator<< (ostream &o,const Klub &k)
  122. {
  123. o<<k.imeKlub<<endl;
  124. for (int i=0;i<k.broj;i++)
  125. o<<k.c[i];
  126. return o;
  127. }
  128.  
  129. Klub &novKlub (Clen &cl)
  130. {
  131. Klub nov(imeKlub);
  132. for (int i=0;i<broj;i++)
  133. {
  134. if ((c[i] != cl)==0)
  135. {
  136. c[i]++;
  137. nov += c[i];
  138. }
  139.  
  140. }
  141.  
  142. return nov;
  143. }
  144. };
  145.  
  146.  
  147. int main()
  148. {
  149. Clen clen;
  150. int n, stepen;
  151. char ime[30], prezime[30];
  152. cin >> ime >> n;
  153. Klub k1(ime);
  154. for(int i = 0; i < n; i++){
  155. cin >> ime >> prezime >> stepen;
  156. Clen c(ime, prezime, stepen);
  157. k1 += c;
  158. clen = c;
  159. }
  160. Klub k2 = k1.novKlub(clen);
  161. cout << k2;
  162. return 0;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement