Advertisement
DavidAnastasov

Kiko Zadaca

Jun 11th, 2022
1,210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.75 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Kniga{
  6. private:
  7.     string naslov, avtor, zanr;
  8.     int broj_strani;
  9.  
  10. public:
  11.     Kniga() {
  12.         broj_strani = 0;
  13.     };
  14.    
  15.     // Geteri, Vrakjanje na argumenti / pristapuvanje na privatni atributi
  16.     string getNaslov() {
  17.         return naslov;
  18.     }
  19.    
  20.     string getAvtor() {
  21.         return avtor;
  22.     }
  23.    
  24.     string getZanr() {
  25.         return zanr;
  26.     }
  27.    
  28.     int getBrojNaStrani() {
  29.         return broj_strani;
  30.     }
  31.    
  32.     // Seteri, Postavuvanje na atributi
  33.     void setNaslov(string n) {
  34.         naslov = n;
  35.     }
  36.  
  37.     void setAvtor(string a) {
  38.         avtor = a;
  39.     }
  40.    
  41.     void setZanr(string z) {
  42.         zanr = z;
  43.     }
  44.    
  45.     void setBrojNaStrani(int broj) {
  46.         broj_strani = broj;
  47.     }
  48.    
  49.     void pecatiforma(){
  50.         cout<<naslov<<" "<<avtor<<" "<<broj_strani<<" "<<zanr<<endl;
  51.     }
  52. };
  53.  
  54. int najdiKnigiSoZanrBeletristika(Kniga* biblioteka, int broj_na_knigi){
  55.     int brojac = 0;
  56.    
  57.     for(int i=0; i<broj_na_knigi; i++){
  58.         Kniga k = biblioteka[i];
  59.    
  60.         if(k.getZanr() == "beletristika"){
  61.             brojac++;
  62.         }
  63.     }
  64.    
  65.     return brojac;
  66. }
  67.  
  68. Kniga najdiKnigaSoNajgolemBrojNaStranici(Kniga* biblioteka, int broj_na_knigi){
  69.     Kniga kniga_najgolem_broj_na_stranici;
  70.    
  71.     for(int i=0; i<broj_na_knigi; i++){
  72.         Kniga k = biblioteka[i];
  73.    
  74.         if(k.getBrojNaStrani() > kniga_najgolem_broj_na_stranici.getBrojNaStrani()){
  75.             kniga_najgolem_broj_na_stranici = k;
  76.         }
  77.     }
  78.    
  79.     return kniga_najgolem_broj_na_stranici;
  80. }
  81.  
  82. void sortirajKnigiPoBrojNaStranici(Kniga* biblioteka, int broj_na_knigi){
  83.     for(int i=0; i<broj_na_knigi; i++){
  84.         for (int j = i + 1; j < broj_na_knigi; j++) {
  85.             if (biblioteka[i].getBrojNaStrani() > biblioteka[j].getBrojNaStrani()) {
  86.                 Kniga pom = biblioteka[i];
  87.                 biblioteka[i] = biblioteka[j];
  88.                 biblioteka[j] = pom;
  89.             }
  90.         }
  91.     }
  92. }
  93.    
  94. int main() {
  95.     int broj_na_knigi;
  96.    
  97.     cout << "Kolku knigi ke vnesete?"<<endl;
  98.     cin >> broj_na_knigi;
  99.    
  100.     if (broj_na_knigi > 100) {
  101.         cout << "Vnesovte pregolem broj na knigi" << endl;
  102.     }
  103.    
  104.     Kniga biblioteka[broj_na_knigi];
  105.    
  106.     for(int i = 0; i < broj_na_knigi; i++){
  107.         cout << "Vnesuvate elementi za kniga " << i + 1 << "/" << broj_na_knigi << endl;
  108.        
  109.         string naslov, avtor, zanr;
  110.         int broj_strani;
  111.        
  112.         cout<<"Vnesete go imeto na knigata"<<endl;
  113.         cin>> naslov;
  114.         cout<<"Vnesete go imeto na avtorot"<<endl;
  115.         cin>> avtor;
  116.         cout<<"Vnesete go brojot na strani"<<endl;
  117.         cin>> broj_strani;
  118.         cout<<"Vnesete go zanrot na knigata"<<endl;
  119.         cin>> zanr;
  120.        
  121.         Kniga k;
  122.         k.setNaslov(naslov);
  123.         k.setAvtor(avtor);
  124.         k.setZanr(zanr);
  125.         k.setBrojNaStrani(broj_strani);
  126.        
  127.         biblioteka[i] = k;
  128.     }
  129.  
  130.     for(int i=0; i < broj_na_knigi; i++) {
  131.         Kniga k = biblioteka[i];
  132.         k.pecatiforma();
  133.     }
  134.    
  135.     int brojac = najdiKnigiSoZanrBeletristika(biblioteka, broj_na_knigi);
  136.     cout<<"Knigi so zanr beletristika ima "<<brojac<<endl;
  137.    
  138.     Kniga kniga_najgolem_broj_na_stranici = najdiKnigaSoNajgolemBrojNaStranici(biblioteka, broj_na_knigi);
  139.     cout << "Kniga so najgolem broj na stranici:" << endl;
  140.     kniga_najgolem_broj_na_stranici.pecatiforma();
  141.    
  142.     cout << "Knigite se podreduvaat po broj na stranici" << endl;
  143.    
  144.     sortirajKnigiPoBrojNaStranici(biblioteka, broj_na_knigi);
  145.    
  146.     for(int i=0; i < broj_na_knigi; i++) {
  147.         Kniga k = biblioteka[i];
  148.         k.pecatiforma();
  149.     }
  150.    
  151.     return 0;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement