Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.11 KB | None | 0 0
  1.  
  2. package lab01;
  3.  
  4. //-------------------------------------------------------------------------------
  5.     interface UkladNapedowyFunkcjonalnosc
  6.     {
  7.         public void start();
  8.         public void stop();
  9.         public float wysterujMoc(float ile);
  10.     }
  11.  
  12.     abstract class UkladNapedowy implements UkladNapedowyFunkcjonalnosc
  13.     {
  14.         public final float moc;
  15.        
  16.         public enum Rodzaj{SPALINOWY,ELEKTRYCZNY, HYBRYDOWY};
  17.        
  18.         Rodzaj rodzaj;
  19.         UkladNapedowy(float moc, Rodzaj rodzaj)
  20.         {
  21.             this.moc=moc;
  22.             this.rodzaj=rodzaj;
  23.         }
  24.     }
  25.  
  26.     class UkladNapedowyHybrydowy extends UkladNapedowy
  27.     {
  28.         private boolean elektryczny;
  29.         private float przepustowosc;
  30.        
  31.        
  32.         public UkladNapedowyHybrydowy(float moc)
  33.         {
  34.             super(moc,UkladNapedowy.Rodzaj.HYBRYDOWY);
  35.             przepustowosc=0.1f;
  36.             elektryczny=true;
  37.            
  38.         }
  39.        
  40.          public void start()
  41.         {
  42.             System.out.println("Uruchamiam hybrydowy");
  43.             elektryczny=true;
  44.             przepustowosc=0.1f;
  45.         }
  46.         public void stop()
  47.         {
  48.             System.out.println("Zatrzymuje hybryde");
  49.             elektryczny=false;
  50.             przepustowosc=0f;
  51.         }
  52.         public float wysterujMoc(float ile)
  53.         {
  54.             System.out.println("Hybrydowy: zwiekszam moc");
  55.             przepustowosc+=ile;
  56.             if(przepustowosc>=0.8) System.out.println("Przelaczam silnik hybrydowy na benzyne");
  57.             System.out.println("Moc: "+przepustowosc);
  58.             return przepustowosc;
  59.            
  60.         }
  61.     }
  62.     class UkladNapedowySpalinowy extends UkladNapedowy
  63.     {
  64.         public final float pojemnosc;
  65.         private boolean zawory;
  66.         private float przepustowosc_zaworu;
  67.      
  68.         public UkladNapedowySpalinowy(float moc, float pojemnosc)
  69.             {
  70.             super(moc,UkladNapedowy.Rodzaj.SPALINOWY);
  71.             this.pojemnosc=pojemnosc;
  72.             zawory=false;
  73.             przepustowosc_zaworu=0f;
  74.             }
  75.         public void start()
  76.         {
  77.             System.out.println("Uruchamiam spalinowy");
  78.             zawory=true;
  79.             przepustowosc_zaworu=0.1f;
  80.         }
  81.         public void stop()
  82.         {
  83.             System.out.println("Zatrzymuje spalinowy");
  84.             zawory=false;
  85.             przepustowosc_zaworu=0f;
  86.         }
  87.         public float wysterujMoc(float ile)
  88.         {
  89.             System.out.println("Spalinowy: zwiekszam moc");
  90.             przepustowosc_zaworu+=ile;
  91.             return przepustowosc_zaworu;
  92.         }
  93.     }
  94.     class UkladNapedowyElektryczny extends UkladNapedowy
  95.     {
  96.         private boolean wlacznik_glowny;
  97.         private float rezystancja;
  98.        
  99.         public UkladNapedowyElektryczny(float moc)
  100.         {
  101.             super(moc, UkladNapedowy.Rodzaj.ELEKTRYCZNY);
  102.             wlacznik_glowny=false;
  103.             rezystancja=0f;
  104.         }
  105.        
  106.         public void start()
  107.         {
  108.             System.out.println("Elektryczny uruchamiam");
  109.             wlacznik_glowny=true;
  110.         }
  111.         public void stop()
  112.         {
  113.             System.out.println("Elektryczny wylaczam");
  114.             wlacznik_glowny=false;
  115.         }
  116.         public float wysterujMoc(float ile)
  117.         {
  118.             System.out.println("Elektryczny zwieksza moc");          
  119.             return 0;
  120.         }
  121.        
  122.     }
  123.     //-------------------------------------------------------------------------------
  124.  
  125.  
  126.    
  127.     class UkladHamulcowy
  128.     {
  129.         private boolean error;
  130.         public final float maksymalna_sila;
  131.  
  132.         public UkladHamulcowy(float maksymalna_sila) {
  133.             error=false;
  134.             this.maksymalna_sila = maksymalna_sila;
  135.         }
  136.        
  137.         boolean czySprawny()
  138.         {
  139.             return !error;
  140.         }
  141.        
  142.         void hamuj(float sila)
  143.         {
  144.             System.out.println("Hamuje sila="+sila);
  145.             if(sila>maksymalna_sila) error=true;
  146.         }
  147.        
  148.     }
  149.  
  150.     class Podloga
  151.     {
  152.         public final float szerokosc, dlugosc;
  153.         Podloga(float szerokosc, float dlugosc)
  154.         {
  155.          
  156.             System.out.println("Tworzy sie podloga");
  157.             this.szerokosc=szerokosc;
  158.             this.dlugosc=dlugosc;
  159.         }
  160.     }
  161.    
  162.     class Nadwozie
  163.     {
  164.         public final float wysokosc;
  165.         public byte liczbaFoteli;
  166.             public Nadwozie(float wysokosc, byte liczbaFoteli)
  167.             {
  168.                 System.out.println("Tworzy sie nadwozie");
  169.                 this.wysokosc=wysokosc;
  170.                 this.liczbaFoteli=liczbaFoteli;
  171.             }
  172.     }
  173.    
  174.      class Samochod{
  175.         float predkosc;
  176.         private float maksymalna_sila_hamowania;
  177.        
  178.         protected Podloga plyta;//plyta podlogowa
  179.         protected Nadwozie paka;//Nadwozie
  180.         protected UkladHamulcowy hamulce;//Uklad Hamulcowy
  181.         protected UkladNapedowy naped;//Uklad napedowy
  182.          
  183.             public Samochod(float szerokosc, float dlugosc, float wysokosc, byte liczbaFoteli,
  184.                     UkladNapedowy.Rodzaj rodzaj, float moc, float pojemnosc)
  185.             {
  186.                 predkosc=0f;
  187.                 maksymalna_sila_hamowania=100f;
  188.                 paka=new Nadwozie(wysokosc, liczbaFoteli);
  189.                 plyta=new Podloga(szerokosc, dlugosc);
  190.                 hamulce=new UkladHamulcowy(maksymalna_sila_hamowania);
  191.                
  192.                 switch(rodzaj)
  193.                 {
  194.                     case SPALINOWY: naped = new UkladNapedowySpalinowy(moc,pojemnosc); break;
  195.                     case ELEKTRYCZNY: naped = new UkladNapedowyElektryczny(moc);break;
  196.                     case HYBRYDOWY: naped = new UkladNapedowyHybrydowy(moc);break;
  197.                     default: naped = null;
  198.                 }
  199.             }
  200.            
  201.             public void start(){naped.start();}
  202.             public void stop(){naped.stop();}
  203.             public void nacisnijGaz(float ile) {predkosc+=naped.wysterujMoc(ile);}
  204.             public void hamuj (float sila){hamulce.hamuj(sila);}
  205.      }
  206.  
  207.  public class Lab01
  208. {  
  209.    
  210.     public static void main(String[] args) {
  211.        
  212.         Samochod S1=new Samochod (2.2f,6f,1.4f, (byte)5, UkladNapedowy.Rodzaj.ELEKTRYCZNY, 60f,0f);
  213.         Samochod S2=new Samochod (2.24f,8f,1.6f,(byte)7, UkladNapedowy.Rodzaj.SPALINOWY,100f,2.2f);
  214.         Samochod S3=new Samochod (3.24f,9f,1.8f,(byte)4, UkladNapedowy.Rodzaj.HYBRYDOWY,80f,1.2f);
  215.          
  216.         System.out.println("\n\n\nSamochod Elektryczny");
  217.         S1.start();
  218.         S1.nacisnijGaz(10);
  219.         S1.nacisnijGaz(20);
  220.         S1.hamuj(12);
  221.         S1.stop();
  222.        
  223.         System.out.println("\n\n\nSamochod Spalinowy");
  224.         S2.start();
  225.         S2.nacisnijGaz(10);
  226.         S2.nacisnijGaz(20);
  227.         S2.hamuj(12);
  228.         S2.stop();
  229.        
  230.         System.out.println("\n\n\nSamochod Hybrydowy");
  231.         S3.start();
  232.         S3.nacisnijGaz(11);
  233.         S3.hamuj(14);
  234.         S3.stop();
  235.        
  236.        
  237.        
  238.     }
  239.    
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement