Advertisement
neogz

YT | 8| LD | Preklapanje operatora

Jan 8th, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.34 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Ucesnik{
  5.  
  6.     int _id;
  7.     char * _imePrezime;
  8.     char * _datumPrijave;
  9. public:
  10.     //konstruktor i destruktor funkcije
  11.     Ucesnik(int id = 0, char * imePrezime = "------", char * datumPrijave = "--/--/--"){
  12.         _id = id;
  13.  
  14.         int vel = strlen(imePrezime) + 1;
  15.         _imePrezime = new char[vel];
  16.         strcpy_s(_imePrezime, vel, imePrezime);
  17.  
  18.         vel = strlen(datumPrijave) + 1;
  19.         _datumPrijave = new char[vel];
  20.         strcpy_s(_datumPrijave, vel, datumPrijave);
  21.  
  22.     }
  23.     Ucesnik(Ucesnik & org){
  24.         _id = org._id;
  25.  
  26.         int vel = strlen(org._imePrezime) + 1;
  27.         _imePrezime = new char[vel];
  28.         strcpy_s(_imePrezime, vel, org._imePrezime);
  29.  
  30.         vel = strlen(org._datumPrijave) + 1;
  31.         _datumPrijave = new char[vel];
  32.         strcpy_s(_datumPrijave, vel, org._datumPrijave);
  33.     }
  34.     ~Ucesnik(){
  35.         delete[]_imePrezime;
  36.         delete[] _datumPrijave;
  37.         _imePrezime = _datumPrijave = nullptr;
  38.     }
  39.  
  40.     //ostale funkcije dodavati po potrebi zadatka
  41.     void ispis(){
  42.         cout << _id << " | " << _imePrezime << " | " << _datumPrijave << endl;
  43.     }
  44.     int getID()const{
  45.         return _id;
  46.     }
  47.     void set(Ucesnik & org){
  48.         _id = org._id;
  49.        
  50.         delete[]_imePrezime;
  51.         int vel = strlen(org._imePrezime) + 1;
  52.         _imePrezime = new char[vel];
  53.         strcpy_s(_imePrezime, vel, org._imePrezime);
  54.        
  55.         delete[]_datumPrijave;
  56.         vel = strlen(org._datumPrijave) + 1;
  57.         _datumPrijave = new char[vel];
  58.         strcpy_s(_datumPrijave, vel, org._datumPrijave);
  59.     }
  60.     ////////////////////////////////// preklapanje opratora /////////////////////////////////////
  61.     void operator = (const Ucesnik & u){
  62.         _id = u._id;
  63.  
  64.         delete[]_imePrezime;
  65.         int vel = strlen(u._imePrezime) + 1;
  66.         _imePrezime = new char[vel];
  67.         strcpy_s(_imePrezime, vel, u._imePrezime);
  68.  
  69.         delete[]_datumPrijave;
  70.         vel = strlen(u._datumPrijave) + 1;
  71.         _datumPrijave = new char[vel];
  72.         strcpy_s(_datumPrijave, vel, u._datumPrijave);
  73.     }
  74.     bool operator == (const Ucesnik & u){
  75.         if (_id == u._id && strcmp(_imePrezime, u._imePrezime) == 0 && strcmp(_datumPrijave, u._datumPrijave) == 0)
  76.             return true;
  77.         return false;
  78.     }
  79.     friend ostream & operator << (ostream & COUT, Ucesnik & u);
  80. };
  81. class Seminar {
  82.     char * _periodOdrzavanja;
  83.     char _mjestoOdrzavanja[50];
  84.     int _kotizacija;
  85.     int _brojPrijavljenih;
  86.     Ucesnik _prijavljenih[100];
  87. public:
  88.     Seminar(char * period = "----", char * mjesto = "----", int kot = 0){
  89.  
  90.         int vel = strlen(period) + 1;
  91.         _periodOdrzavanja = new char[vel];
  92.         strcpy_s(_periodOdrzavanja, vel, period);
  93.  
  94.         vel = strlen(mjesto) + 1;
  95.         strcpy_s(_mjestoOdrzavanja, vel, mjesto);
  96.  
  97.         _kotizacija = kot;
  98.         _brojPrijavljenih = 0;
  99.  
  100.     }
  101.     Seminar(Seminar & org){
  102.         int vel = strlen(org._periodOdrzavanja) + 1;
  103.         _periodOdrzavanja = new char[vel];
  104.         strcpy_s(_periodOdrzavanja, vel, org._periodOdrzavanja);
  105.  
  106.         vel = strlen(org._mjestoOdrzavanja) + 1;
  107.         strcpy_s(_mjestoOdrzavanja, vel, org._mjestoOdrzavanja);
  108.  
  109.         _kotizacija = org._kotizacija;
  110.         _brojPrijavljenih = org._brojPrijavljenih;
  111.  
  112.         for (int i = 0; i < _brojPrijavljenih; i++){
  113.             _prijavljenih[i] = org._prijavljenih[i];
  114.         }
  115.     }
  116.     void ispis(){
  117.         cout << "\nSEMINAR" << endl << "Period odrzavanja: " << _periodOdrzavanja << "\nMjesto odrzavanja: " << _mjestoOdrzavanja << endl;
  118.         cout << "Kotizacija: " << _kotizacija << endl;
  119.            
  120.         cout << "--------- Prijavljeni ucesnici --------- " << endl;
  121.         for (int i = 0; i < _brojPrijavljenih; i++) {
  122.             _prijavljenih[i].ispis();
  123.         }
  124.     }
  125.     void prijaviUcesnika(Ucesnik & u){
  126.         if (_brojPrijavljenih == 100) return;
  127.  
  128.         for (int i = 0; i < _brojPrijavljenih; i++)
  129.             if (u.getID() == _prijavljenih[i].getID()) return;
  130.  
  131.         _prijavljenih[_brojPrijavljenih++] = u;
  132.     }
  133.     Ucesnik & operator[](int v){
  134.         return _prijavljenih[v];
  135.     }
  136. };
  137.  
  138. ostream & operator << (ostream & COUT, Ucesnik & u){
  139.     COUT << u._id << " | " << u._imePrezime << " | " << u._datumPrijave << endl;
  140.     return COUT;
  141. }
  142.  
  143. int main(){
  144.  
  145.     Seminar s("10.04.2015", "Gorazde", 100);
  146.     Ucesnik u1(1, "Nedim Fejzic", "10.04.1995");
  147.     Ucesnik u2(2, "Saldina Nurak", "01.04.2015");
  148.  
  149.     Ucesnik u3;
  150.     u3 = u2;
  151.  
  152.     s.prijaviUcesnika(u1);
  153.     s.prijaviUcesnika(u2);
  154.     s.ispis();
  155.  
  156.     cout << u1 << "------------------------" << endl;
  157.  
  158.     cout << s[0];
  159.  
  160.     /*
  161.     // primjer operatora ==
  162.  
  163.     u1.ispis();
  164.     u2.ispis();
  165.     u3.ispis();
  166.    
  167.     if (u3 == u2){
  168.         cout << "ISTI" << endl;
  169.     }
  170.     else cout << "RAZLICITI" << endl;
  171.     */
  172.  
  173.     system("pause > null");
  174.     return 0;
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement