SlavkovB

Танцов клуб OOP Exercises

Jun 13th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.78 KB | None | 0 0
  1. Танцов клуб Problem 2 (0 / 0)
  2. (60 поени)
  3.  
  4. Да се креира класа Clen во која се чуваат податоци за име (низа од максимум 50 знаци), презиме (низа од максимум 50 знаци) и степен во клубот (цел број) (5 поени). За оваа класа да се преоптоварат:
  5.  
  6. Оператор ++ (prefix и postfix нотација) – за инкрементирање на степенот во клубот (10 поени)
  7. Оператор << - за печатење на сите податоци за членот во формат: Ime Prezime, stepen. (5 поени)
  8. Оператор != - за споредба на два члена според нивниот степен (5 поени)
  9. Потоа да се креира класа Klub во која се чува име на клубот (низа од максимум 100 знаци), динамички алоцирана низа од објекти од класата Clen, како и број на елементи во низата (цел број) (5 поени). За класата да се обезбедат:
  10.  
  11. Оператор += – за додавање на нов член во низата со членови (10 поени)
  12. Оператор << - за печатење на името на клубот и сите негови членови во посебен ред (5 поени)
  13. Функција со потпис: Klub& novKlub(Clen &c). Со оваа функција се креира нов клуб кој ги содржи сите членови кои имаат ист степен во клубот со членот c кој е предаден како аргумент на функцијата и притоа степенот на сите членови се зголемува за едно ниво погоре (10 поени).
  14. Да се имплементираат сите дополнителни методи што се повикуваат за програмата да биде валидна. (5 поени)
  15.  
  16. Sample input
  17. Dance
  18. 5
  19. Aleks Aleksov 1
  20. Marko Markov 2
  21. Stefan Stefanov 1
  22. Kiro Kirov 3
  23. Mirce Mircev 2
  24.  
  25. Sample output
  26. Dance
  27. Marko Markov, 3
  28. Mirce Mircev, 3
  29.  
  30. //CODE//
  31.  
  32.  
  33. #include<iostream>
  34. #include<cstring>
  35. using namespace std;
  36.  
  37. class Clen{
  38.  
  39.     char ime[50];
  40.     char prezime[50];
  41.     int stepen;
  42. public:
  43.     Clen(const char *ime = " ", const char *prezime = " ", int stepen = 0){
  44.     strcpy(this -> ime, ime);
  45.     strcpy(this -> prezime, prezime);
  46.     this -> stepen = stepen;}
  47.     Clen &operator++(){
  48.     stepen++;
  49.     return * this;}
  50.     int getStepen(){return this -> stepen;}
  51.     Clen operator++(int){
  52.     Clen c(*this);
  53.     c.stepen++;
  54.     return c;
  55.     }
  56.     friend ostream& operator<<(ostream &out, Clen &c){
  57.     return out<<c.ime<<" "<<c.prezime<<", "<<c.stepen<<endl;}
  58.     bool operator!=(Clen &c1){
  59.     return stepen != c1.stepen;}
  60. };
  61. class Klub{
  62.  
  63.     char ime[100];
  64.     Clen *clenovi;
  65.     int broj;
  66.     public:
  67.     Klub(const char *ime = " ",Clen *clenovi = 0, int broj = 0){
  68.     strcpy(this -> ime, ime);
  69.     this -> broj = broj;
  70.     this -> clenovi = new Clen[broj];
  71.         for(int i = 0; i < broj; i++){
  72.         this -> clenovi[i] = clenovi[i];}}
  73.  
  74.     Klub(const Klub &k){
  75.      strcpy(this -> ime, k.ime);
  76.     this -> broj = k.broj;
  77.     this -> clenovi = new Clen[k.broj];
  78.         for(int i = 0; i < k.broj; i++){
  79.         this -> clenovi[i] = k.clenovi[i];}
  80.     }
  81.    
  82.     Klub &operator=(const Klub &k){
  83.    strcpy(this -> ime, k.ime);
  84.     this -> broj = k.broj;
  85.         delete [] clenovi;
  86.      this -> clenovi = new Clen[k.broj];
  87.         for(int i = 0; i < k.broj; i++){
  88.         this -> clenovi[i] = k.clenovi[i];}
  89.     return *this;
  90.     }
  91.     friend ostream& operator<<(ostream &out, Klub &k){
  92.     out<<k.ime<<endl;
  93.         for(int i = 0; i < k.broj; i++){
  94.         out<<k.clenovi[i];}
  95.     return out;
  96.     }
  97.    
  98.     Klub &operator+=(const Clen &c){
  99.     Clen *tmp = new Clen[broj + 1];
  100.         for(int i = 0; i < broj; i++ ){
  101.         tmp[i] = clenovi[i];
  102.         }
  103.        tmp[broj] = c;
  104.         broj++;
  105.         delete [] clenovi;
  106.         clenovi = tmp;
  107.         return * this;
  108.     }
  109.     ~Klub(){delete [] clenovi;}
  110. Klub novKlub(Clen &c){
  111. Klub tmp(ime);
  112.     for(int i = 0; i < broj; i++){
  113.         if(!(clenovi[i] != c))
  114.     tmp += clenovi[i]++;
  115.     }
  116. return tmp;
  117. }
  118. };
  119.  
  120. int main()
  121. {
  122.     Clen clen;
  123.     int n, stepen;
  124.     char ime[30], prezime[30];
  125.     cin >> ime >> n;
  126.     Klub k1(ime);
  127.     for(int i = 0; i < n; i++){
  128.         cin >> ime >> prezime >> stepen;
  129.         Clen c(ime, prezime, stepen);
  130.         k1 += c;
  131.         clen = c;
  132.     }  
  133.     Klub k2 = k1.novKlub(clen);
  134.     cout << k2;
  135.     return 0;
  136. }
Add Comment
Please, Sign In to add comment