Crazy

Влезници

May 18th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class Vleznica {
  6.     protected:
  7.     char natprevar[50];
  8.     int ocena;
  9.    
  10.     public:
  11.     Vleznica(char *n, int c)
  12.     {
  13.     strcpy(natprevar, n);
  14.         ocena=c;
  15.     }
  16.    
  17.     virtual float cena()=0;
  18.    
  19.     char *getNatprevar(){return natprevar;}
  20.    
  21.     virtual ~Vleznica(){}
  22.    
  23.  
  24.  
  25.  
  26. };
  27.  
  28. class VleznicaSedenje : public Vleznica {
  29.     private:
  30.     int blok, red;
  31.    
  32.     public:
  33.     VleznicaSedenje(char *n, int c, int b, int r):Vleznica(n,c)
  34.     {
  35.         blok = b;
  36.         red = r;
  37.    
  38.     }
  39.    
  40.     float cena(){
  41.         if(red<8) return (ocena*0.4)+ocena;
  42.         else if (red>=8&&red <=15) return ocena + (ocena*0.2);
  43.             else
  44.             return ocena;
  45.    
  46.     }
  47.  
  48.  
  49.  
  50. };
  51.  
  52. class VleznicaStoenje : public Vleznica {
  53.     private:
  54.     char tribina;
  55.    
  56.     public:
  57.    
  58.     VleznicaStoenje(char *n, int c, char t):Vleznica(n,c)
  59.     {
  60.     tribina=t;
  61.     }
  62.    
  63.     float cena(){
  64.         if(tribina == 'S')
  65.             return ocena+(ocena*0.3);
  66.         else
  67.             return ocena;
  68.    
  69.    
  70.     }
  71.  
  72.  
  73.  
  74.  
  75. };
  76.  
  77. void najmalaCena(Vleznica **vleznici, int broj){
  78.    
  79.     int temp = 0;
  80.     float min = vleznici[0] -> cena();
  81.     for(int i = 0 ; i < broj; i++){
  82.         if (vleznici[i] -> cena() < min){
  83.     min = vleznici[i] -> cena();
  84.             temp = i;}
  85.     }
  86.    
  87.     cout<<vleznici[temp] -> getNatprevar() << endl;
  88.     cout<<vleznici[temp] -> cena() << endl;
  89.  
  90.  
  91.  
  92. }
  93.  
  94. int main() {
  95.     int n;
  96.     cin >> n;
  97.     Vleznica** vleznici = new Vleznica*[n];
  98.     for(int i = 0; i < n; ++i) {   
  99.         char ime[30];
  100.         float osnovnaCena;
  101.         cin >> ime >> osnovnaCena;
  102.         if(i % 2) {
  103.             int blok, red;
  104.             cin >> blok >> red;
  105.             vleznici[i] = new VleznicaSedenje(ime, osnovnaCena, blok, red);
  106.         } else {
  107.             char tribina;
  108.             cin >> tribina;
  109.             vleznici[i] = new VleznicaStoenje(ime, osnovnaCena, tribina);
  110.         }
  111.     }
  112.  
  113.     najmalaCena(vleznici, n);
  114.  
  115.     for(int i = 0; i < n; ++i) {
  116.         delete vleznici[i];
  117.     }
  118.     delete [] vleznici;
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment