Advertisement
Guest User

Untitled

a guest
Feb 28th, 2015
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6.  
  7.  
  8. #define N 20
  9. //----------------------------------------------
  10. enum typ_zwierza {
  11.     MYSZ, KOT, PIES
  12. };
  13.  
  14. enum metoda_sortowania{
  15.     wiek, imie_wiek, typ_imie_wiek
  16. };
  17. //----------------------------------------------
  18. struct zwierz{
  19.  
  20.     typ_zwierza typ;
  21.     string imie;
  22.     int wiek;
  23.  
  24.     void wypisz_zwierza() const;
  25. };
  26.  
  27.  
  28. void zwierz::wypisz_zwierza() const
  29. {
  30.     cout<<typ<<"imie: "<<imie<<" wiek: "<<wiek;
  31.  
  32. }
  33.  
  34. void wypisz(struct zwierz tablica[],int ilosc)
  35. {
  36.     for(int i=0;i<ilosc;i++)
  37.     {
  38.     tablica[i].wypisz_zwierza();
  39.     cout<<endl;
  40.     }
  41. }
  42.  
  43. void sort_wg_wieku (struct zwierz tablica[], int ilosc)
  44. {
  45.         for(int i=0;i<ilosc-1;i++)
  46.         {
  47.         for(int j=0;j<ilosc-1;j++)
  48.         {
  49.         if( tablica[j].wiek>tablica[j+1].wiek)
  50.             {
  51.             struct zwierz temp=tablica[j];
  52.             tablica[j]=tablica[j+1];
  53.             tablica[j+1]=temp;
  54.             }
  55.         }
  56.         }
  57. }
  58.  
  59.  
  60. void sort_wg_imienia (struct zwierz tablica[], int ilosc)
  61. {
  62.         for(int i=0;i<ilosc-1;i++)
  63.         {
  64.         for(int j=0;j<ilosc-1;j++)
  65.         {
  66.         if( tablica[j].imie>tablica[j+1].imie)
  67.             {
  68.             struct zwierz temp=tablica[j];
  69.             tablica[j]=tablica[j+1];
  70.             tablica[j+1]=temp;
  71.             }
  72.         }
  73.         }
  74. }
  75.  
  76.  
  77. void sort_wg_typu (struct zwierz tablica[], int ilosc)
  78. {
  79.             for(int i=0;i<ilosc-1;i++)
  80.         {
  81.         for(int j=0;j<ilosc-1;j++)
  82.         {
  83.         if( tablica[j].typ>tablica[j+1].typ)
  84.             {
  85.             struct zwierz temp=tablica[j];
  86.             tablica[j]=tablica[j+1];
  87.             tablica[j+1]=temp;
  88.             }
  89.         }
  90.         }
  91. }
  92.  
  93.  
  94. void sortuj(struct zwierz tablica[],int ilosc, metoda_sortowania metoda)
  95. {
  96.     if(metoda==wiek)
  97.     {
  98.         sort_wg_wieku (tablica, ilosc);
  99.     }
  100.     else if(metoda==imie_wiek)
  101.     {
  102.         sort_wg_wieku (tablica, ilosc);
  103.         sort_wg_imienia (tablica, ilosc);
  104.     }
  105.     else if(metoda==typ_imie_wiek)
  106.     {
  107.         sort_wg_wieku (tablica, ilosc);
  108.         sort_wg_imienia (tablica, ilosc);
  109.         sort_wg_typu (tablica, ilosc);
  110.     }
  111.  
  112.  
  113. }
  114.  
  115. int main()
  116. {
  117.  
  118.     zwierz zoo[]={  {PIES,"Reksio",5},{KOT,"Mruczek",4},{KOT,"Bonifacy",3},{KOT,"Leniwiec",2},
  119.                     {PIES,"Pimpek",4},{PIES,"Reksio",3},{KOT,"Mruczek",2},{MYSZ,"Gryzunia",3},
  120.                     {MYSZ,"Lola",5},{KOT,"Filutek",2},{MYSZ,"Frania",2},{MYSZ,"Gryzunia",1}};
  121.  
  122.     int n=sizeof(zoo)/sizeof(zwierz);
  123.     int K;
  124.  
  125.     do{
  126.                 cout<<endl<<"ZOO:"<<endl;
  127.                 wypisz(zoo,n);
  128.  
  129.                 cout<<"\nMENU:";
  130.                 cout<<"\n1 - zoo wg wiek";
  131.                 cout<<"\n2 - zoo wg imie_wiek";
  132.                 cout<<"\n3 - zoo wg typ_imie_wiek";
  133.                 cout<<"\n0 - KONIEC";
  134.                 cout<<"\n*** Podaj numer opcji:  ";
  135.  
  136.                 cin>>K;
  137.                 switch (K)
  138.                 {
  139.                     case 1: //zoo wg wiek
  140.                         sortuj(zoo,n,wiek);
  141.                         break;
  142.  
  143.                    case 2:  //zoo wg imie_wiek
  144.                         sortuj(zoo,n,imie_wiek);
  145.                         break;
  146.  
  147.                     case 3: //zoo wg typ_imie_wiek
  148.                         sortuj(zoo,n,typ_imie_wiek);
  149.                         break;
  150.                 }//switch
  151.  
  152.  
  153.     }while (K!=0);
  154.  
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement