Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class ZicanInstrument{
  7. protected:
  8.     char ime[20];
  9.     int brojZici;
  10.     int cenain;
  11. public:
  12.     ZicanInstrument(const char *ime="", int brojZici=0, int cenain=0){
  13.       strcpy(this->ime, ime);
  14.       this->brojZici=brojZici;
  15.       this->cenain=cenain;
  16.     }
  17.     int getbrojZici(){
  18.         return this->brojZici;
  19.     }
  20.     virtual float cena()=0;
  21. };
  22.  
  23. class Mandolina: public ZicanInstrument{
  24. private:
  25.     char forma[20];
  26. public:
  27.     Mandolina(const char *ime="", int brojZici=0, int cenain=0, const char *forma=""): ZicanInstrument(ime, brojZici, cenain){
  28.       strcpy(this->forma, forma);
  29.     }
  30.     float cena(){
  31.     if(strcmp(this->forma, "Neapolitan")==0){
  32.         return cenain+(cenain*15)/100;
  33.     }
  34.         return cenain;
  35. }
  36.     bool operator==(Mandolina &m){
  37.         return this->brojZici==m.brojZici;
  38.     }
  39.     friend ostream &operator<<(ostream &out, Mandolina &m){
  40.         return out<<m.ime<<m.brojZici<<m.cenain<<endl;
  41.     }
  42. };
  43.  
  44. class Violina: public ZicanInstrument{
  45. private:
  46.     float golemina;
  47. public:
  48.      Violina(char *ime="", int brojZici=0, int cenain=0, float golemina=0): ZicanInstrument(ime, brojZici, cenain){
  49.       this->golemina=golemina;
  50.     }
  51.     float cena(){
  52.     if(this->golemina==0.25){
  53.         return cenain+(cenain*10)/100;
  54.     }
  55.     if(this->golemina==1.00){
  56.         return cenain+(cenain*20)/100;
  57.     }
  58.         return cenain;
  59. }
  60.     bool operator==(Violina &v){
  61.         return this->brojZici==v.brojZici;
  62.     }
  63.     friend ostream &operator<<(ostream &out, Violina &v){
  64.         return out<<v.ime<<v.brojZici<<v.cenain<<endl;
  65.     }
  66. };
  67. void pecatiInstrumenti(ZicanInstrument &zi, ZicanInstrument **i, int n){
  68.     for(int j=0; j<n; j++){
  69.         if(i[j]->getbrojZici()==zi.getbrojZici()){
  70.             cout<<i[j]->cena()<<endl;
  71.         }
  72.     }
  73. }
  74.  
  75. int main() {
  76.     char ime[20];
  77.     int brojZici;
  78.     float cena;
  79.     char forma[20];
  80.     cin >> ime >> brojZici >> cena >> forma;
  81.     Mandolina m(ime, brojZici, cena, forma);
  82.     int n;
  83.     cin >> n;
  84.     ZicanInstrument **zi = new ZicanInstrument*[2 * n];
  85.     for(int i = 0; i < n; ++i) {
  86.         cin >> ime >> brojZici >> cena >> forma;
  87.         zi[i] = new Mandolina(ime, brojZici, cena, forma);
  88.     }
  89.     for(int i = 0; i < n; ++i) {
  90.         float golemina;
  91.         cin >> ime >> brojZici >> cena >> golemina;
  92.         zi[n + i] = new Violina(ime, brojZici, cena, golemina);
  93.     }
  94.     pecatiInstrumenti(m, zi, 2 * n);
  95.     for(int i = 0; i < 2 * n; ++i) {
  96.         delete zi[i];
  97.     }
  98.     delete [] zi;
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement