Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class ZicanInstrument {
- protected:
- char ime[20];
- int brojZici;
- int osnovnaCena;
- public:
- ZicanInstrument (const char *ime="",int brojZici=0,int osnovnaCena=0)
- {
- strcpy(this->ime,ime);
- this->brojZici = brojZici;
- this->osnovnaCena = osnovnaCena;
- }
- ~ZicanInstrument () {}
- bool operator== (ZicanInstrument &z1)
- {
- if (z1.brojZici == brojZici)
- return true;
- else
- return false;
- }
- virtual int cena ()=0;
- };
- class Mandolina : public ZicanInstrument {
- protected:
- char forma[20];
- public:
- Mandolina (const char *ime="",int brojZici=0,int osnovnaCena=0,const char *forma="") : ZicanInstrument (ime,brojZici,osnovnaCena)
- {
- strcpy(this->forma,forma);
- }
- ~Mandolina () {}
- int cena ()
- {
- if (!strcmp(forma,"Neapolitan"))
- {
- return osnovnaCena + osnovnaCena * 0.15;
- }
- else
- return osnovnaCena;
- }
- friend ostream &operator<< (ostream &o,const Mandolina &m)
- {
- o<<m.ime<<" "<<m.brojZici<<" "<<m.osnovnaCena<<" "<<m.forma<<endl;
- return o;
- }
- };
- class Violina: public ZicanInstrument {
- protected:
- float golemina;
- public:
- Violina (const char *ime="",int brojZici=0,int osnovnaCena=0,float golemina=0) : ZicanInstrument (ime,brojZici,osnovnaCena)
- {
- this->golemina = golemina;
- }
- ~Violina () {}
- int cena ()
- {
- if (golemina == 0.25)
- return osnovnaCena + osnovnaCena * 0.1;
- else if (golemina == 1.00)
- return osnovnaCena + osnovnaCena * 0.2;
- else
- return osnovnaCena;
- }
- friend ostream &operator<< (ostream &o,const Violina &v)
- {
- o<<v.ime<<" "<<v.brojZici<<" "<<v.osnovnaCena<<" "<<v.golemina<<endl;
- }
- };
- void pecatiInstrumenti (ZicanInstrument &zi,ZicanInstrument **i,int n)
- {
- for (int k=0;k<n;k++)
- {
- if (zi == *(i[k]))
- {
- cout<< i[k] -> cena() << endl;
- }
- }
- }
- int main() {
- char ime[20];
- int brojZici;
- float cena;
- char forma[20];
- cin >> ime >> brojZici >> cena >> forma;
- Mandolina m(ime, brojZici, cena, forma);
- int n;
- cin >> n;
- ZicanInstrument **zi = new ZicanInstrument*[2 * n];
- for(int i = 0; i < n; ++i) {
- cin >> ime >> brojZici >> cena >> forma;
- zi[i] = new Mandolina(ime, brojZici, cena, forma);
- }
- for(int i = 0; i < n; ++i) {
- float golemina;
- cin >> ime >> brojZici >> cena >> golemina;
- zi[n + i] = new Violina(ime, brojZici, cena, golemina);
- }
- pecatiInstrumenti(m, zi, 2 * n);
- for(int i = 0; i < 2 * n; ++i) {
- delete zi[i];
- }
- delete [] zi;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement