Advertisement
IlijaTrnkovski

Untitled

Jun 19th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5. class ZicanInstrument {
  6. protected:
  7. char ime[20];
  8. int broj;
  9. int cena;
  10. public:
  11.  
  12. ZicanInstrument(){
  13. }
  14. ZicanInstrument(char *ime, int broj, int cena){
  15. strcpy(this->ime,ime);
  16. this->broj=broj;
  17. this->cena=cena;
  18. }
  19. ZicanInstrument(const ZicanInstrument &zi){
  20. strcpy(this->ime,zi.ime);
  21. this->broj=zi.broj;
  22. this->cena=zi.cena;
  23. }
  24. bool operator ==( ZicanInstrument &zi){
  25. if(zi.broj==broj){
  26. return true;
  27. }
  28. return false;
  29. }
  30. ~ZicanInstrument(){
  31.  
  32. }
  33.  
  34. virtual int cenaa()=0;
  35.  
  36. };
  37. class Mandolina : public ZicanInstrument{
  38. protected:
  39. char forma[20];
  40. public:
  41. Mandolina(){
  42. }
  43. Mandolina(char *ime, int broj, int cena, char *forma) : ZicanInstrument(ime,broj,cena){
  44. strcpy(this->forma,forma);
  45. }
  46. Mandolina (const Mandolina &m){
  47. strcpy(this->forma,m.forma);
  48. }
  49.  
  50. int cenaa(){
  51. if(!strcmp(forma,"Neopolotan")){
  52. return cena + cena *0.15;
  53. }
  54. else
  55. return cena;
  56. }
  57. friend ostream& operator<<(ostream &out, const Mandolina &m){
  58. out<<m.ime<<" "<<m.broj<<" "<<m.cena<<" "<<m.forma<<endl;
  59. return out;
  60. }
  61. ~Mandolina(){
  62. }
  63.  
  64. };
  65.  
  66. class Violina : public ZicanInstrument{
  67. protected:
  68. double golemina;
  69. public:
  70. Violina(){
  71. }
  72. Violina(char *ime, int broj, int cena, double golemina): ZicanInstrument(ime,broj,cena){
  73. this->golemina=golemina;
  74. }
  75. Violina( const Violina &v){
  76. this->golemina=v.golemina;
  77. }
  78.  
  79. friend ostream& operator<<(ostream &out, const Violina &v){
  80. out<<v.ime<<" "<<v.broj<<" "<<v.cena<<" "<<v.golemina<<endl;
  81. return out;
  82. }
  83. int cenaa(){
  84. if(golemina==0.25){
  85. return cena + cena *0.10;
  86. }
  87. else if( golemina ==1.00){
  88. return cena + cena *0.20;
  89. }
  90. else return cena;
  91. }
  92. ~Violina(){
  93. }
  94.  
  95. };
  96.  
  97. pecatiInstrumenti(ZicanInstrument &zi, ZicanInstrument **i, int n){
  98. for(int k;k<n;k++){
  99. if (zi==*i[k]){
  100. cout<<i[k]->cenaa()<<endl;
  101. }
  102. }
  103. }
  104. int main() {
  105. char ime[20];
  106. int brojZici;
  107. float cena;
  108. char forma[20];
  109. cin >> ime >> brojZici >> cena >> forma;
  110. Mandolina m(ime, brojZici, cena, forma);
  111. int n;
  112. cin >> n;
  113. ZicanInstrument **zi = new ZicanInstrument*[2 * n];
  114. for(int i = 0; i < n; ++i) {
  115. cin >> ime >> brojZici >> cena >> forma;
  116. zi[i] = new Mandolina(ime, brojZici, cena, forma);
  117. }
  118. for(int i = 0; i < n; ++i) {
  119. float golemina;
  120. cin >> ime >> brojZici >> cena >> golemina;
  121. zi[n + i] = new Violina(ime, brojZici, cena, golemina);
  122. }
  123. pecatiInstrumenti(m, zi, 2 * n);
  124. for(int i = 0; i < 2 * n; ++i) {
  125. delete zi[i];
  126. }
  127. delete [] zi;
  128. return 0;
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement