Advertisement
AbidK

PR3 [3] rjesenje

Dec 11th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.18 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. const char *crt = "\n-----------------------------------------------\n";
  5.  
  6. enum Status { ZAHTJEV_ZAPRIMLJEN, ODUSTAO, ODBIJENA, IZDATA, ISTEKLA, PONISTENA };
  7. int PotrebniStatus[] = { -1, ZAHTJEV_ZAPRIMLJEN, ZAHTJEV_ZAPRIMLJEN, ZAHTJEV_ZAPRIMLJEN, IZDATA, IZDATA };
  8. const char* StatusString[] = { "ZAHTJEV ZAPRIMLJEN", "ODUSTAO", "ODBIJENA", "IZDATA", "ISTEKLA", "PONISTENA" };
  9. enum Sortiranje { RASTUCI, OPADAJUCI };
  10. enum Drzava { SAD, AUSTRALIJA, ENGLESKA, UNDEFINED };
  11. const char* DrzaveString[] = { "SAD", "AUSTRALIJA", "ENGLESKA", "UNDEFINED" };
  12. enum Vrsta { POSLOVNA, TURISTICKA };
  13.  
  14.  
  15. //char* AlocirajNizKaraktera(const char *s) {
  16. //  char *noviString = new char[strlen(s) + 1];
  17. //  strcpy_s(noviString, strlen(s) + 1, s);
  18. //  return noviString;
  19. //}
  20.  
  21. char* AlocirajNizKaraktera(const char *s) {
  22.     char *noviString = nullptr;
  23.     if (s != nullptr) {
  24.         noviString = new char[strlen(s) + 1];
  25.         strcpy_s(noviString, strlen(s) + 1, s);
  26.     }
  27.     return noviString;
  28. }
  29.  
  30. class Datum {
  31.     int *_dan, *_mjesec, *_godina;
  32. public:
  33.     Datum(int dan = 1, int mjesec = 1, int godina = 2000) {
  34.         _dan = new int(dan);
  35.         _mjesec = new int(mjesec);
  36.         _godina = new int(godina);
  37.     }
  38.  
  39.     //konstruktor kopije
  40.     Datum(const Datum &d) {
  41.         _dan = new int(*d._dan);
  42.         _mjesec = new int(*d._mjesec);
  43.         _godina = new int(*d._godina);
  44.     }
  45.     //move konstruktor
  46.     Datum(Datum &&d) {
  47.         _dan = d._dan;
  48.         _mjesec = d._mjesec;
  49.         _godina = d._godina;
  50.     }
  51.     //operator=
  52.     Datum & operator= (const Datum &d) {
  53.         if (this != &d) {
  54.             *_dan = *d._dan;
  55.             *_mjesec = *d._mjesec;
  56.             *_godina = *d._godina;
  57.         }
  58.         return *this;
  59.     }
  60.  
  61.     friend bool operator==(const Datum &left, const Datum &right) {
  62.         if (*right._dan != *left._dan) return false;
  63.         if (*right._mjesec != *left._mjesec) return false;
  64.         if (*right._godina != *left._godina) return false;
  65.         return true;
  66.     }
  67.  
  68.     int GetBrojDana() const { return *_godina * 10000 + *_mjesec * 100 + *_dan; }
  69.  
  70.     bool PrestupnaGodina() {
  71.         return ((*_godina % 4 == 0 && *_godina % 100 != 0) || (*_godina % 400 == 0));
  72.     }
  73.  
  74.     Datum& operator++() {
  75.         int mjeseci[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  76.         mjeseci[1] += PrestupnaGodina();
  77.  
  78.         (*_dan)++;
  79.  
  80.         if (*_dan == mjeseci[*_mjesec - 1] + 1) { *_dan = 1; (*_mjesec)++; }  //prelazak u novi mjesec
  81.         if (*_mjesec == 13) { (*_godina)++; *_mjesec = 1; } //prelazak u novu godinu
  82.  
  83.         return *this;
  84.     }
  85.  
  86.     //Datum& operator++(int) {
  87.     //  Datum temp(*this);
  88.     //  ++(*this);
  89.     //  return temp;
  90.     //}
  91.  
  92.     ~Datum() {
  93.         delete _dan; _dan = nullptr;
  94.         delete _mjesec; _mjesec = nullptr;
  95.         delete _godina; _godina = nullptr;
  96.     }
  97.  
  98.     friend ostream& operator<< (ostream &COUT, const Datum &obj) {
  99.         COUT << *obj._dan << "." << *obj._mjesec << "." << *obj._godina;
  100.         return COUT;
  101.     }
  102.  
  103. };
  104.  
  105. template<class T>
  106. class FITKolekcija {
  107.     T * _elementi;
  108.     int _trenutno;
  109. public:
  110.     FITKolekcija() {
  111.         _elementi = nullptr;
  112.         _trenutno = 0;
  113.     }
  114.  
  115.     //konstruktor kopije
  116.     FITKolekcija(const FITKolekcija &temp) {
  117.         _elementi = new T[temp._trenutno];
  118.         for (size_t i = 0; i < temp._trenutno; i++)
  119.         {
  120.             _elementi[i] = temp._elementi[i];// operator=
  121.         }
  122.         _trenutno = temp._trenutno;
  123.     }
  124.     //move konstruktor
  125.     //operator=
  126.     FITKolekcija & operator=(const FITKolekcija &temp) {
  127.         if (this != &temp) {
  128.             if (_elementi != nullptr)
  129.                 delete[]_elementi;
  130.             _elementi = new T[temp._trenutno];
  131.             for (size_t i = 0; i < temp._trenutno; i++)
  132.             {
  133.                 _elementi[i] = temp._elementi[i];// operator=
  134.             }
  135.             _trenutno = temp._trenutno;        
  136.         }
  137.         return *this;
  138.     }
  139.     //Dodaj
  140.     void Dodaj(T &element) {
  141.         T * temp = new T[_trenutno + 1];
  142.  
  143.         for (size_t i = 0; i < _trenutno; i++)
  144.         {
  145.             temp[i] = _elementi[i];
  146.         }
  147.         if (_elementi != nullptr)
  148.             delete[]_elementi;
  149.         _elementi = temp;
  150.         _elementi[_trenutno++] = element;
  151.  
  152.     }
  153.     //dodatni operatori i funkcije po potrebi
  154.  
  155.     T & operator[] (int lokacija) {
  156.         return _elementi[lokacija];
  157.     }
  158.  
  159.     ~FITKolekcija() {
  160.         delete[] _elementi; _elementi = nullptr;
  161.  
  162.     }
  163.     T * GetT() { return _elementi; }
  164.     int GetTrenutno() const { return _trenutno; }
  165.     T GetLast() { return _elementi[_trenutno - 1]; }
  166.  
  167.     friend ostream& operator<< (ostream &COUT, FITKolekcija &obj) {
  168.         for (size_t i = 0; i < obj._trenutno; i++)
  169.             COUT << obj._elementi[i] << endl;
  170.         return COUT;
  171.     }
  172. };
  173.  
  174.  
  175. class Viza {
  176. protected:
  177.     Drzava _drzava;
  178.     Datum _vazenjeOD;
  179.     Datum _vazenjeDO;
  180.     char * _napomena;
  181.     // kolekcija promijena statusa vize
  182.     FITKolekcija<Status> _statusi;
  183. public:
  184.     Viza() : _napomena(nullptr), _drzava(UNDEFINED) {}
  185.  
  186.     //modifikovana deafult napomena
  187.     Viza(Drzava drzava, Datum _OD, Datum _DO, const char * napomena = nullptr) :_vazenjeDO(_DO), _vazenjeOD(_OD)
  188.     {
  189.         if (napomena != nullptr) {
  190.             _napomena = new char[strlen(napomena) + 1];
  191.             strcpy_s(_napomena, strlen(napomena) + 1, napomena);
  192.         }
  193.         else
  194.             _napomena = nullptr;
  195.         _drzava = drzava;
  196.     } //
  197.  
  198.     //konstruktor kopije
  199.  
  200.     Viza(const Viza &obj) {
  201.         _vazenjeOD = obj._vazenjeOD;
  202.         _vazenjeDO = obj._vazenjeDO;
  203.         _drzava = obj._drzava;
  204.         _napomena = AlocirajNizKaraktera(obj._napomena);
  205.     }
  206.     //move konstruktor
  207.  
  208.     //operator=
  209.     Viza & operator= (const Viza &obj) {
  210.         if (this != &obj) {
  211.             _vazenjeOD = obj._vazenjeOD;
  212.             _vazenjeDO = obj._vazenjeDO;
  213.             _drzava = obj._drzava;
  214.             if (_napomena != nullptr) {
  215.                 delete[]_napomena;
  216.                 _napomena = AlocirajNizKaraktera(obj._napomena);
  217.             }
  218.         }
  219.         return *this;
  220.     }
  221.     //operator<<
  222.  
  223.     friend ostream& operator<< (ostream &cout, const Viza &obj) {
  224.         cout << "Drzava : " << obj._drzava << endl;
  225.         cout << "Vazi od : " << obj._vazenjeOD << ", do : " << obj._vazenjeDO << endl;
  226.         if (obj._napomena != nullptr)
  227.             cout << "Napomena : " << obj._napomena;
  228.  
  229.         return cout;
  230.     }
  231.  
  232.     //DodajStatus
  233.  
  234.     bool DodajStatus(Status &status) {
  235.         //STATUSI SE MOGU DODAVATI SAMO U REDOSLIJEDU U KOJEM SE NALAZE U ENUMERACIJI NPR.
  236.     //- NIJE MOGUCE ODBITI VIZU AKO PRETHODNO NIJE IMALA STATUS DA JE ZAHTJEV_ZAPRIMLJEN
  237.     //- NIJE MOGUCE PONIŠTITI VIZU KOJA PRETHODNO NIJE IZDATA
  238.         if (status == ZAHTJEV_ZAPRIMLJEN) {
  239.             _statusi.Dodaj(status);
  240.             return true;
  241.         }
  242.         for (size_t i = _statusi.GetTrenutno(); i < 5; i++)
  243.         {
  244.         if (_statusi.GetT()[i] == status)
  245.             return false;
  246.         }
  247.        
  248.        
  249.         _statusi.Dodaj(status);
  250.         return true;
  251.  
  252.     }
  253.  
  254.     friend bool operator==(const Viza &left, const Viza &right) {
  255.         //dvije vize su iste ako vrijede za istu drzavu i ako imaju isti vijek trajanja
  256.         if (left._drzava != right._drzava) return false;
  257.         if (!(left._vazenjeOD == right._vazenjeOD)) return false;
  258.         if (!(left._vazenjeDO == right._vazenjeDO)) return false;
  259.         return true;
  260.     }
  261.  
  262.     ~Viza() { delete[] _napomena; _napomena = nullptr; }
  263.  
  264.     Drzava GetDrzava() { return _drzava; }
  265.     Datum GetVazenjeOD() { return _vazenjeOD; }
  266.     Datum GetVazenjeDO() { return _vazenjeDO; }
  267.     char * GetNapomena() { return _napomena; }
  268.     Status GetZadnjiStatus() { return _statusi.GetLast(); }
  269.     const FITKolekcija<Status>& GetStatuse() const { return _statusi; }
  270.  
  271. };
  272.  
  273. class PoslovnaViza :public Viza {
  274.     char* _kompanija; //naziv kompanije koja potvrduje da posluje sa aplikantom
  275. public:
  276.     //core lekcije
  277.  
  278.     PoslovnaViza() :Viza() {
  279.         _kompanija = nullptr;
  280.     }
  281.  
  282.     PoslovnaViza(Drzava drzava, Datum _OD, Datum _DO, const char *kompanija) :Viza(drzava, _OD, _DO) {
  283.         _kompanija = AlocirajNizKaraktera(kompanija);
  284.     }
  285.  
  286.     PoslovnaViza(const PoslovnaViza &pv) :Viza(pv) {
  287.         _kompanija = AlocirajNizKaraktera(pv._kompanija);
  288.     }
  289.  
  290.     PoslovnaViza & operator= (PoslovnaViza& obj) {
  291.         if (this != &obj) {
  292.             Viza::operator= (obj);
  293.             if (obj._kompanija != nullptr)
  294.             {
  295.                 delete[] _kompanija;
  296.                 _kompanija = nullptr;
  297.                 _kompanija = AlocirajNizKaraktera(obj._kompanija);
  298.             }
  299.         }
  300.         return *this;
  301.     }
  302.  
  303.     friend ostream& operator<< (ostream &cout, const PoslovnaViza &obj)
  304.     {
  305.         cout << Viza(obj);
  306.  
  307.         if (obj._kompanija != nullptr)
  308.             cout << "Kompanija : " << obj._kompanija << endl;
  309.         else
  310.             cout << "Kompanija je nullptr" << endl;
  311.         return cout;
  312.     }
  313.  
  314. };
  315.  
  316. class TuristickaViza:public Viza {
  317.     char* _adresa; //adresa hotele ili drugog smještaja na kojoj ce aplikant boraviti
  318. public:
  319.     //core lekcije
  320.  
  321.     TuristickaViza() :Viza() {
  322.         _adresa = nullptr;
  323.     }
  324.  
  325.     TuristickaViza(Drzava drzava, Datum _OD, Datum _DO, const char *adresa):Viza(drzava,_OD,_DO) {
  326.         _adresa = AlocirajNizKaraktera(adresa);
  327.     }
  328.  
  329.     TuristickaViza(const TuristickaViza &temp):Viza(temp){
  330.         _adresa = AlocirajNizKaraktera(temp._adresa);
  331.     }
  332.  
  333.     TuristickaViza & operator= (TuristickaViza& temp) {
  334.         if (this != &temp) {
  335.             Viza :: operator=(temp);
  336.             if (temp._adresa != nullptr) {
  337.                 delete[]_adresa;
  338.                 _adresa = AlocirajNizKaraktera(temp._adresa);
  339.             }
  340.         }
  341.         return *this;
  342.     }
  343.  
  344.     friend ostream & operator<< (ostream &cout, const TuristickaViza &obj) {
  345.         cout << (Viza)obj << endl;
  346.         if(obj._adresa != nullptr)
  347.         cout << "Adresa : " << obj._adresa;
  348.         return cout;
  349.     }
  350. };
  351.  
  352.  
  353. class Aplikant {
  354.     char * _imePrezime;
  355.     Datum * _datumRodjenja;
  356.     char * _brojPasosa;
  357.     FITKolekcija<PoslovnaViza> _poslovneVize;
  358.     FITKolekcija<TuristickaViza> _turistickeVize;
  359. public:
  360.     Aplikant(const char * imePrezime, Datum datumRodjenja, const char * brojPasosa) : _datumRodjenja(new Datum(datumRodjenja)) {
  361.         _imePrezime = AlocirajNizKaraktera(imePrezime);
  362.         _brojPasosa = AlocirajNizKaraktera(brojPasosa);
  363.     }
  364.  
  365.     //konstruktor kopije
  366.     Aplikant(const Aplikant &temp):_datumRodjenja(temp._datumRodjenja) {
  367.         _imePrezime = AlocirajNizKaraktera(temp._imePrezime);
  368.         _brojPasosa = AlocirajNizKaraktera(temp._brojPasosa);
  369.         _poslovneVize = temp._poslovneVize;
  370.         _turistickeVize = temp._turistickeVize;
  371.     }
  372.     //move konstruktor
  373.     //operator=
  374.     Aplikant & operator= (Aplikant &obj) {
  375.         if (this != &obj) {
  376.             if (obj._imePrezime != nullptr) {
  377.                 delete[] _imePrezime;
  378.                 _imePrezime = AlocirajNizKaraktera(obj._imePrezime);
  379.             }
  380.             if (obj._brojPasosa != nullptr) {
  381.                 delete[] _brojPasosa;
  382.                 _brojPasosa = AlocirajNizKaraktera(obj._brojPasosa);
  383.             }
  384.             _datumRodjenja = obj._datumRodjenja;
  385.             _poslovneVize = obj._poslovneVize;
  386.             _turistickeVize = obj._turistickeVize;
  387.         }
  388.         return *this;
  389.     }
  390.     //DodajVizu za poslovnu vizu
  391.         /*
  392.     NOVA VIZA SE NE MOŽE DODATI UKOLIKO:
  393.     -   U TOM PERIODU (ODNOSI SE NA PERIOD VIZE OD - DO)  NE POSTOJI VAŽECA (POJAM VAŽECA PODRAZUMIJEVA DA JE
  394.         POSLJEDNJI STATUS VIZE BIO IZDATA TJ.  DA VIZA NIJE PONIŠTENA ILI ISTEKLA) VIZA ZA TU DRŽAVU,
  395.         BEZ OBZIRA NA NJENU VRSTU.
  396.     -   JE NEKA OD RANIJIH VIZA PONIŠTENA (OVO SE ODNOSI SAMO NA VIZE ZA DRŽAVU: SAD)
  397.     */
  398.     bool DodajVizu(PoslovnaViza &v) {
  399.         for (int i = 0; i < _poslovneVize.GetTrenutno(); i++)
  400.         {
  401.             if (_poslovneVize[i].GetZadnjiStatus() == PONISTENA && _poslovneVize[i].GetDrzava() == SAD)
  402.                 return false;
  403.         }
  404.  
  405.         //for (size_t i = _poslovneVize[i].GetVazenjeOD().GetBrojDana(); i < _poslovneVize[i].GetVazenjeOD().GetBrojDana(); i++)
  406.         //{
  407.         //  if(_poslovneVize[i].GetStatuse())
  408.         //}
  409.  
  410.         _poslovneVize.Dodaj(v);
  411.         return true;
  412.     }
  413.  
  414.     //DodajVizu za turisticku vizu
  415.     bool DodajVizu(TuristickaViza &v) {
  416.         for (int i = 0; i < _turistickeVize.GetTrenutno(); i++)
  417.         {
  418.             if (_turistickeVize[i].GetZadnjiStatus() == PONISTENA && _turistickeVize[i].GetDrzava() == SAD)
  419.                 return false;
  420.         }
  421.  
  422.         //for (size_t i = _poslovneVize[i].GetVazenjeOD().GetBrojDana(); i < _poslovneVize[i].GetVazenjeOD().GetBrojDana(); i++)
  423.         //{
  424.         //  if(_poslovneVize[i].GetStatuse())
  425.         //}
  426.  
  427.         _turistickeVize.Dodaj(v);
  428.         return true;
  429.     }
  430.     //DodajStatus za poslovnu vizu
  431.  
  432.     //STATUSI SE MOGU DODAVATI SAMO U REDOSLIJEDU U KOJEM SE NALAZE U ENUMERACIJI NPR.
  433.     //- NIJE MOGUCE ODBITI VIZU AKO PRETHODNO NIJE IMALA STATUS DA JE ZAHTJEV_ZAPRIMLJEN
  434.     //- NIJE MOGUCE PONIŠTITI VIZU KOJA PRETHODNO NIJE IZDATA
  435.     bool DodajStatus(TuristickaViza &v, Status s) {
  436.         if (v.DodajStatus(s))
  437.             return true;
  438.         return false;
  439.     }
  440.     //DodajStatus za turisticku vizu
  441.     bool DodajStatus(PoslovnaViza &v, Status s) {
  442.         if (v.DodajStatus(s))
  443.             return true;   
  444.         return false;
  445.     }
  446.     //operator()
  447.     void operator() (PoslovnaViza &v) {
  448.         cout << v;
  449.     }
  450.     void operator() (TuristickaViza &v) {
  451.         cout << v;
  452.     }
  453.     //operator<<
  454.     friend ostream & operator<< (ostream &cout, const Aplikant &ap) {
  455.         cout << "Ime i prezime -> " << ap._imePrezime << endl;
  456.         cout << "Datum rodjenja -> " << *ap._datumRodjenja << endl;
  457.         cout << "Broj pasosa -> " << *ap._brojPasosa << endl;
  458.         cout << "Poslovne vize -> " << ap._poslovneVize.GetTrenutno() << endl;
  459.         cout << "Turisticke vize -> " << ap._turistickeVize.GetTrenutno() << endl;
  460.         return cout;
  461.     }
  462.  
  463.     ~Aplikant() {
  464.         delete[]_imePrezime; _imePrezime = nullptr;
  465.         delete[]_brojPasosa; _brojPasosa = nullptr;
  466.         delete _datumRodjenja; _datumRodjenja = nullptr;
  467.     }
  468.  
  469.  
  470.     FITKolekcija<PoslovnaViza> GetPoslovneVize() { return _poslovneVize; }
  471.     FITKolekcija<TuristickaViza> GetTuristickeVize() { return _turistickeVize; }
  472. };
  473.  
  474. int main() {
  475.  
  476.     /****************************************************************************
  477.     1. SVE KLASE TREBAJU POSJEDOVATI ADEKVATAN DESTRUKTOR
  478.     2. NAMJERNO IZOSTAVLJANJE KOMPLETNIH I/ILI POJEDINIH DIJELOVA DESTRUKTORA KOJI UZROKUJU RUNTIME ERROR CE BITI OZNACENO KAO "RE"
  479.     3. SPAŠAVAJTE PROJEKAT KAKO BI SE SPRIJECILO GUBLJENJE URAÐENOG ZADATKA
  480.     4. PROGRAMSKI CODE SE TAKOÐER NALAZI U FAJLU CODE.TXT
  481.     5. NAZIVI FUNKCIJA, TE BROJ I TIP PARAMETARA MORAJU BITI IDENTICNI ONIMA KOJI SU KORIŠTENI U TESTNOM CODE-U, OSIM U SLUCAJU DA POSTOJI ADEKVATAN RAZLOG ZA NJIHOVU MODIFIKACIJU. OSTALE, POMOCNE FUNKCIJE MOŽETE IMENOVATI I DODAVATI PO ŽELJI.
  482.     6. IZUZETAK BACITE U FUNKCIJAMA U KOJIMA JE TO NAZNACENO.
  483.     ****************************************************************************/
  484.  
  485.     Datum danas(15, 2, 2017);
  486.     Datum sutra(++danas); // inkrementiranjem se uvecava dan za 1
  487.     Datum prekosutra;
  488.     Datum dat15022017(15, 2, 2017), dat18082017(18, 8, 2017), dat11052018(11, 5, 2018), dat11122017(11, 12, 2017);
  489.  
  490.     prekosutra = danas;
  491.     if (prekosutra == danas)
  492.         cout << "Datumi su jednaki" << endl;
  493.     cout << danas << endl << sutra << endl << prekosutra << crt;
  494.  
  495.     int v6 = 6, v13 = 13, v32 = 32, v63 = 63, v98 = 98, v109 = 109, v196 = 196;
  496.  
  497.     FITKolekcija<int> brojevi;
  498.     brojevi.Dodaj(v196);
  499.     brojevi.Dodaj(v13);
  500.     brojevi.Dodaj(v98);
  501.     brojevi.Dodaj(v63);
  502.     brojevi.Dodaj(v98);
  503.     brojevi.Dodaj(v196);
  504.  
  505.  
  506.     Aplikant jasmin("Jasmin Azemovic", Datum(15, 5, 1979), "BS6985645");
  507.     PoslovnaViza poslovna(SAD, dat15022017, dat18082017, "Microsoft");
  508.     /*
  509.     NOVA VIZA SE NE MOŽE DODATI UKOLIKO:
  510.     -   U TOM PERIODU (ODNOSI SE NA PERIOD VIZE OD - DO)  NE POSTOJI VAŽECA (POJAM VAŽECA PODRAZUMIJEVA DA JE
  511.         POSLJEDNJI STATUS VIZE BIO IZDATA TJ.  DA VIZA NIJE PONIŠTENA ILI ISTEKLA) VIZA ZA TU DRŽAVU,
  512.         BEZ OBZIRA NA NJENU VRSTU.
  513.     -   JE NEKA OD RANIJIH VIZA PONIŠTENA (OVO SE ODNOSI SAMO NA VIZE ZA DRŽAVU: SAD)
  514.     */
  515.  
  516.     if (jasmin.DodajVizu(poslovna))
  517.         cout << "Podaci o vizi uspjesno zaprimljeni!" << endl;
  518.  
  519.     //STATUSI SE MOGU DODAVATI SAMO U REDOSLIJEDU U KOJEM SE NALAZE U ENUMERACIJI NPR.
  520.     //- NIJE MOGUCE ODBITI VIZU AKO PRETHODNO NIJE IMALA STATUS DA JE ZAHTJEV_ZAPRIMLJEN
  521.     //- NIJE MOGUCE PONIŠTITI VIZU KOJA PRETHODNO NIJE IZDATA
  522.  
  523.     if (jasmin.DodajStatus(poslovna, ZAHTJEV_ZAPRIMLJEN))
  524.         cout << "Status vize uspjesno promyijenjen!" << endl;
  525.     else
  526.         cout << "Aplikant \n" << jasmin << "NE POSJEDUJE evidentiranu trazenu vizu ili status vize nema odgovarajucu vrijednost" << endl;
  527.  
  528.  
  529.     if (jasmin.DodajStatus(poslovna, PONISTENA))
  530.         cout << "Status vize uspjesno promijenjen!" << endl;
  531.     else
  532.         cout << "Aplikant \n" << jasmin << "NE POSJEDUJE evidentiranu trazenu vizu ili status vize nema odgovarajucu vrijednost" << endl;
  533.  
  534.     TuristickaViza turisticka(ENGLESKA, dat18082017, dat11122017, "Whitehall Pl, London SW1A 2BD, UK");
  535.     if (jasmin.DodajVizu(turisticka))
  536.         cout << "Podaci o vizi uspjesno zaprimljeni!" << endl;
  537.  
  538.     if (jasmin.DodajStatus(turisticka, ZAHTJEV_ZAPRIMLJEN))
  539.         cout << "Status vize uspjesno promijenjen!" << endl;
  540.     else
  541.         cout << "Aplikant " << jasmin << "NE POSJEDUJE evidentiranu trazenu vizu ili status vize nema odgovarajucu vrijednost" << endl;
  542.  
  543.     if (jasmin.DodajStatus(turisticka, IZDATA)) {
  544.         cout << "Status vize uspjesno promijenjen!" << endl;
  545.         jasmin(turisticka);//ispisuje podatke o trazenoj vizi
  546.     }
  547.     else
  548.         cout << "Aplikant " << jasmin << "NE POSJEDUJE evidentiranu trazenu vizu ili status vize nema odgovarajucu vrijednost" << endl;
  549.  
  550.     system("pause");
  551.     return 0;
  552. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement