Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Да се имплементира класа TimRakomet во која се чуваат податоци за:
- име на тимот (низа од максимум 30 знаци),
- просек на постигнати голови (децимален број).
- Од класата TimRakomet да се изведат класите Klub и Reprezentacija. За секој клуб дополнително се чуваат податоци за бројот на титули што ги има освоено (цел број), а за секоја репрезентација низа од 3 цели броја во која се чуваат местата во конечната ранг листа на европско, светско првенство и олимпијада по наведениот редослед. Ако репрезентацијата не учествувала на некое од првенствата, вредноста на соодветниот елемент е нула. (10 поени).
- Да се имплементираат потребните конструктори, set и get методи (10 поени).
- Дополнително, да се имплементира метод dostignuvanje, што го пресметува достигнувањето на тимот на следниот начин: (15 поени)
- За клуб се пресметува како се пресметува како збир од просекот на постигнати голови помножен со 5 и бројот на титули помножен со 50
- За репрезентација - како збир од од просекот на постигнати голови помножен со 5 и 60/40/20 ако репрезентацијата освоила едно од првите три места на европско п./светско п./олимпијада. (пр. просек = 30.0, место = {2,0,0}, резултат = 30 * 5 + 40 = 190)
- Да се дефинира метод najdobar што на влез прима низа од покажувачи кон тимови и нивниот број и го печати името и достигнувањето на најдобриот тим (тимот со најголемо достигнување) (15 поени).*/
- #include<iostream>
- #include<cstring>
- using namespace std;
- class TimRakomet
- {
- protected:
- char ime[30];
- float prosek;
- public:
- TimRakomet(char ime[30]="", float prosek=0.0)
- {
- strcpy(this->ime,ime);
- this->prosek=prosek;
- }
- char *getIme(){return this->ime;}
- virtual float dostignuvanje(){return 0;}
- };
- class Klub: public TimRakomet
- {
- private:
- int tituli;
- public:
- Klub(char ime[30]="", float prosek=0.0, int tituli=0):TimRakomet(ime, prosek)
- {
- this->tituli=tituli;
- }
- float dostignuvanje()
- {
- return (prosek*5)+(tituli*50);
- }
- };
- class Reprezentacija: public TimRakomet
- {
- private:
- int rang[3];
- public:
- Reprezentacija(char ime[30]="", float prosek=0.0, int rang[3]=NULL):TimRakomet(ime,prosek)
- {
- for(int i=0;i<3;i++)
- {
- this->rang[i]=rang[i];
- }
- }
- float dostignuvanje()
- {
- float suma=0.0;
- for(int i=0;i<3;i++)
- {
- if(rang[i]== 1) suma+=60;
- else if(rang[i]==2) suma+=40;
- else if(rang[i]==3) suma+=20;
- }
- return (prosek*5)+suma;
- }
- };
- void najdobar(TimRakomet **timovi, int n)
- {
- float maxi=0.0;
- int maxIndex;
- for(int i=0;i<n;i++)
- {
- if(timovi[i]->dostignuvanje() > maxi)
- {
- maxi=timovi[i]->dostignuvanje();
- maxIndex=i;
- }
- }
- cout<<timovi[maxIndex]->getIme()<<endl;
- cout<<timovi[maxIndex]->dostignuvanje();
- }
- int main()
- {
- int n;
- cin >> n;
- TimRakomet** timovi = new TimRakomet*[n];
- for(int i = 0; i < n; ++i) {
- char ime[30];
- float prosekGolovi;
- cin >> ime >> prosekGolovi;
- if(i % 2) {
- int tituli;
- cin >> tituli;
- timovi[i] = new Klub(ime, prosekGolovi, tituli);
- } else {
- int rank[] = {0, 0, 0};
- cin >> rank[0] >> rank[1] >> rank[2];
- timovi[i] = new Reprezentacija(ime, prosekGolovi, rank);
- }
- }
- najdobar(timovi, n);
- for(int i = 0; i < n; ++i) {
- delete timovi[i];
- }
- delete [] timovi;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment