Advertisement
niske

Dodatni - ListeListi

May 10th, 2024 (edited)
613
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.68 KB | None | 0 0
  1. public class Dodatni{
  2.    
  3.     public static void main (String[] args) {
  4.         RacunarskeUcionice pmf = new RacunarskeUcionice();
  5.        
  6.         pmf.dodajUcionicu("Red");
  7.             pmf.dodajOpremu("Drveno", "Sto", 1);
  8.             pmf.dodajOpremu("Predmet", "Hemijska", 1);
  9.             pmf.dodajOpremu("Racunar", "LG", 1);
  10.             pmf.dodajOpremu("Racunar", "Dell", 1);
  11.         pmf.dodajUcionicu("Blue");
  12.             pmf.dodajOpremu("Racunar", "LG", 2);
  13.             pmf.dodajOpremu("Racunar", "LG", 2);
  14.             pmf.dodajOpremu("Racunar", "Asus", 2);
  15.             pmf.dodajOpremu("Racunar", "LG", 2);
  16.         pmf.dodajUcionicu("Green");
  17.             pmf.dodajOpremu("Drveno", "Sto", 3);
  18.             pmf.dodajOpremu("Racunar", "LG", 3);
  19.             pmf.dodajOpremu("Drveno", "Stolica", 3);
  20.         pmf.dodajUcionicu("Red");
  21.             pmf.dodajOpremu("Drveno", "Sto", 4);
  22.             pmf.dodajOpremu("Plastika", "Hemijska", 4);
  23.             pmf.dodajOpremu("Drveno", "Sto", 4);
  24.             pmf.dodajOpremu("Drveno", "Stolica", 4);
  25.         pmf.dodajUcionicu("Yellow");
  26.        
  27.         pmf.dodajOpremuNajmanju("Papirno", "Sveska");
  28.        
  29.         System.out.println(pmf);
  30.        
  31.         pmf.ispisiOpremuSaBojom("Red");
  32.        
  33.         System.out.println(pmf.prebrojTip("Racunar"));
  34.    
  35.         pmf.izbaciOpremu("Racunar", 2);
  36.        
  37.         System.out.println(pmf);
  38.        
  39.        
  40.     }
  41. }  
  42.     class RacunarskeUcionice{
  43.         //Ucionica
  44.         class Ucionica{
  45.             public String boja;
  46.             Oprema prvaOprema;
  47.             Ucionica veza;
  48.            
  49.             public Ucionica(String boja){
  50.                 this.boja = boja;
  51.                 this.prvaOprema = null;
  52.                 this.veza = null;
  53.             }
  54.            
  55.             public int prebrojOpremu(){
  56.                 int brojac = 0;
  57.                 Oprema tek = prvaOprema;
  58.                 while(tek != null){
  59.                     brojac++;
  60.                     tek = tek.veza;
  61.                 }
  62.                
  63.                 return brojac;
  64.            
  65.            
  66.             }
  67.            
  68.             public String toString(){
  69.                 String s = "Boja ~ " + boja;
  70.                 Oprema tek = prvaOprema;
  71.                 while(tek != null){
  72.                     s += "\n" + tek;
  73.                     tek = tek.veza;
  74.                 }
  75.                
  76.                 return s;
  77.             }
  78.         }
  79.        
  80.         //Oprema
  81.         class Oprema{
  82.             public String tip;
  83.             public String opis;
  84.             Oprema veza;
  85.            
  86.             public Oprema(String tip, String opis){
  87.                 this.tip = tip;
  88.                 this.opis = opis;
  89.                 this.veza = null;
  90.             }
  91.            
  92.             public String toString(){
  93.                 return tip + " - " + opis;
  94.             }
  95.         }
  96.        
  97.         Ucionica prvaUcionica = null;
  98.        
  99.         //Metode
  100.        
  101.         public void dodajUcionicu(String boja){
  102.             if(prvaUcionica == null){
  103.                 prvaUcionica = new Ucionica(boja);
  104.             } else {
  105.                 Ucionica tek = prvaUcionica;
  106.                 while(tek.veza != null)
  107.                     tek = tek.veza;
  108.                
  109.                 Ucionica novi = new Ucionica(boja);
  110.                 tek.veza = novi;
  111.             }
  112.         }
  113.        
  114.        
  115.         public int brojUcionica(){
  116.             Ucionica tek = prvaUcionica;
  117.             int brojac = 0;
  118.             while(tek != null){
  119.                 tek = tek.veza;
  120.                 brojac++;
  121.             }
  122.            
  123.             return brojac;
  124.         }
  125.        
  126.  
  127.         public boolean dodajOpremu(String tip, String opis, int brUcionice){
  128.             if (brUcionice < 1 || brojUcionica() < brUcionice){
  129.                 return false;
  130.             }
  131.            
  132.            
  133.            
  134.             Oprema nova = new Oprema(tip, opis);
  135.             Ucionica tek = prvaUcionica;
  136.            
  137.             for (int i = 1; i < brUcionice; i++){
  138.                 tek = tek.veza;
  139.             }
  140.            
  141.             Oprema pomocna = tek.prvaOprema;
  142.             boolean postojiDuplikat = false;
  143.            
  144.             while(pomocna != null){
  145.                 if(pomocna.tip.equals(tip)){
  146.                     postojiDuplikat = true;
  147.                     break;
  148.                 }
  149.                 pomocna = pomocna.veza;
  150.             }
  151.            
  152.             Oprema tekOprema = tek.prvaOprema;
  153.            
  154.             if(postojiDuplikat){
  155.                 while(!(tekOprema.tip.equals(tip)))
  156.                     tekOprema = tekOprema.veza;
  157.                
  158.                 Oprema sledeci = tekOprema.veza;
  159.                 tekOprema.veza = nova;
  160.                
  161.                 if(sledeci != null){
  162.                     nova.veza = sledeci;
  163.                    
  164.                 }
  165.                
  166.                
  167.             } else{
  168.                
  169.                 tek.prvaOprema = nova;
  170.                 nova.veza = tekOprema;
  171.             }
  172.            
  173.             return true;
  174.         }
  175.        
  176.        
  177.         public void ispisiOpremuSaBojom(String boja){
  178.             Ucionica tek = prvaUcionica;
  179.             int brojac = 1;
  180.             while (tek != null){
  181.                 if(tek.boja.equals(boja)){
  182.                     System.out.println("Ucionica " + brojac);
  183.                     System.out.println(tek + "\n");
  184.                 }
  185.                 brojac++;
  186.                 tek = tek.veza;
  187.             }
  188.         }
  189.        
  190.        
  191.         public int prebrojTip(String tip){
  192.             int brojac = 0;
  193.             Ucionica tekUcionica = prvaUcionica;
  194.            
  195.             while(tekUcionica != null){
  196.                 Oprema tekOprema = tekUcionica.prvaOprema;
  197.                 while(tekOprema != null){
  198.                     if(tekOprema.tip.equals(tip)){
  199.                         brojac++;
  200.                     }
  201.                     tekOprema = tekOprema.veza;
  202.                 }
  203.                
  204.                 tekUcionica = tekUcionica.veza;
  205.             }
  206.            
  207.             return brojac;
  208.         }
  209.        
  210.        
  211.         public void dodajOpremuNajmanju(String tip, String opis){
  212.             Ucionica tek = prvaUcionica;
  213.             int min = tek.prebrojOpremu();
  214.             int pozicija = 1;
  215.             while(tek != null){
  216.                 if(tek.prebrojOpremu() < min)
  217.                     min = tek.prebrojOpremu();
  218.                
  219.                 tek = tek.veza;
  220.             }
  221.            
  222.             tek = prvaUcionica;
  223.             while(tek != null){
  224.                 if(tek.prebrojOpremu() == min)
  225.                     break;
  226.                    
  227.                 pozicija++;
  228.                 tek = tek.veza;
  229.             }
  230.            
  231.             dodajOpremu(tip, opis, pozicija);
  232.            
  233.         }
  234.        
  235.        
  236.         public void izbaciOpremu(String tip, int brUcionice){
  237.             Ucionica tek = prvaUcionica;
  238.             for(int i = 1; i < brUcionice;i++){
  239.                 tek = tek.veza;
  240.             }
  241.            
  242.             Oprema tekOprema = tek.prvaOprema;
  243.            
  244.             while(tekOprema != null){
  245.                 if(tekOprema.tip.equals(tip))
  246.                     tek.prvaOprema = tek.prvaOprema.veza;
  247.                 tekOprema = tekOprema.veza;
  248.             }
  249.            
  250.             if(tekOprema != null){
  251.                 Oprema prethodni = tekOprema;
  252.                 tekOprema = tekOprema.veza;
  253.                
  254.                 while(tekOprema != null){
  255.                     if(tekOprema.tip.equals(tip)){
  256.                         prethodni.veza = tekOprema.veza;
  257.                         tekOprema = prethodni;
  258.                     }
  259.                     prethodni = tekOprema;
  260.                     tekOprema = tekOprema.veza;
  261.                 }
  262.             }
  263.         }
  264.        
  265.        
  266.         public String toString(){
  267.             int brojac = 1;
  268.             Ucionica tek = prvaUcionica;
  269.             String s = "Spisak ucionica:\n";
  270.             while(tek != null){
  271.                 s+= "\nUcionica " + brojac + ":\n" + tek + "\n";
  272.                 tek = tek.veza;
  273.                 brojac++;
  274.             }
  275.            
  276.             return s;
  277.         }
  278.     }
  279.    
  280.    
  281.    
  282.  
  283.  
  284.  
Advertisement
Comments
  • niske
    10 days
    Comment was deleted
  • niske
    9 days
    # text 0.30 KB | 0 0
    1. Nisam uradio (mrzelo me je):
    2. izbaciti jedan komad opreme datog tipa iz učionice zadate brojem.
    3. izbaciti jedan komad opreme datog tipa i opisa iz bilo koje učionice učionice zadate bojom.
    4. prebaciti svu opremu zatatog tipa iz učionice sa najviše opreme tog tipa u učionicu sa najmanje opreme tog tipa
Add Comment
Please, Sign In to add comment
Advertisement