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 imeNaTrenerot[100];
- int brojGolovi[10];
- public:
- FudbalskaEkipa(){}
- FudbalskaEkipa(char *imeNaTrenerot,int *brojGolovi){
- strcpy(this->imeNaTrenerot,imeNaTrenerot);
- for(int i = 0;i < 10;i++){
- this->brojGolovi[i] = brojGolovi[i];
- }
- }
- virtual int uspeh() = 0;
- friend ostream &operator << (ostream &out,FudbalskaEkipa &fe){
- out<<fe.getIme()<<endl;
- out<<fe.imeNaTrenerot<<endl;
- out<<fe.uspeh()<<endl;
- return out;
- }
- virtual ~FudbalskaEkipa(){}
- FudbalskaEkipa &operator += (const int golovi){
- int *tmp = new int[10];
- int j = 0;
- for(int i = 1;i < 10;i++){
- tmp[j] = brojGolovi[i];
- j++;
- }
- tmp[j++] = golovi;
- for(int i = 0;i < 10;i++){
- brojGolovi[i] = tmp[i];
- }
- delete [] tmp;
- return *this;
- }
- virtual char *getIme() = 0;
- };
- class Klub:public FudbalskaEkipa{
- private:
- char imeNaKlub[50];
- int brojTituli;
- public:
- Klub(){
- strcpy(imeNaTrenerot,"");
- for(int i = 0;i < 10;i++)
- brojGolovi[i] = 0;
- strcpy(imeNaKlub,"");
- brojTituli = 0;
- }
- Klub(char *imeNaTrenerot,int *brojGolovi,char *imeNaKlub
- ,int brojTituli):FudbalskaEkipa(imeNaTrenerot,brojGolovi){
- strcpy(this->imeNaKlub,imeNaKlub);
- this->brojTituli = brojTituli;
- }
- Klub(const Klub &k):FudbalskaEkipa(k){
- strcpy(imeNaKlub,k.imeNaKlub);
- brojTituli = k.brojTituli;
- }
- friend ostream &operator << (ostream &out,Klub &k){
- out<<k.imeNaKlub<<endl;
- out<<k.imeNaTrenerot<<endl;
- out<<k.Klub::uspeh()<<endl;
- return out;
- }
- int uspeh(){
- int suma = 0;
- for(int i = 0;i < 10;i++){
- suma += brojGolovi[i];
- }
- return (suma * 3) + (brojTituli * 1000);
- }
- bool operator > (Klub &k){
- return uspeh() > k.uspeh();
- }
- Klub &operator += (const int golovi){
- int *tmp = new int[10];
- int j = 0;
- for(int i = 1;i < 10;i++){
- tmp[j] = brojGolovi[i];
- j++;
- }
- tmp[j++] = golovi;
- for(int i = 0;i < 10;i++){
- brojGolovi[i] = tmp[i];
- }
- delete [] tmp;
- return *this;
- }
- char *getIme(){
- return imeNaKlub;
- }
- };
- class Reprezentacija:public FudbalskaEkipa{
- private:
- char imeNaReprezentacija[50];
- int brojNastapi;
- public:
- Reprezentacija(){
- strcpy(imeNaTrenerot,"");
- for(int i = 0;i < 10;i++)
- brojGolovi[i] = 0;
- strcpy(imeNaReprezentacija,"");
- brojNastapi = 0;
- }
- Reprezentacija(char *imeNaTrenerot,int *brojGolovi,char *imeNaReprezentacija,
- int brojNastapi):FudbalskaEkipa(imeNaTrenerot,brojGolovi){
- strcpy(this->imeNaReprezentacija,imeNaReprezentacija);
- this->brojNastapi = brojNastapi;
- }
- friend ostream &operator << (ostream &out,Reprezentacija &r){
- out<<r.imeNaReprezentacija<<endl;
- out<<r.imeNaTrenerot;
- out<<r.Reprezentacija::uspeh()<<endl;
- return out;
- }
- int uspeh(){
- int suma = 0;
- for(int i = 0;i < 10;i++){
- suma += brojGolovi[i];
- }
- return (suma * 3) + (brojNastapi * 50);
- }
- bool operator > (Reprezentacija &r){
- return uspeh() > r.uspeh();
- }
- Reprezentacija &operator += (int golovi){
- int *tmp = new int[10];
- int j = 0;
- for(int i = 1;i < 10;i++){
- tmp[j] = brojGolovi[i];
- j++;
- }
- tmp[j++] = golovi;
- for(int i = 0;i < 10;i++){
- brojGolovi[i] = tmp[i];
- }
- delete [] tmp;
- return *this;
- }
- char *getIme(){
- return imeNaReprezentacija;
- }
- };
- void najdobarTrener(FudbalskaEkipa **ekipi,int brojEkipi){
- int max = ekipi[0]->uspeh();
- int ind = 0;
- for(int i = 1;i < brojEkipi;i++){
- if(ekipi[i]->uspeh() > max){
- max = ekipi[i]->uspeh();
- ind = i;
- }
- }
- cout<<*ekipi[ind];
- }
- 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