Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- class Tim{
- char ime[20];
- int broj_odigranih,broj_pobjeda,broj_nerijesenih,broj_poraza,broj_datih,broj_primljenih,broj_poena;
- public:
- Tim(const char ime[]):broj_odigranih(0),broj_pobjeda(0),broj_nerijesenih(0),broj_poraza(0),broj_datih(0),broj_primljenih(0),broj_poena(0){
- strcpy(Tim::ime,ime);
- };
- void ObradiUtakmicu(int broj_datih, int broj_primljenih);
- const char *DajImeTima() const{ return ime; }
- int DajBrojPoena() const{ return broj_poena; }
- int DajGolRazliku() const{ return abs(broj_datih-broj_primljenih); }
- void IspisiPodatke() const;
- };
- void Tim::ObradiUtakmicu(int broj_datih,int broj_primljenih){
- broj_odigranih++;
- if(broj_datih>broj_primljenih) {
- broj_poena+=3;
- broj_pobjeda+=1;
- Tim::broj_datih+=broj_datih;
- Tim::broj_primljenih+=broj_primljenih;
- }
- else if(broj_datih==broj_primljenih) {
- broj_nerijesenih++;
- broj_poena+=1;
- Tim::broj_datih+=broj_datih;
- Tim::broj_primljenih+=broj_primljenih;
- }
- else if(broj_primljenih>broj_datih){
- broj_poraza++;
- Tim::broj_datih+=broj_datih;
- Tim::broj_primljenih+=broj_primljenih;
- }
- }
- void Tim::IspisiPodatke() const {
- cout<<endl<<DajImeTima()<<setw(20)<<broj_odigranih<<setw(4)<<broj_pobjeda<<setw(4)<<broj_nerijesenih<<setw(4)<<broj_poraza<<setw(4)
- <<broj_datih<<setw(4)<<broj_primljenih<<setw(4)<<broj_poena;
- }
- class Liga{
- const int max_br_timova;
- int broj_timova;
- Tim **timovi;
- static bool VeciGolRazlike(Tim *tim1, Tim *tim2){
- return tim1->DajGolRazliku()>tim2->DajGolRazliku();
- }
- public:
- explicit Liga(int velicina_lige): timovi(new Tim*[velicina_lige]),max_br_timova(velicina_lige){} ;
- ~Liga();
- void DodajNoviTim(Tim *tim1);
- void RegistrirajUtakmicu(const char tim1[], const char tim2[], int rezultat1, int rezultat2);
- void IspisiTabelu();
- };
- Liga::~Liga(){
- for(int i=0; i<broj_timova; i++) delete timovi[i];
- delete[] timovi;
- }
- void Liga::DodajNoviTim(Tim *tim1){
- if(broj_timova>max_br_timova) throw "Previse timova!";
- timovi[broj_timova++]=tim1;
- }
- void Liga::RegistrirajUtakmicu(const char tim1[], const char tim2[], int rezultat1, int rezultat2){
- for(int i=0; i<broj_timova; i++){
- if(!strcmp(timovi[i]->DajImeTima(),tim1)) timovi[i]->ObradiUtakmicu(rezultat1,rezultat2);
- if(!strcmp(timovi[i]->DajImeTima(),tim2)) timovi[i]->ObradiUtakmicu(rezultat2,rezultat1);
- }
- }
- void Liga::IspisiTabelu(){
- sort(&timovi[0],&timovi[broj_timova],VeciGolRazlike);
- for(int i=0; i<broj_timova; i++){
- timovi[i]->IspisiPodatke();
- }
- }
- int main()
- {
- Liga liga1(6);
- Tim tim1("Sarajevo"),tim2("Velez"),tim3("Zeljeznicar"),tim4("Celik"),tim5("Jedinstvo"),tim6("Sloboda");
- liga1.DodajNoviTim(&tim1);
- liga1.DodajNoviTim(&tim2);
- liga1.DodajNoviTim(&tim3);
- liga1.DodajNoviTim(&tim4);
- liga1.DodajNoviTim(&tim5);
- liga1.DodajNoviTim(&tim6);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement