Advertisement
LegoDrifter

Gitari so svirat

Jun 24th, 2020
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.88 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class Gitara
  7. {
  8. private:
  9.     char serial_number[25];
  10.     float price;
  11.     int year;
  12.     char type[40];
  13. public:
  14.     Gitara()
  15.     {
  16.         strcpy(this->serial_number,"");
  17.         this->price=0.0;
  18.         this->year=0;
  19.         strcpy(this->type,"");
  20.     }
  21.     Gitara(char *type,char *serial_number,int year,float price)
  22.     {
  23.         strcpy(this->serial_number,serial_number);
  24.         this->price=price;
  25.         this->year=year;
  26.         strcpy(this->type,type);
  27.     }
  28.     Gitara(const Gitara &gt)
  29.     {
  30.         strcpy(this->serial_number,gt.serial_number);
  31.         this->price=gt.price;
  32.         this->year=gt.year;
  33.         strcpy(this->type,gt.type);
  34.     }
  35.     bool daliIsti(Gitara &git)
  36.     {
  37.         if(strcmp(this->serial_number,git.serial_number)==0)
  38.             return true;
  39.         else return false;
  40.     }
  41.     void pecati()
  42.     {
  43.         cout<<serial_number<<" "<<type<<" "<<price<<endl;
  44.     }
  45.     int getGodina()
  46.     {
  47.         return year;
  48.     }
  49.     char * getSeriski()
  50.     {
  51.         return serial_number;
  52.     }
  53.     char * getTip()
  54.     {
  55.         return type;
  56.     }
  57.     float getNabavna()
  58.     {
  59.         return price;
  60.     }
  61.  
  62. };
  63.  
  64. class Magacin
  65. {
  66. private:
  67.     char name[30];
  68.     char location[60];
  69.     Gitara *guitars;
  70.     int number;
  71.     int year_opened;
  72. public:
  73.      Magacin(const char *name="",const char *location="",int year_opened=0)
  74.     {
  75.         strcpy(this->name,name);
  76.         strcpy(this->location,location);
  77.         this->year_opened=year_opened;
  78.         this->guitars = new Gitara[0];
  79.         this->number=0;
  80.     }
  81.     Magacin(const Magacin &m)
  82.     {
  83.         strcpy(this->name,m.name);
  84.         strcpy(this->location,m.location);
  85.         this->year_opened=m.year_opened;
  86.         this->number=m.number;
  87.         for(int i=0;i<m.number;i++)
  88.         {
  89.             this->guitars[i]=m.guitars[i];
  90.         }
  91.  
  92.     }
  93.     Magacin &operator=(const Magacin&m)
  94.     {
  95.         if(this!=&m)
  96.         {
  97.         strcpy(this->name,m.name);
  98.         strcpy(this->location,m.location);
  99.         this->year_opened=m.year_opened;
  100.         this->number=m.number;
  101.         for(int i=0;i<m.number;i++)
  102.         {
  103.             this->guitars[i]=m.guitars[i];
  104.         }
  105.         }
  106.         return *this;
  107.     }
  108.     double vrednost()
  109.     {
  110.         double sum=0.0;
  111.         for(int i=0;i<number;i++)
  112.         {
  113.             sum+=guitars[i].getNabavna();
  114.         }
  115.         return sum;
  116.     }
  117.     void dodadi(Gitara guitar)
  118.     {
  119.         Gitara *pok = new Gitara[number+1];
  120.         for(int i=0;i<number;i++)
  121.             pok[i] = guitars[i];
  122.             pok[number++] = guitar;
  123.         guitars = pok;
  124.            
  125.     }
  126.     void prodadi(Gitara &guitar)
  127.     {
  128.         int brojac=0;
  129.         for(int i=0;i<number;i++)
  130.         {
  131.             if((guitars[i].daliIsti(guitar))==false)
  132.                 brojac++;
  133.         }
  134.         Gitara *pok = new Gitara[brojac];
  135.         brojac =0;
  136.         for(int i=0;i<number;i++)
  137.         {
  138.             if((guitars[i].daliIsti(guitar))==false)
  139.             {
  140.                 pok[brojac++] = guitars[i];
  141.              
  142.             }
  143.         }
  144.            
  145.         //delete [] guitars;
  146.         guitars = pok;
  147.         number = brojac;
  148.     }
  149.     void pecati(bool daliNovi)
  150.     {
  151.         cout<<name<<" "<<location<<endl;
  152.         for(int i=0;i<number;i++)
  153.         {
  154.             if(daliNovi==true)
  155.             {
  156.                 if(guitars[i].getGodina()>year_opened)
  157.                 {
  158.                     guitars[i].pecati();
  159.                 }
  160.             }
  161.             else
  162.                 guitars[i].pecati();
  163.         }
  164.     }
  165.    
  166. };
  167.  
  168.     int main() {
  169.     // se testira zadacata modularno
  170.     int testCase;
  171.     cin >> testCase;
  172.  
  173.     int n, godina;
  174.     float cena;
  175.     char seriski[50],tip[50];
  176.  
  177.     if(testCase == 1) {
  178.         cout << "===== Testiranje na klasata Gitara ======" << endl;
  179.         cin>>tip;
  180.         cin>>seriski;
  181.         cin >> godina;
  182.         cin >> cena;
  183.         Gitara g(tip,seriski, godina,cena);
  184.         cout<<g.getTip()<<endl;
  185.         cout<<g.getSeriski()<<endl;
  186.         cout<<g.getGodina()<<endl;
  187.         cout<<g.getNabavna()<<endl;
  188.     } else if(testCase == 2){
  189.         cout << "===== Testiranje na klasata Magacin so metodot print() ======" << endl;
  190.         Magacin kb("Magacin1","Lokacija1");
  191.         kb.pecati(false);
  192.     }
  193.     else if(testCase == 3) {
  194.         cout << "===== Testiranje na klasata Magacin so metodot dodadi() ======" << endl;
  195.         Magacin kb("Magacin1","Lokacija1",2005);
  196.         cin>>n;
  197.             for (int i=0;i<n;i++){
  198.                 cin>>tip;
  199.                 cin>>seriski;
  200.                 cin >> godina;
  201.                 cin >> cena;
  202.                 Gitara g(tip,seriski, godina,cena);
  203.                 cout<<"gitara dodadi"<<endl;
  204.                 kb.dodadi(g);
  205.             }
  206.         kb.pecati(true);
  207.     }
  208.  
  209.     else if(testCase == 4) {
  210.         cout << "===== Testiranje na klasata Magacin so metodot prodadi() ======" << endl;
  211.         Magacin kb("Magacin1","Lokacija1",2012);
  212.             cin>>n;
  213.             Gitara brisi;
  214.             for (int i=0;i<n;i++){
  215.                 cin>>tip;
  216.                 cin>>seriski;
  217.                 cin >> godina;
  218.                 cin >> cena;
  219.  
  220.                 Gitara g(tip,seriski, godina,cena);
  221.                 if(i==2)
  222.                     brisi=g;
  223.                 cout<<"gitara dodadi"<<endl;
  224.                 kb.dodadi(g);
  225.             }
  226.         kb.pecati(false);
  227.         kb.prodadi(brisi);
  228.         kb.pecati(false);
  229.     }
  230.     else if(testCase == 5) {
  231.         cout << "===== Testiranje na klasata Magacin so metodot prodadi() i pecati(true) ======" << endl;
  232.         Magacin kb("Magacin1","Lokacija1",2011);
  233.             cin>>n;
  234.             Gitara brisi;
  235.             for (int i=0;i<n;i++){
  236.                 cin>>tip;
  237.                 cin>>seriski;
  238.                 cin >> godina;
  239.                 cin >> cena;
  240.  
  241.                 Gitara g(tip,seriski, godina,cena);
  242.                 if(i==2)
  243.                     brisi=g;
  244.                 cout<<"gitara dodadi"<<endl;
  245.                 kb.dodadi(g);
  246.             }
  247.         kb.pecati(true);
  248.         kb.prodadi(brisi);
  249.         cout<<"Po brisenje:"<<endl;
  250.         Magacin kb3;
  251.         kb3=kb;
  252.         kb3.pecati(true);
  253.     }
  254.    else if(testCase ==6)
  255.         {
  256.         cout << "===== Testiranje na klasata Magacin so metodot vrednost()======" << endl;
  257.         Magacin kb("Magacin1","Lokacija1",2011);
  258.             cin>>n;
  259.             Gitara brisi;
  260.             for (int i=0;i<n;i++){
  261.                 cin>>tip;
  262.                 cin>>seriski;
  263.                 cin >> godina;
  264.                 cin >> cena;
  265.  
  266.                 Gitara g(tip,seriski, godina,cena);
  267.                 if(i==2)
  268.                     brisi=g;
  269.                 kb.dodadi(g);
  270.             }
  271.         cout<<kb.vrednost()<<endl;
  272.         kb.prodadi(brisi);
  273.         cout<<"Po brisenje:"<<endl;
  274.         cout<<kb.vrednost();
  275.         Magacin kb3;
  276.         kb3=kb;
  277.         }
  278.     return 0;
  279. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement