kristina7

Ракомет

Apr 22nd, 2016
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.47 KB | None | 0 0
  1. /*Да се имплементира класа TimRakomet во која се чуваат податоци за:
  2.  
  3. име на тимот (низа од максимум 30 знаци),
  4. просек на постигнати голови (децимален број).
  5. Од класата TimRakomet да се изведат класите Klub и Reprezentacija. За секој клуб дополнително се чуваат податоци за бројот на титули што ги има освоено (цел број), а за секоја репрезентација низа од 3 цели броја во која се чуваат местата во конечната ранг листа на европско, светско првенство и олимпијада по наведениот редослед. Ако репрезентацијата не учествувала на некое од првенствата, вредноста на соодветниот елемент е нула. (10 поени).
  6.  
  7. Да се имплементираат потребните конструктори, set и get методи (10 поени).
  8.  
  9. Дополнително, да се имплементира метод dostignuvanje, што го пресметува достигнувањето на тимот на следниот начин: (15 поени)
  10.  
  11. За клуб се пресметува како се пресметува како збир од просекот на постигнати голови помножен со 5 и бројот на титули помножен со 50
  12. За репрезентација - како збир од од просекот на постигнати голови помножен со 5 и 60/40/20 ако репрезентацијата освоила едно од првите три места на европско п./светско п./олимпијада. (пр. просек = 30.0, место = {2,0,0}, резултат = 30 * 5 + 40 = 190)
  13. Да се дефинира метод najdobar што на влез прима низа од покажувачи кон тимови и нивниот број и го печати името и достигнувањето на најдобриот тим (тимот со најголемо достигнување) (15 поени).*/
  14.  
  15. #include<iostream>
  16. #include<cstring>
  17. using namespace std;
  18.  
  19. class TimRakomet
  20. {
  21. protected:
  22.     char ime[30];
  23.     float prosek;
  24. public:
  25.     TimRakomet(char ime[30]="", float prosek=0.0)
  26.     {
  27.         strcpy(this->ime,ime);
  28.         this->prosek=prosek;
  29.     }
  30.     char *getIme(){return this->ime;}
  31.     virtual float dostignuvanje(){return 0;}
  32. };
  33. class Klub: public TimRakomet
  34. {
  35. private:
  36.     int tituli;
  37. public:
  38.     Klub(char ime[30]="", float prosek=0.0, int tituli=0):TimRakomet(ime, prosek)
  39.     {
  40.         this->tituli=tituli;
  41.     }
  42.     float dostignuvanje()
  43.     {
  44.         return (prosek*5)+(tituli*50);
  45.     }
  46. };
  47. class Reprezentacija: public TimRakomet
  48. {
  49. private:
  50.     int rang[3];
  51. public:
  52.     Reprezentacija(char ime[30]="", float prosek=0.0, int rang[3]=NULL):TimRakomet(ime,prosek)
  53.     {
  54.         for(int i=0;i<3;i++)
  55.         {
  56.             this->rang[i]=rang[i];
  57.         }
  58.     }
  59.     float dostignuvanje()
  60.     {
  61.         float suma=0.0;
  62.         for(int i=0;i<3;i++)
  63.         {
  64.             if(rang[i]== 1)   suma+=60;
  65.             else if(rang[i]==2)  suma+=40;
  66.             else if(rang[i]==3) suma+=20;
  67.         }
  68.         return (prosek*5)+suma;
  69.     }
  70. };
  71. void najdobar(TimRakomet **timovi, int n)
  72. {
  73.     float maxi=0.0;
  74.     int maxIndex;
  75.     for(int i=0;i<n;i++)
  76.     {
  77.         if(timovi[i]->dostignuvanje() > maxi)
  78.         {
  79.             maxi=timovi[i]->dostignuvanje();
  80.             maxIndex=i;
  81.         }
  82.     }
  83.     cout<<timovi[maxIndex]->getIme()<<endl;
  84.     cout<<timovi[maxIndex]->dostignuvanje();
  85. }
  86. int main()
  87. {
  88.     int n;
  89.     cin >> n;
  90.     TimRakomet** timovi = new TimRakomet*[n];
  91.     for(int i = 0; i < n; ++i) {
  92.         char ime[30];
  93.         float prosekGolovi;
  94.         cin >> ime >> prosekGolovi;
  95.         if(i % 2) {
  96.             int tituli;
  97.             cin >> tituli;
  98.             timovi[i] = new Klub(ime, prosekGolovi, tituli);
  99.         } else {
  100.             int rank[] = {0, 0, 0};
  101.             cin >> rank[0] >> rank[1] >> rank[2];
  102.             timovi[i] = new Reprezentacija(ime, prosekGolovi, rank);
  103.         }
  104.     }
  105.     najdobar(timovi, n);
  106.     for(int i = 0; i < n; ++i) {
  107.         delete timovi[i];
  108.     }
  109.     delete [] timovi;
  110.     return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment