24.11.2.24011830. Napisati klasu “Tim“ koja predstavlja jedan tim u fudbalskom prvenstvu. Klasa “Tim“ treba posjedovati privatne atribute nazvane “ime”, “broj_odigranih”, “broj_pobjeda”, “broj_nerijesenih”, “broj_poraza”, “broj_datih”, “broj_primljenih“ i “broj_poena“ koji sadrže redom naziv tima (do 20 znakova), broj odigranih utakmica, broj pobjeda, broj neriješenih utakmica, broj poraza, ukupan broj datih i primljenih golova, kao i broj poena za razmatrani tim. Klasa treba da ima sljedeći interfejs:
Tim(const char ime[]);
void ObradiUtakmicu(int broj_datih, int broj_primljenih);
const char *ImeTima() const;
int BrojPoena() const;
int GolRazlika() const;
void IspisiPodatke() const;
Konstruktor treba da postavi ime tima na vrijednost zadanu parametrom, a sve ostale atribute klase na nulu. Metoda “ObradiUtakmicu“ treba da na osnovu rezultata utakmice koji joj se prenosi kao parametar (u vidu broja datih i primljenih golova sa posmatrane utakmice) ažurira ne samo atribute koje broje golove, nego i atribute koji broje odigrane utakmice, broj pobjeda, poraza i neriješenih utakmica, kao i broj bodova. Pri tome se za pobjedu dodjeljuju 3 boda, za neriješen rezultat 1 bod, a za poraz ništa. Metode “ImeTima”, “BrojPoena“ i “GolRazlika“ treba da vrate respektivno ime tima (preciznije, pokazivač na prvi znak imena), broj poena kao i gol razliku (tj. razliku između ukupnog broja datih i primljenih golova) za posmatrani tim (ove metode implementirati unutar deklaracije klase). Konačno, metoda “IspisiPodatke“ treba da ispiše na ekran sve podatke o timu u jednom redu, i to sljedećim redom: ime tima, broj utakmica, broj pobjeda, broj neriješenih utakmica, broj poraza, broj datih golova, broj primljenih golova i broj poena. Za ime tima zauzeti prostor od 20 znakova, a za sve brojne podatke prostor od 4 znaka na ekranu. Napisati i kratki testni program u kojem ćete demonstrirati napisanu klasu.
Napomena: Ovaj program ne treba prepisivati u svesku, jer je sljedeći program njegova nadogradnja!
Opis rješenja:
Listing programa:
#include <iostream>
#include <conio.h>
#include <cstring>
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[]){
strcpy(Tim::ime,ime);
broj_odigranih=broj_pobjeda=0;
broj_nerijesenih=broj_poraza=0;
broj_datih=broj_primljenih=broj_poena=0;
}
void ObradiUtakmicu(int broj_datih, int broj_primljenih);
const char *ImeTima() const{
return &ime[0];
}
int BrojPoena() const{
return broj_poena;
}
int GolRazlika() const{
return broj_datih-broj_primljenih;
}
void IspisiPodatke() const;
};
void Tim::ObradiUtakmicu(int broj_datih, int broj_primljenih){
broj_odigranih++;
if(broj_datih>broj_primljenih){
broj_pobjeda++;
broj_poena+=3;
}
else if(broj_datih<broj_primljenih)
broj_poraza++;
else{
broj_nerijesenih++;
broj_poena+=1;
}
Tim::broj_datih+=broj_datih;
Tim::broj_primljenih+=broj_primljenih;
}
void Tim::IspisiPodatke()const{
cout.width(20);cout<<ImeTima();
cout.width(4);cout<<broj_odigranih;
cout.width(4);cout<<broj_pobjeda;
cout.width(4);cout<<broj_nerijesenih;
cout.width(4);cout<<broj_poraza;
cout.width(4);cout<<broj_datih;
cout.width(4);cout<<broj_primljenih;
cout.width(4);cout<<BrojPoena();
}
int main(){
//Ovde testirati klasu...
getch();
return 0;
}
Ispis na ekranu:
Riješeni zadaci 2 Index
|
|