Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.62 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. // vashiot kod ovde
  6. class FudbalskaEkipa{
  7. protected:
  8. char imeNaTrenerot[100];
  9. int brojGolovi[10];
  10. public:
  11. FudbalskaEkipa(){}
  12. FudbalskaEkipa(char *imeNaTrenerot,int *brojGolovi){
  13. strcpy(this->imeNaTrenerot,imeNaTrenerot);
  14. for(int i = 0;i < 10;i++){
  15. this->brojGolovi[i] = brojGolovi[i];
  16. }
  17. }
  18. virtual int uspeh() = 0;
  19. friend ostream &operator << (ostream &out,FudbalskaEkipa &fe){
  20. out<<fe.getIme()<<endl;
  21. out<<fe.imeNaTrenerot<<endl;
  22. out<<fe.uspeh()<<endl;
  23. return out;
  24. }
  25. virtual ~FudbalskaEkipa(){}
  26. FudbalskaEkipa &operator += (const int golovi){
  27. int *tmp = new int[10];
  28. int j = 0;
  29. for(int i = 1;i < 10;i++){
  30. tmp[j] = brojGolovi[i];
  31. j++;
  32. }
  33. tmp[j++] = golovi;
  34. for(int i = 0;i < 10;i++){
  35. brojGolovi[i] = tmp[i];
  36. }
  37. delete [] tmp;
  38. return *this;
  39. }
  40. virtual char *getIme() = 0;
  41. };
  42. class Klub:public FudbalskaEkipa{
  43. private:
  44. char imeNaKlub[50];
  45. int brojTituli;
  46. public:
  47. Klub(){
  48. strcpy(imeNaTrenerot,"");
  49. for(int i = 0;i < 10;i++)
  50. brojGolovi[i] = 0;
  51. strcpy(imeNaKlub,"");
  52. brojTituli = 0;
  53. }
  54. Klub(char *imeNaTrenerot,int *brojGolovi,char *imeNaKlub
  55. ,int brojTituli):FudbalskaEkipa(imeNaTrenerot,brojGolovi){
  56. strcpy(this->imeNaKlub,imeNaKlub);
  57. this->brojTituli = brojTituli;
  58. }
  59. Klub(const Klub &k):FudbalskaEkipa(k){
  60. strcpy(imeNaKlub,k.imeNaKlub);
  61. brojTituli = k.brojTituli;
  62. }
  63. friend ostream &operator << (ostream &out,Klub &k){
  64. out<<k.imeNaKlub<<endl;
  65. out<<k.imeNaTrenerot<<endl;
  66. out<<k.Klub::uspeh()<<endl;
  67. return out;
  68. }
  69. int uspeh(){
  70. int suma = 0;
  71. for(int i = 0;i < 10;i++){
  72. suma += brojGolovi[i];
  73. }
  74. return (suma * 3) + (brojTituli * 1000);
  75. }
  76. bool operator > (Klub &k){
  77. return uspeh() > k.uspeh();
  78. }
  79. Klub &operator += (const int golovi){
  80. int *tmp = new int[10];
  81. int j = 0;
  82. for(int i = 1;i < 10;i++){
  83. tmp[j] = brojGolovi[i];
  84. j++;
  85. }
  86. tmp[j++] = golovi;
  87. for(int i = 0;i < 10;i++){
  88. brojGolovi[i] = tmp[i];
  89. }
  90. delete [] tmp;
  91. return *this;
  92. }
  93. char *getIme(){
  94. return imeNaKlub;
  95. }
  96. };
  97. class Reprezentacija:public FudbalskaEkipa{
  98. private:
  99. char imeNaReprezentacija[50];
  100. int brojNastapi;
  101. public:
  102. Reprezentacija(){
  103. strcpy(imeNaTrenerot,"");
  104. for(int i = 0;i < 10;i++)
  105. brojGolovi[i] = 0;
  106. strcpy(imeNaReprezentacija,"");
  107. brojNastapi = 0;
  108. }
  109. Reprezentacija(char *imeNaTrenerot,int *brojGolovi,char *imeNaReprezentacija,
  110. int brojNastapi):FudbalskaEkipa(imeNaTrenerot,brojGolovi){
  111. strcpy(this->imeNaReprezentacija,imeNaReprezentacija);
  112. this->brojNastapi = brojNastapi;
  113. }
  114. friend ostream &operator << (ostream &out,Reprezentacija &r){
  115. out<<r.imeNaReprezentacija<<endl;
  116. out<<r.imeNaTrenerot;
  117. out<<r.Reprezentacija::uspeh()<<endl;
  118. return out;
  119. }
  120. int uspeh(){
  121. int suma = 0;
  122. for(int i = 0;i < 10;i++){
  123. suma += brojGolovi[i];
  124. }
  125. return (suma * 3) + (brojNastapi * 50);
  126. }
  127. bool operator > (Reprezentacija &r){
  128. return uspeh() > r.uspeh();
  129. }
  130. Reprezentacija &operator += (int golovi){
  131. int *tmp = new int[10];
  132. int j = 0;
  133. for(int i = 1;i < 10;i++){
  134. tmp[j] = brojGolovi[i];
  135. j++;
  136. }
  137. tmp[j++] = golovi;
  138. for(int i = 0;i < 10;i++){
  139. brojGolovi[i] = tmp[i];
  140. }
  141. delete [] tmp;
  142. return *this;
  143. }
  144. char *getIme(){
  145. return imeNaReprezentacija;
  146. }
  147. };
  148. void najdobarTrener(FudbalskaEkipa **ekipi,int brojEkipi){
  149. int max = ekipi[0]->uspeh();
  150. int ind = 0;
  151. for(int i = 1;i < brojEkipi;i++){
  152. if(ekipi[i]->uspeh() > max){
  153. max = ekipi[i]->uspeh();
  154. ind = i;
  155. }
  156. }
  157. cout<<*ekipi[ind];
  158. }
  159. int main() {
  160. int n;
  161. cin >> n;
  162. FudbalskaEkipa **ekipi = new FudbalskaEkipa*[n];
  163. char coach[100];
  164. int goals[10];
  165. char x[100];
  166. int tg;
  167. for (int i = 0; i < n; ++i) {
  168. int type;
  169. cin >> type;
  170. cin.getline(coach, 100);
  171. cin.getline(coach, 100);
  172. for (int j = 0; j < 10; ++j) {
  173. cin >> goals[j];
  174. }
  175. cin.getline(x, 100);
  176. cin.getline(x, 100);
  177. cin >> tg;
  178. if (type == 0) {
  179. ekipi[i] = new Klub(coach, goals, x, tg);
  180. } else if (type == 1) {
  181. ekipi[i] = new Reprezentacija(coach, goals, x, tg);
  182. }
  183. }
  184. cout << "===== SITE EKIPI =====" << endl;
  185. for (int i = 0; i < n; ++i) {
  186. cout << *ekipi[i];
  187. }
  188. cout << "===== DODADI GOLOVI =====" << endl;
  189. for (int i = 0; i < n; ++i) {
  190. int p;
  191. cin >> p;
  192. cout << "dodavam golovi: " << p << endl;
  193. *ekipi[i] += p;
  194. }
  195. cout << "===== SITE EKIPI =====" << endl;
  196. for (int i = 0; i < n; ++i) {
  197. cout << *ekipi[i];
  198. }
  199. cout << "===== NAJDOBAR TRENER =====" << endl;
  200. najdobarTrener(ekipi, n);
  201. for (int i = 0; i < n; ++i) {
  202. delete ekipi[i];
  203. }
  204. delete [] ekipi;
  205. return 0;
  206. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement