Advertisement
Josif_tepe

Untitled

May 12th, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.19 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. class ImaMasa{
  5. public:
  6.    virtual double VratiMasa()=0;
  7.    virtual void pecati()=0;
  8.     virtual ~ImaMasa() {
  9.        
  10.     }
  11. };
  12. class PaketPijalok:public ImaMasa{
  13. private:
  14.     double volumenEden;
  15.     int Kolicina;
  16. public:
  17.     static double gustina;
  18.     static double volumen;
  19.     static double masa;
  20.     PaketPijalok(){}
  21.     PaketPijalok(double v, int k){
  22.         volumenEden=v;
  23.         Kolicina=k;
  24.     }
  25.     ~PaketPijalok(){}
  26.      double VratiMasa()override{
  27.          return gustina*volumen*masa;
  28.          
  29.      }
  30.     void pecati()override
  31.     {
  32.        
  33.     }
  34.     int getKolicina(){
  35.         return Kolicina;
  36.     }
  37.    
  38.    
  39. };
  40. double PaketPijalok::gustina = 0.8;
  41. double PaketPijalok::masa = 0.2;
  42. double PaketPijalok::volumen = 1;
  43. class PaketSok: public ImaMasa{
  44. private:
  45.      double volumenEden;
  46.     int Kolicina;
  47.     bool daliGaziran;
  48.     public:
  49.     PaketSok() {
  50.        
  51.     }
  52.     PaketSok(int v, int k,  bool g){
  53.         volumenEden = v;
  54.         Kolicina = k;
  55.         daliGaziran = g;
  56.     }
  57.     double VratiMasa()override{
  58.         return 0;
  59.     }
  60.     void pecati()override;
  61. };
  62. class PaketVino: public ImaMasa{
  63.     private:
  64.       double VolumenEden;
  65.     int Kolicina;
  66.     double procentAlkohol;
  67.     public:
  68.     PaketVino(int v, int k, double p) {
  69.         VolumenEden = v;
  70.         Kolicina = k;
  71.         procentAlkohol = p;
  72.     }
  73.     double VratiMasa()override{
  74.         return 0.9+procentAlkohol;
  75.     }
  76.     void pecati()override;
  77.     double getProcentAlkohol() {
  78.         return procentAlkohol;
  79.     }
  80. };
  81. class Kamion{
  82. private:
  83.     char* registracija;
  84.     char* vozac;
  85.     ImaMasa** elementi;
  86.     int golemina=0;
  87. public:
  88.     Kamion(){
  89.         elementi = new ImaMasa*[1001];
  90.         golemina = 0;
  91.     }
  92.     Kamion(char* r,char *v){
  93.         elementi = new ImaMasa*[1001];
  94.         vozac=new char[strlen(v)];
  95.         strcpy(vozac,v);
  96.         registracija=new char[strlen(r)];
  97.         strcpy(registracija,r);
  98.         try{
  99.             if (strlen(registracija)!=8)
  100.             {
  101.                 throw "Pogresno vnesena registracija!";
  102.             }
  103.             if(isalpha(registracija[0])&&isalpha(registracija[1])&&isalpha(registracija[6])&&isalpha(registracija[6])){
  104.                                                                            
  105.                                                                            }
  106.                                                                            else{
  107.                                                                             throw "Pogresno vnesena registracija!";
  108.                                                                            }
  109.         }
  110.         catch(const char* c){
  111.             cout<<c<<endl;
  112.         }
  113.        
  114.     }
  115.     void registriraj(char*){
  116.        
  117.     }
  118.     void dodadiElement(ImaMasa* k){
  119.         elementi[golemina] = k;
  120.         golemina++;
  121.     }
  122.    
  123.      double vratiVkupnaMasa() {
  124.          double masa = 0;
  125.          for(int i=0;i<golemina;i++){
  126.              masa+= elementi[i]->VratiMasa();
  127.          }
  128.          return masa;
  129.      }
  130.      void pecati(){
  131.          for(int i=0;i<golemina;i++){
  132.              elementi[i]->pecati();
  133.                
  134.      }
  135.      }
  136.      Kamion pretovar(char* r, char*v ) {
  137.          Kamion k(r,v);
  138.          ImaMasa** niza = new ImaMasa*[1001];
  139.          int maxx=0;
  140.          for(int i=0;i<golemina;i++){
  141.              if(maxx<elementi[i]->VratiMasa()){
  142.                 maxx=elementi[i]->VratiMasa();
  143.              }
  144.                
  145.            
  146.          }
  147.          int golemina_2=0;
  148.          for(int i=0;i<golemina;i++){
  149.                 if(maxx==elementi[i]->VratiMasa()){
  150.                    
  151.                 }
  152.                 else{
  153.                     niza[golemina_2] = elementi[i];
  154.                     golemina_2++;
  155.                 }
  156.            
  157.          }
  158.          k.golemina=golemina_2;
  159.          for(int i = 0; i < golemina_2; i++) {
  160.              k.elementi[i] = niza[i];
  161.          }
  162.          return k;
  163.      }
  164.  
  165. };
  166.  
  167. int main()
  168. {
  169.     char ime[20], reg[9];
  170.     double vol;
  171.     int kol;
  172.     bool g;
  173.     double proc;
  174.    
  175.             cin>>reg;
  176.             cin>>ime;
  177.             Kamion A(reg, ime);
  178.             ImaMasa **d = new ImaMasa*[5];
  179.             cin>>vol>>kol;
  180.             cin>>g;
  181.             d[0] = new PaketSok(vol, kol, g);
  182.             cin>>vol>>kol;
  183.             cin>>proc;
  184.             d[1] = new PaketVino(vol, kol, proc);
  185.             cin>>vol>>kol;
  186.             cin>>proc;
  187.             d[2] = new PaketVino(vol, kol, proc);
  188.             cin>>vol>>kol;
  189.             cin>>g;
  190.             d[3] = new PaketSok(vol, kol, g);
  191.             cin>>vol>>kol;
  192.             cin>>proc;
  193.             d[4] = new PaketVino(vol, kol, proc);
  194.  
  195.             A.dodadiElement(d[0]);
  196.             A.dodadiElement(d[1]);
  197.             A.dodadiElement(d[2]);
  198.             A.dodadiElement(d[3]);
  199.             A.dodadiElement(d[4]);
  200.             A.pecati();
  201.             cout<<"Vkupna masa: "<<A.vratiVkupnaMasa()<<endl;
  202.             cin>>reg;
  203.             cin>>ime;
  204.             Kamion B = A.pretovar(reg, ime);
  205.             B.pecati();
  206.             cout<<"Vkupna masa: "<<B.vratiVkupnaMasa()<<endl;
  207.  
  208. }
  209.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement