Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Ракомет Problem 14 (0 / 0)
- Да се имплементира класа 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 поени).
- Sample input
- 5
- Makedonija 28.5
- 2 2 0
- Metalurg 31.3
- 5
- France 34.2
- 1 1 1
- Vardar 29.2
- 5
- Germany 28.1
- 0 0 1
- Sample output
- Metalurg
- 406.5
- */
- //CODE//
- class TimRakomet{
- protected:
- char ime[30];
- float golovi;
- public:
- TimRakomet(const char *ime = " ", float golovi = 0.0){
- strcpy(this -> ime, ime);
- this -> golovi = golovi;
- }
- virtual float dostignuvanje() = 0;
- virtual ~TimRakomet(){}
- char* getIme(){return this -> ime;}
- };
- class Klub: public TimRakomet{
- int tituli;
- public:
- Klub(const char *ime = " ", float golovi = 0.0, int tituli = 0) : TimRakomet(ime, golovi) {
- this -> tituli = tituli;}
- float dostignuvanje(){return (golovi * 5 + tituli * 50);}
- };
- class Reprezentacija: public TimRakomet{
- int rang[3];
- public:
- Reprezentacija(const char *ime = " ", float golovi = 0.0, int rang[] = NULL) : TimRakomet(ime, golovi) {
- 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 (golovi * 5) + suma;
- }
- };
- void najdobar(TimRakomet ** timovi, int n){
- int tmp = 0;
- int max = timovi[0] -> dostignuvanje();
- for(int i = 0; i < n; i++)
- {
- if(timovi[i] -> dostignuvanje() > max)
- {
- max = timovi[i] -> dostignuvanje();
- tmp = i;
- }
- }
- cout<<timovi[tmp] -> getIme()<<endl;
- cout<<timovi[tmp] -> 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;
- }
Add Comment
Please, Sign In to add comment