Advertisement
kookkkiiii

25.4.2019 sortiranje klasi

Apr 25th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.04 KB | None | 0 0
  1. #include <iostream>
  2. #include<string.h> // istoto moze so <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class Proizvod
  7. {
  8. private:
  9.     char ime[20];
  10.     int shifra;
  11.     int kolZal;
  12.     int kolProd;
  13. public:
  14.     Proizvod(char *imev="",int shifrav = 1,int kolZalv = 0,int kolProdv =0)
  15.     {
  16.         strcpy(ime, imev);
  17.         shifra = shifrav;
  18.         kolZal = kolZalv;
  19.         kolProd = kolProdv;
  20.     }
  21.     Proizvod(const Proizvod &P)
  22.     {
  23.         strcpy(ime,P.ime);
  24.         kolProd = P.kolProd;
  25.         shifra = P.shifra;
  26.         kolZal = P.kolZal;
  27.     }
  28.     int getShifra()
  29.     {
  30.         return shifra;
  31.     }
  32.     int getkolZal()
  33.  
  34.     {
  35.         return kolZal;
  36.     }
  37.     void pechati()
  38.     {
  39.         cout<<ime<<" "<<shifra<<" "<<kolZal<<" "<<kolProd<<endl;
  40.     }
  41. };
  42.  
  43. void SortRS(Proizvod *niza, int brP)
  44. {
  45.     for(int i = 0; i < brP; i++)
  46.         for(int j = i+1; j < brP; j++)
  47.         if(niza[j].getShifra()<niza[i].getShifra())
  48.     {
  49.         Proizvod temp;
  50.         temp = niza[i]; // samo ako nema dinamicka alokacija
  51.         niza[i] = niza[j];
  52.         niza[j] = temp;
  53.     }
  54.     for(int i = 0; i < brP;i++)
  55.         niza[i].pechati();
  56. }
  57.  
  58. void SortOS(Proizvod *niza, int brP)
  59. {
  60.     for(int i = 0; i < brP; i++)
  61.         for(int j = i+1; j < brP; j++)
  62.         if(niza[j].getShifra() > niza[i].getShifra())
  63.     {
  64.         Proizvod temp;
  65.         temp = niza[i]; // samo ako nema dinamicka alokacija
  66.         niza[i] = niza[j];
  67.         niza[j] = temp;
  68.     }
  69.     for(int i = 0; i < brP;i++)
  70.         niza[i].pechati();
  71. }
  72.  
  73. void SortRK(Proizvod *niza, int brP)
  74. {
  75.     for(int i = 0; i < brP; i++)
  76.         for(int j = i+1; j < brP; j++)
  77.         if(niza[j].getkolZal()<niza[i].getkolZal())
  78.     {
  79.         Proizvod temp;
  80.         temp = niza[i]; // samo ako nema dinamicka alokacija
  81.         niza[i] = niza[j];
  82.         niza[j] = temp;
  83.     }
  84.     for(int i = 0; i < brP;i++)
  85.         niza[i].pechati();
  86. }
  87.  
  88. void SortOK(Proizvod *niza, int brP)
  89. {
  90.     for(int i = 0; i < brP; i++)
  91.         for(int j = i+1; j < brP; j++)
  92.         if(niza[j].getkolZal() > niza[i].getkolZal())
  93.     {
  94.         Proizvod temp;
  95.         temp = niza[i]; // samo ako nema dinamicka alokacija
  96.         niza[i] = niza[j];
  97.         niza[j] = temp;
  98.     }
  99.     for(int i = 0; i < brP;i++)
  100.         niza[i].pechati();
  101. }
  102.  
  103. int main()
  104. {
  105.     Proizvod proizvodi[4] = {Proizvod("Koka kola", 103,10,100), Proizvod("sprite",24,2,20),Proizvod("hamburger",5,2,20),Proizvod("ajvar",3,10,25)};
  106.  
  107.     int brP = 4;
  108.  
  109.     cout<<"Drag korisniku, vnesete kako sakate da sortirame:"<<endl;
  110.     int ks;
  111.     cin>>ks;
  112.     if((ks!=1)&&(ks!=2))
  113.         ks = 1;
  114.     cout<<"vnesete dali po rastecki ili opagjacki redosled:"<<endl;
  115.     int rr;
  116.     cin>>rr;
  117.  
  118.     if((rr!=1)&&(rr!=2))
  119.         rr = 1;
  120.  
  121.     if (ks == 1)
  122.     {
  123.         if(rr == 1)
  124.             SortOS(proizvodi, brP);
  125.         else
  126.             SortOS(proizvodi, brP);
  127.  
  128.     }
  129.     else
  130.         {
  131.         if(rr == 1)
  132.             SortRK(proizvodi,brP);
  133.         else
  134.             SortOK(proizvodi, brP);
  135.         }
  136.     return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement