Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----Klasa za Opremu
- public class Oprema{
- String opis;
- String tip;
- Oprema veza;
- public String toString(){
- return tip+ "---" + opis+"|";
- }
- public Oprema(String tip, String opis){
- this.tip = tip;
- this.opis = opis;
- this.veza = null ;
- }
- }
- //---Klasa za ucionice
- public class Ucionica{
- Ucionica veza;
- Oprema pocetakSadrzaja;
- String bojaZidova;
- int brojacOpreme;
- public String toString(){
- if(pocetakSadrzaja==null)
- return "Prazna ucionica boje "+bojaZidova+" |--| '\n'";
- else{
- String rez = "Oprema iz ucionice boje zidova "+bojaZidova+" : ";
- Oprema tekuci = pocetakSadrzaja;
- while(tekuci != null){
- rez+= tekuci +" ";
- tekuci = tekuci.veza;
- }
- return rez+"|--| '\n' ";
- }
- }
- public Ucionica(String bojaZidova){
- this.bojaZidova = bojaZidova;
- this.veza = null;
- this.brojacOpreme = 0;
- }
- }
- //---Klasa za racunarski centar(grupu ucionica);
- public class RacunarskiCentar{
- Ucionica prvaUcionica;
- Ucionica poslednjaUcionica;
- int brojacUcionica;
- public String toString(){
- if(prvaUcionica == null)
- return "Racunarski centar prazan";
- else{
- String rez = "Racunarski centar :'\n'";
- Ucionica tekuci = prvaUcionica;
- while(tekuci != null){
- rez += tekuci;
- tekuci = tekuci.veza;
- }
- return rez+"|";
- }
- }
- public void dodajNaPocetak(String boja){
- Ucionica novi = new Ucionica(boja);
- novi.veza = prvaUcionica;
- prvaUcionica = novi;
- if(poslednjaUcionica == null)
- poslednjaUcionica = prvaUcionica;
- brojacUcionica++;
- }
- public void dodajNaKraj(String boja){
- if(prvaUcionica == null)
- dodajNaPocetak(boja);
- else{
- Ucionica nova = new Ucionica(boja);
- poslednjaUcionica.veza = nova;
- poslednjaUcionica = nova;
- brojacUcionica++;
- }
- }
- public Ucionica pokaziNaUcionicuZadatogRednogBroja(int redniBroj){
- if(prvaUcionica == null)
- return null;
- else{
- Ucionica tekuci = prvaUcionica;
- int brojac = 1;
- while(tekuci != null && brojac<redniBroj){
- brojac++;
- tekuci = tekuci.veza;
- }
- return tekuci;
- }
- }
- public Ucionica pokaziNaUcionicuZadateBoje(String boja){
- if(prvaUcionica == null)
- return null;
- else{
- Ucionica tekuci = prvaUcionica;
- while(tekuci != null){
- if(tekuci.bojaZidova.equals(boja))
- return tekuci;
- tekuci = tekuci.veza;
- }
- return null;
- }
- }
- public boolean postojiUcionicaZadateBoje(String boja){
- return pokaziNaUcionicuZadateBoje(boja) != null ;
- }
- public void dodajOpremu(String tip, String opis, int redniBroj){
- if(redniBroj>brojacUcionica || redniBroj<1)
- return;
- else{
- Ucionica ciljanaUcionica = pokaziNaUcionicuZadatogRednogBroja(redniBroj);
- //if(!ciljanaUcionica.bojaZidova.equals(uneta boja gore)) return; *var. za sledeci zadatak.
- if(ciljanaUcionica.pocetakSadrzaja == null || ciljanaUcionica.pocetakSadrzaja.tip.compareTo(tip)>0 ){
- Oprema novi = new Oprema(tip,opis);
- novi.veza = ciljanaUcionica.pocetakSadrzaja;
- ciljanaUcionica.pocetakSadrzaja = novi ;
- }
- else{
- Oprema tekuci = ciljanaUcionica.pocetakSadrzaja;
- while(tekuci.veza != null && tekuci.tip.compareTo(tip)<0){
- tekuci = tekuci.veza;
- }
- Oprema novi = new Oprema(tip,opis);
- novi.veza = tekuci.veza;
- tekuci.veza = novi;
- }
- }
- }
- public void ispisSveOpremeIzZadatih(String boja){
- if(prvaUcionica==null)
- return;
- else{
- Ucionica tekuci = prvaUcionica;
- while(tekuci!=null){
- if(tekuci.bojaZidova.equals(boja) )
- System.out.println("Oprema iz trazene ucionice:'\n'"+tekuci);
- tekuci = tekuci.veza;
- }
- }
- }
- public void prebrojavanjeTipaOpreme(String tipOpreme){
- if(prvaUcionica == null)
- return;
- else{
- Ucionica tekuci = prvaUcionica;
- int brojacPomoc = 0;
- while(tekuci!=null){
- Oprema tekuci2 = tekuci.pocetakSadrzaja;
- while(tekuci2!=null){
- if(tekuci2.tip.equals(tipOpreme) )
- brojacPomoc++;
- tekuci2=tekuci2.veza;
- }
- tekuci=tekuci.veza;
- }
- System.out.println("Broj trazene opreme iz svih ucionica jeste: "+brojacPomoc);
- }
- }
- public void dodavanjeUNajprazniju(String tip, String opis){
- if(prvaUcionica == null)
- return;
- else{
- Ucionica tekuci = prvaUcionica;
- int min =Integer.MAX_VALUE;
- int brojacPozicije=1;
- int pozicija= 0;
- while(tekuci!=null){
- int brojacPomoc= 0;
- Oprema tekuci2 = tekuci.pocetakSadrzaja;
- while(tekuci2!=null){
- brojacPomoc++;
- tekuci2 = tekuci2.veza;
- }
- if(brojacPomoc<min){
- min = brojacPomoc;
- pozicija = brojacPozicije;
- }
- tekuci=tekuci.veza;
- brojacPozicije++;
- }
- dodajOpremu(tip,opis,pozicija);
- }
- }
- public void izbaciKomadOperemeIzZadateUcionice(int redniBroj,String tipOpreme){
- if(prvaUcionica==null)
- return;
- else{
- Ucionica ciljanaUcionica =pokaziNaUcionicuZadatogRednogBroja(redniBroj);
- while(ciljanaUcionica.pocetakSadrzaja!=null && ciljanaUcionica.pocetakSadrzaja.tip.equals(tipOpreme) )
- ciljanaUcionica.pocetakSadrzaja = ciljanaUcionica.pocetakSadrzaja.veza;
- if(ciljanaUcionica.pocetakSadrzaja!=null){
- Oprema tekuci = ciljanaUcionica.pocetakSadrzaja;
- Oprema prethodni = null;
- while(tekuci.veza!=null){
- prethodni = tekuci;
- tekuci = tekuci.veza;
- if(tekuci.tip.equals(tipOpreme) ){
- prethodni.veza = tekuci.veza;
- tekuci.veza = null;
- tekuci = prethodni;
- return; // brise se return ako zelimo da obrisemo svu opremu zeljenog tipa
- }
- }
- }
- }
- }
- //izbaciti jedan komad opreme datog tipa i opisa iz bilo koje učionice učionice zadate bojom.
- public void izbacitiFinal(String tipOpreme,String opisOpreme, String boja){
- if(prvaUcionica==null)
- return;
- else{
- Ucionica tekuci = prvaUcionica;
- while(tekuci!=null){
- if(tekuci.bojaZidova.equals(boja) ){
- while(tekuci.pocetakSadrzaja!=null && tekuci.pocetakSadrzaja.tip.equals(tipOpreme) && tekuci.pocetakSadrzaja.opis.equals(opisOpreme))
- tekuci.pocetakSadrzaja = tekuci.pocetakSadrzaja.veza;
- if(tekuci.pocetakSadrzaja!=null){
- Oprema tekuci2 = tekuci.pocetakSadrzaja;
- Oprema prethodni = null;
- while(tekuci.veza!=null){
- prethodni = tekuci2;
- tekuci2=tekuci2.veza;
- if(tekuci2.tip.equals(tipOpreme)&&tekuci2.opis.equals(opisOpreme) ){
- prethodni.veza = tekuci2.veza;
- tekuci2.veza = null;
- tekuci2=prethodni;
- }
- }
- }
- }
- tekuci=tekuci.veza;
- }
- }
- }
- }
- //----Posebna klasa za mejn gde se testira sve:
- public class Main{
- public static void main(String[] args){
- RacunarskiCentar rc1 = new RacunarskiCentar();
- System.out.println("rc 1 posle deklarisanja: " + rc1);
- rc1.dodajNaKraj("bela");
- rc1.dodajNaKraj("zuta");
- rc1.dodajNaKraj("plava");
- System.out.println("rc 1 posle dodavanja ucionica : " + rc1);
- rc1.dodajOpremu("ekran","lg",1);
- rc1.dodajOpremu("ekran","samsung",1);
- rc1.dodajOpremu("ekran","hisense",1);
- rc1.dodajOpremu("tastatura","logitech",1);
- rc1.dodajOpremu("tastatura","logitech",1);
- rc1.dodajOpremu("tastatura","redragon",3);
- rc1.dodajOpremu("tastatura","razer",3);
- rc1.dodajOpremu("tastatura","a4tech",3);
- rc1.dodajOpremu("ekran","TCL",3);
- System.out.println("rc 1 posle dodavanja opreme : " + rc1);
- System.out.println("Ispis vezan za opremu iz ucionice zadate boje:'\n' " );
- rc1.ispisSveOpremeIzZadatih("bela");
- System.out.println("Ispis vezan za prebojavanje opreme:'\n' " );
- rc1.prebrojavanjeTipaOpreme("ekran");
- rc1.dodavanjeUNajprazniju("TestDodavanjaUnajprazniju","TestDodavanjaUnajprazniju");
- System.out.println("rc 1 posle dodavanja opreme u najprazniju:'\n' " );
- System.out.println(rc1);
- rc1.izbaciKomadOperemeIzZadateUcionice(2,"TestDodavanjaUnajprazniju");
- System.out.println("rc 1 posle izbacivanja opreme iz druge ucionice:'\n' " );
- System.out.println(rc1);
- rc1.izbacitiFinal("ekran","TCL", "plava");
- System.out.println("rc 1 posle izbacivanja TCL ekrana iz trece ucionice:'\n' " );
- System.out.println(rc1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement