1. Az előadáson látott program két árut kezeljen, pl. paradicsomot és paprikát. class Aru{ private String nev; private double egysegar; private double menny; public Aru(String aNev, double aEgysegar){ nev = aNev; egysegar = aEgysegar; menny = 0; } public String getNev(){ return nev; } public double getEgysegar(){ return egysegar; } public void setEgysegar(double aEgysegar){ if (aEgysegar >= 0) egysegar = aEgysegar; } public double getMenny(){ return menny; } public double getAr(){ return menny*egysegar; } public void hozzatesz(double aMenny){ if(aMenny>0) menny += aMenny; } public void elvesz(double aMenny){ if(aMenny>0 && aMenny<=menny) menny -= aMenny; } public String toString(){ return nev+"\tEgysegar: "+egysegar+"\tMenny: "+menny+"\tAr: "+getAr(); } }//Aru public class RaktarProgram{ public static void main(String [] args){ Aru aru1, aru2; aru1 = new Aru("Paradicsom",300); aru2 = new Aru("Paprika",250); aru1.hozzatesz(125); System.out.println(aru1); System.out.println(aru2); aru1.elvesz(25); aru2.hozzatesz(100); aru2.setEgysegar(280); System.out.println(aru1); System.out.println(aru2); // stb... } } ---------------------------------------------------------------------------- 2. Készítsen egy KaveAutomata osztályt, melynek adatai: kávémárka, ár (Ft/dl), a tartályban lévő mennyiség, a tartály kapacitása. A konstruktor paramétereken keresztül inicializálja a fajtát, az árat és a kapacitást, a tartály legyen tele. Készítse el az alábbi metódusokat: - beállító és lekérdező metódusok az árra. - vesz: paraméterként adhatjuk meg, hogy hány dl-t veszünk, visszatérési érték a fizetendő összeg. Ha nincs a venni kívánt mennyiség a tartályban, akkor -1 legyen a visszatérési érték. - feltölt: tele tölti a tartályt, visszatérési értéke a betöltött mennyiség. - toString: az összes adat kiírására. A vezérlő KaveProgram osztályban hozzon létre egy KaveAutomata osztályú objektumot, majd szimulálja a működését. import extra.*; class KaveAutomata{ private String marka; private double ar; private double mennyiseg; private double kapacitas; public KaveAutomata(String marka, double ar, double kapacitas){ this.marka = marka; this.ar = ar; this.kapacitas = kapacitas; mennyiseg = kapacitas; } /* vagy public KaveAutomata(String aMarka, double aAr, double aKapacitas){ marka = aMarka; ar = aAr; kapacitas = aKapacitas; mennyiseg = kapacitas; } */ public double getAr(){ return ar; } public void setAr(double ar){ this.ar = ar; } //a feledatspecifikációban nem szereplő plussz metódus public double getMennyiseg(){ return mennyiseg; } public double vesz(double menny){ if (menny<=mennyiseg){ mennyiseg-=menny; return menny*ar; } else{ return -1; } } public double feltolt(){ double kell=kapacitas-mennyiseg; mennyiseg=kapacitas; return kell; } public String toString(){ return "\nMarka: "+marka+"\nAr: "+ar+"\nKapacitas: "+kapacitas+ " Mennyiseg: "+mennyiseg; } } public class KaveProgram{ public static void main(String[] args) { KaveAutomata automata = new KaveAutomata("Omnia",100,50); //Például: egy ciklusban ismételten vásárolunk az automatából, amíg ki nem ürül. //Utána feltöltjük. double fiz; do{ fiz = automata.vesz(Console.readDouble("Hany decit: ")); if (fiz!=-1){ System.out.println(fiz+" Ft-ot kell fizetnie"); }else{ System.out.println("Nincs annyi"); } System.out.println(automata); }while(automata.getMennyiseg()>1); System.out.println("Feltoltes "+automata.feltolt()+" dl"); } } ----------------- A vezérlő osztály bonyolultabb módon, mikor abból is hozunk létre objektumot: public class KaveProgram{ private KaveAutomata automata; public KaveProgram(){ automata = new KaveAutomata("Omnia",100,50); } public void vezerel(){ double fiz; do{ fiz = automata.vesz(Console.readDouble("Hany decit: ")); if (fiz!=-1){ System.out.println(fiz+" Ft-ot kell fizetnie"); }else{ System.out.println("Nincs annyi"); } System.out.println(automata); }while(automata.getMennyiseg()>1); System.out.println("Feltoltes "+automata.feltolt()+" dl"); } public static void main(String[] args) { KaveProgram kaveProgram = new KaveProgram(); kaveProgram.vezerel(); } } -------------------------------------------------------------------------- 3. Egy terepasztal működését akarjuk szimulálni. Készítsen egy Auto osztályt, melynek adatai: rendszám, x pozíció, y pozíció, szög. A konstruktor paramétereken keresztül inicializálja a rendszámot, x pozíciót, y pozíciót, a szöget állítsa 0-ra. Készítse el az alábbi metódusokat: - beállító és lekérdező metódusok a rendszámra. - megy: az autó az aktuális irányában a paraméterként megadott távolságot tegye meg. - fordul: a paraméterként megadott szöggel forduljon el. - toString: a rendszám és a pozíció kiírására. A vezérlő Terepasztal osztályban hozzon létre két Auto osztályú objektumot, majd szimulálja azok működését. class Auto{ private String rendszam; private int x, y, iranyszog; public Auto(String rendszam, int x, int y){ this.rendszam = rendszam; this.x = x; this.y = y; iranyszog = 0; } public void setRendszam(String aRendszam){ rendszam = aRendszam; } public String getRendszam(){ return rendszam; } public void megy(int tav){ x += tav * Math.cos(Math.toRadians(iranyszog)); y += tav * Math.sin(Math.toRadians(iranyszog)); } public void fordul(int szog){ iranyszog += szog; } public String toString(){ return rendszam+" pozicioja: ("+x+", "+y+")"; } } public class Terepasztal{ public static void main(String [] args){ Auto auto1, auto2; auto1 = new Auto("ABC123",10,20); auto2 = new Auto("XYZ123",0,0); //Például: System.out.println(auto1+"\n"+auto2+"\n"); auto1.megy(10); System.out.println(auto1+"\n"+auto2+"\n"); auto1.fordul(30); System.out.println(auto1+"\n"+auto2+"\n"); auto1.megy(20); System.out.println(auto1+"\n"+auto2+"\n"); auto2.fordul(150); System.out.println(auto1+"\n"+auto2+"\n"); auto2.megy(20); System.out.println(auto1+"\n"+auto2+"\n"); } } ----------------- A vezérlő osztály bonyolultabb módon, mikor abból is hozunk létre objektumot: public class Terepasztal{ private Auto auto1, auto2; public Terepasztal(){ auto1 = new Auto("ABC123",10,20); auto2 = new Auto("XYZ123",0,0); } public void vezerel(){ System.out.println(auto1+"\n"+auto2+"\n"); auto1.megy(10); System.out.println(auto1+"\n"+auto2+"\n"); auto1.fordul(30); System.out.println(auto1+"\n"+auto2+"\n"); auto1.megy(20); System.out.println(auto1+"\n"+auto2+"\n"); auto2.fordul(150); System.out.println(auto1+"\n"+auto2+"\n"); auto2.megy(20); System.out.println(auto1+"\n"+auto2+"\n"); } public static void main(String [] args){ Terepasztal terepasztal = new Terepasztal(); terepasztal.vezerel(); } }