Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Танцов клуб Problem 2 (1 / 1)
- (60 поени)
- Да се креира класа Clen во која се чуваат податоци за име (низа од максимум 50 знаци), презиме (низа од максимум 50 знаци) и степен во клубот (цел број) (5 поени). За оваа класа да се преоптоварат:
- Оператор ++ (prefix и postfix нотација) – за инкрементирање на степенот во клубот (10 поени)
- Оператор << - за печатење на сите податоци за членот во формат: Ime Prezime, stepen. (5 поени)
- Оператор != - за споредба на два члена според нивниот степен (5 поени)
- Потоа да се креира класа Klub во која се чува име на клубот (низа од максимум 100 знаци), динамички алоцирана низа од објекти од класата Clen, како и број на елементи во низата (цел број) (5 поени). За класата да се обезбедат:
- Оператор += – за додавање на нов член во низата со членови (10 поени)
- Оператор << - за печатење на името на клубот и сите негови членови во посебен ред (5 поени)
- Функција со потпис: Klub& novKlub(Clen &c). Со оваа функција се креира нов клуб кој ги содржи сите членови кои имаат ист степен во клубот со членот c кој е предаден како аргумент на функцијата и притоа степенот на сите членови се зголемува за едно ниво погоре (10 поени).
- Да се имплементираат сите дополнителни методи што се повикуваат за програмата да биде валидна. (5 поени)
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Clen {
- private:
- char ime[50];
- char prezime[50];
- int stepen;
- public:
- Clen () {}
- Clen (char *ime, char *prezime, int stepen)
- {
- strcpy(this->ime,ime);
- strcpy(this->prezime,prezime);
- this->stepen = stepen;
- }
- Clen &operator= (const Clen &c)
- {
- if (this != &c)
- {
- strcpy(this->ime,c.ime);
- strcpy(this->prezime,c.prezime);
- this->stepen = c.stepen;
- }
- return *this;
- }
- Clen &operator++ ()
- {
- stepen++;
- return *this;
- }
- Clen &operator++ (int)
- {
- Clen c(*this);
- stepen++;
- return c;
- }
- friend ostream &operator<< (ostream &o,const Clen &c)
- {
- o<<c.ime<<" "<<c.prezime<<", "<<c.stepen<<endl;
- return o;
- }
- bool operator != (const Clen &c)
- {
- if (stepen != c.stepen)
- return true;
- else
- return false;
- }
- };
- class Klub {
- private:
- char imeKlub[100];
- Clen *c;
- int broj;
- public:
- Klub (char *imeKlub)
- {
- strcpy(this->imeKlub,imeKlub);
- this->c = NULL;
- this->broj = 0;
- }
- Klub &operator= (const Klub &k)
- {
- if (this != &k)
- {
- delete [] c;
- this->c = new Clen [broj];
- for (int i=0;i<broj;i++)
- {
- this->c[i] = k.c[i];
- }
- broj = k.broj;
- strcpy(imeKlub,k.imeKlub);
- }
- return *this;
- }
- Klub &operator+= (Clen clen)
- {
- Clen *tmp = new Clen [broj+1];
- for (int i=0;i<broj;i++)
- {
- tmp[i] = c[i];
- }
- tmp[broj++] = clen;
- delete [] c;
- c = tmp;
- return *this;
- }
- friend ostream &operator<< (ostream &o,const Klub &k)
- {
- o<<k.imeKlub<<endl;
- for (int i=0;i<k.broj;i++)
- o<<k.c[i];
- return o;
- }
- Klub &novKlub (Clen &cl)
- {
- Klub nov(imeKlub);
- for (int i=0;i<broj;i++)
- {
- if ((c[i] != cl)==0)
- {
- c[i]++;
- nov += c[i];
- }
- }
- return nov;
- }
- };
- int main()
- {
- Clen clen;
- int n, stepen;
- char ime[30], prezime[30];
- cin >> ime >> n;
- Klub k1(ime);
- for(int i = 0; i < n; i++){
- cin >> ime >> prezime >> stepen;
- Clen c(ime, prezime, stepen);
- k1 += c;
- clen = c;
- }
- Klub k2 = k1.novKlub(clen);
- cout << k2;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement