SHARE
TWEET

Untitled

a guest Sep 19th, 2019 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top