Martina312

Untitled

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