Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- // vashiot kod ovde
- class FudbalskaEkipa{
- protected:
- char imeTrener[100];
- int golovi[10];
- public:
- FudbalskaEkipa(){}
- FudbalskaEkipa(const char *imeTrener, int *golovi){
- strcpy(this->imeTrener, imeTrener);
- for(int i=0;i<10;i++)
- {
- this->golovi[i] = golovi[i];
- }
- }
- FudbalskaEkipa &operator+=(int gol){
- int tmp[10];
- for(int i=1;i<10;i++)
- golovi[i-1] = golovi[i];
- golovi[9] = gol;
- return *this;
- }
- virtual int uspeh()=0;
- virtual ~FudbalskaEkipa(){}
- char *getTrener(){
- return imeTrener;
- }
- virtual char *getIme()=0;
- };
- class Klub : public FudbalskaEkipa{
- private:
- char *ime;
- int tituli;
- public:
- Klub(){}
- Klub(char *imeTrener, int *golovi, char *ime, int tituli):FudbalskaEkipa(imeTrener,golovi){
- this->ime = new char [strlen(ime)];
- strcpy(this->ime, ime);
- this->tituli = tituli;
- }
- ~Klub(){
- delete [] ime;
- }
- int uspeh(){
- int i, sum = 0;
- for(i=0;i<10;i++)
- {
- sum += golovi[i];
- }
- sum *= 3;
- sum += (tituli*1000);
- return sum;
- }
- char *getIme(){
- return ime;
- }
- bool operator>(Klub &k){
- if(uspeh() > k.uspeh())
- return true;
- else return false;
- }
- };
- class Reprezentacija : public FudbalskaEkipa{
- private:
- char *ime;
- int brNastapi;
- public:
- Reprezentacija(){}
- Reprezentacija(char *imeTrener, int *golovi, char *ime, int brNastapi):FudbalskaEkipa(imeTrener, golovi){
- this->ime = new char (strlen(ime));
- strcpy(this->ime, ime);
- this->brNastapi = brNastapi;
- }
- ~Reprezentacija(){
- delete [] ime;
- }
- int uspeh(){
- int i, sum = 0;
- for(int i=0;i<10;i++)
- {
- sum += golovi[i];
- }
- sum *= 3;
- sum += (brNastapi*50);
- return sum;
- }
- char *getIme(){
- return ime;
- }
- bool operator>(Reprezentacija &r){
- if(uspeh() > r.uspeh())
- return true;
- else return false;
- }
- };
- ostream &operator<<(ostream &out, FudbalskaEkipa &e){
- FudbalskaEkipa *tmp = &e;
- out << tmp->getIme() <<"\n"<<tmp->getTrener()<<"\n"<<tmp->uspeh()<< endl;
- return out;
- }
- void najdobarTrener(FudbalskaEkipa **niza,int n){
- int max=0;
- for(int i=0;i<n;i++)
- {
- if(niza[i]->uspeh() > niza[max]->uspeh())
- max = i;
- }
- cout << *niza[max];
- }
- int main() {
- int n;
- cin >> n;
- FudbalskaEkipa **ekipi = new FudbalskaEkipa*[n];
- char coach[100];
- int goals[10];
- char x[100];
- int tg;
- for (int i = 0; i < n; ++i) {
- int type;
- cin >> type;
- cin.getline(coach, 100);
- cin.getline(coach, 100);
- for (int j = 0; j < 10; ++j) {
- cin >> goals[j];
- }
- cin.getline(x, 100);
- cin.getline(x, 100);
- cin >> tg;
- if (type == 0) {
- ekipi[i] = new Klub(coach, goals, x, tg);
- } else if (type == 1) {
- ekipi[i] = new Reprezentacija(coach, goals, x, tg);
- }
- }
- cout << "===== SITE EKIPI =====" << endl;
- for (int i = 0; i < n; ++i) {
- cout << *ekipi[i];
- }
- cout << "===== DODADI GOLOVI =====" << endl;
- for (int i = 0; i < n; ++i) {
- int p;
- cin >> p;
- cout << "dodavam golovi: " << p << endl;
- *ekipi[i] += p;
- }
- cout << "===== SITE EKIPI =====" << endl;
- for (int i = 0; i < n; ++i) {
- cout << *ekipi[i];
- }
- cout << "===== NAJDOBAR TRENER =====" << endl;
- najdobarTrener(ekipi, n);
- for (int i = 0; i < n; ++i) {
- delete ekipi[i];
- }
- delete [] ekipi;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement