Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Танцов клуб Problem 2 (0 / 0)
- (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 поени)
- Sample input
- Dance
- 5
- Aleks Aleksov 1
- Marko Markov 2
- Stefan Stefanov 1
- Kiro Kirov 3
- Mirce Mircev 2
- Sample output
- Dance
- Marko Markov, 3
- Mirce Mircev, 3
- //CODE//
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Clen{
- char ime[50];
- char prezime[50];
- int stepen;
- public:
- Clen(const char *ime = " ", const char *prezime = " ", int stepen = 0){
- strcpy(this -> ime, ime);
- strcpy(this -> prezime, prezime);
- this -> stepen = stepen;}
- Clen &operator++(){
- stepen++;
- return * this;}
- int getStepen(){return this -> stepen;}
- Clen operator++(int){
- Clen c(*this);
- c.stepen++;
- return c;
- }
- friend ostream& operator<<(ostream &out, Clen &c){
- return out<<c.ime<<" "<<c.prezime<<", "<<c.stepen<<endl;}
- bool operator!=(Clen &c1){
- return stepen != c1.stepen;}
- };
- class Klub{
- char ime[100];
- Clen *clenovi;
- int broj;
- public:
- Klub(const char *ime = " ",Clen *clenovi = 0, int broj = 0){
- strcpy(this -> ime, ime);
- this -> broj = broj;
- this -> clenovi = new Clen[broj];
- for(int i = 0; i < broj; i++){
- this -> clenovi[i] = clenovi[i];}}
- Klub(const Klub &k){
- strcpy(this -> ime, k.ime);
- this -> broj = k.broj;
- this -> clenovi = new Clen[k.broj];
- for(int i = 0; i < k.broj; i++){
- this -> clenovi[i] = k.clenovi[i];}
- }
- Klub &operator=(const Klub &k){
- strcpy(this -> ime, k.ime);
- this -> broj = k.broj;
- delete [] clenovi;
- this -> clenovi = new Clen[k.broj];
- for(int i = 0; i < k.broj; i++){
- this -> clenovi[i] = k.clenovi[i];}
- return *this;
- }
- friend ostream& operator<<(ostream &out, Klub &k){
- out<<k.ime<<endl;
- for(int i = 0; i < k.broj; i++){
- out<<k.clenovi[i];}
- return out;
- }
- Klub &operator+=(const Clen &c){
- Clen *tmp = new Clen[broj + 1];
- for(int i = 0; i < broj; i++ ){
- tmp[i] = clenovi[i];
- }
- tmp[broj] = c;
- broj++;
- delete [] clenovi;
- clenovi = tmp;
- return * this;
- }
- ~Klub(){delete [] clenovi;}
- Klub novKlub(Clen &c){
- Klub tmp(ime);
- for(int i = 0; i < broj; i++){
- if(!(clenovi[i] != c))
- tmp += clenovi[i]++;
- }
- return tmp;
- }
- };
- 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;
- }
Add Comment
Please, Sign In to add comment