You are on page 1of 3

public class Autobus {

int brStanica;
int trenKrug, trenStanica;
int mestaZaSedenje, mestaZaStajanje;
int trenSede, trenStoje;

public Autobus(int brStanica1, int mestaZaSedenje1, int mestaZaStajanje1) {


this.brStanica = brStanica1;
this.trenKrug = 1;
this.trenStanica = 0;
this.mestaZaSedenje = mestaZaSedenje1;
this.mestaZaStajanje = mestaZaStajanje1;
this.trenSede = this.trenStoje = 0;
}

public void polazi(int k) {


this.trenStanica = 1;
this.trenStoje = this.trenSede = 0;

if(k > (this.mestaZaSedenje-this.trenSede)) {

this.trenSede = this.mestaZaSedenje;

int temp = k - this.mestaZaSedenje;

if(temp > (this.mestaZaStajanje - this.trenStoje)) {

this.trenStoje = this.mestaZaStajanje;
}else{

this.trenStoje += temp;
}
}else{

this.trenSede += k;
}

public void stani(int izlaz, int ulaz) throws PremaloPutnikaException,


PrevisePutnikaException {
if(this.trenSede + this.trenStoje < izlaz)
throw new PremaloPutnikaException("["+izlaz+"] putnik(a) ne moze
izaci! U autobusu ima samo ["+(this.trenSede + this.trenStoje)+"] putnik(a)!");

this.trenStanica++;
if(this.trenStanica > this.brStanica) { this.trenStanica = 1;
this.trenKrug++; }

if(this.trenStoje - izlaz < 0) {


this.trenSede -= (izlaz-this.trenStoje);
this.trenStoje = 0;
}else{
this.trenStoje -= izlaz;
}
if((this.trenSede + this.trenStoje + ulaz) > (this.mestaZaSedenje +
this.mestaZaStajanje))
throw new PrevisePutnikaException("["+ulaz+"] putnik(a) ne moze
uci! U autobusu je slobodno ["+(this.mestaZaSedenje + this.mestaZaStajanje -
this.trenSede - this.trenStoje)+"] mesta(o)!");

if(ulaz > (this.mestaZaSedenje-this.trenSede)){

this.trenStoje += (ulaz - (this.mestaZaSedenje - this.trenSede));


this.trenSede = this.mestaZaSedenje;
}else{
this.trenSede += ulaz;
}

public int kolikoputnika() {


return this.trenSede + this.trenStoje;
}

public int kolikoslobosnihsedenja() {


return this.mestaZaSedenje - this.trenSede;
}

public int kolikoslobosnihstajanja() {


return this.mestaZaStajanje - this.trenStoje;
}

public int gdesi() {


return this.trenStanica;
}

public int kojikrug() {


return this.trenKrug;
}

public String toString() {


return "Krug: "+this.trenKrug+"\nStanica: "+this.trenStanica+"\n"
+ "Mesta za sedenje:
"+this.trenSede+"/"+this.mestaZaSedenje+", "
+ "Mesta za stajanje:
"+this.trenStoje+"/"+this.mestaZaStajanje;
}

public static void main(String args[]) {


try{
Autobus a = new Autobus(20, 20, 5);
a.polazi(15);
a.stani(10,10);

}catch(PremaloPutnikaException ppe1){
System.out.println(ppe1);
}catch(PrevisePutnikaException ppe2){
System.out.println(ppe2);
}
}
}

You might also like