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 zici;
- int price;
- public:
- ZicanInstrument(char *ime = "", int zici = 0, int price = 0) {
- strcpy(this->ime, ime);
- this->zici = zici;
- this->price = price;
- }
- virtual float cena() = 0;
- bool operator ==(ZicanInstrument &x) {
- return zici == x.zici;
- }
- friend ostream& operator <<(ostream& out, ZicanInstrument &x) {
- out << x.ime << " " << x.zici << " " << x.price << endl;
- }
- };
- class Mandolina : public ZicanInstrument {
- private:
- char forma[20];
- public:
- Mandolina(char *ime = "", int zici = 0, int cena = 0, char *forma = "") : ZicanInstrument(ime, zici, cena) {
- strcpy(this->forma, forma);
- }
- float cena() {
- if(strcmp(forma, "Neapolitan") == 0)
- return price + price * 0.15;
- else
- return price;
- }
- bool operator ==(Mandolina &m) {
- return zici == m.zici;
- }
- friend ostream& operator <<(ostream& out, Mandolina &m) {
- out << m.ime << " " << m.zici << " " << m.price << "" << m.forma << endl;
- }
- };
- class Violina : public ZicanInstrument {
- private:
- float golemina;
- public:
- Violina(char *ime = "", int zici = 0, int cena = 0, float golemina = 0) : ZicanInstrument(ime, zici, cena) {
- this->golemina = golemina;
- }
- float cena() {
- if(golemina == 0.25)
- return price + price * 0.1;
- else if(golemina == 1)
- return price + price * 0.2;
- else
- return price;
- }
- bool operator ==(Violina &v) {
- return zici == v.zici;
- }
- friend ostream& operator <<(ostream& out, Violina &v) {
- out << v.ime << " " << v.zici << " " << v.price << "" << v.golemina << endl;
- }
- };
- void pecatiInstrumenti(ZicanInstrument &zi, ZicanInstrument **i, int n) {
- for(int j = 0; j < n; ++j) {
- if(zi == *i[j])
- cout << i[j]->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