Elso verzio

This commit is contained in:
2024-12-09 09:09:21 +01:00
parent 4e6602b3c8
commit 5ef3f268e5
12 changed files with 248 additions and 5 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +0,0 @@
public class App {
public static void main(String[] args) throws Exception {
System.out.println("Hello, World!");
}
}

View File

@ -0,0 +1,248 @@
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
enum Lakresz {
FUVES_RESZ, HOMOK, MEDENCE, MADARHAZ, HULLOHAZ
}
abstract class Allat {
private String megnevezes;
private int eletkor;
private double suly;
private Lakresz lakresz;
public Allat(String megnevezes, int eletkor, double suly, Lakresz lakresz) {
this.megnevezes = megnevezes;
this.eletkor = eletkor;
this.suly = suly;
this.lakresz = lakresz;
}
public String getMegnevezes() {
return megnevezes;
}
public void setMegnevezes(String megnevezes) {
this.megnevezes = megnevezes;
}
public int getEletkor() {
return eletkor;
}
public void setEletkor(int eletkor) {
this.eletkor = eletkor;
}
public double getSuly() {
return suly;
}
public void setSuly(double suly) {
this.suly = suly;
}
public Lakresz getLakresz() {
return lakresz;
}
public void setLakresz(Lakresz lakresz) {
this.lakresz = lakresz;
}
@Override
public String toString() {
return "Megnevezés: " + megnevezes + ", Életkor: " + eletkor + " év, Súly: " + suly + " kg, Lakrész: " + lakresz;
}
}
class Emlo extends Allat {
private String eletter;
public Emlo(String megnevezes, int eletkor, double suly, Lakresz lakresz, String eletter) {
super(megnevezes, eletkor, suly, lakresz);
this.eletter = eletter;
}
public String getEletter() {
return eletter;
}
public void setEletter(String eletter) {
this.eletter = eletter;
}
@Override
public String toString() {
return super.toString() + ", Élettér: " + eletter;
}
}
class Madar extends Allat {
private int szarnyfesztav;
public Madar(String megnevezes, int eletkor, double suly, Lakresz lakresz, int szarnyfesztav) {
super(megnevezes, eletkor, suly, lakresz);
this.szarnyfesztav = szarnyfesztav;
}
public int getSzarnyfesztav() {
return szarnyfesztav;
}
public void setSzarnyfesztav(int szarnyfesztav) {
this.szarnyfesztav = szarnyfesztav;
}
@Override
public String toString() {
return super.toString() + ", Szárnyfesztáv: " + szarnyfesztav + " cm";
}
}
class Hullo extends Allat {
private boolean pikkelyes;
public Hullo(String megnevezes, int eletkor, double suly, Lakresz lakresz, boolean pikkelyes) {
super(megnevezes, eletkor, suly, lakresz);
this.pikkelyes = pikkelyes;
}
public boolean isPikkelyes() {
return pikkelyes;
}
public void setPikkelyes(boolean pikkelyes) {
this.pikkelyes = pikkelyes;
}
@Override
public String toString() {
return super.toString() + ", Pikkelyes: " + (pikkelyes ? "igen" : "nem");
}
}
class Rovar extends Allat {
private int labakSzama;
public Rovar(String megnevezes, int eletkor, double suly, Lakresz lakresz, int labakSzama) {
super(megnevezes, eletkor, Math.min(suly, 0.5), lakresz);
this.labakSzama = labakSzama;
if (suly > 0.5) {
System.out.println("Figyelmeztetés: A rovar súlya túl nagy, alapértelmezett értéket állítottam be: 0.01 kg.");
setSuly(0.01);
}
}
public int getLabakSzama() {
return labakSzama;
}
public void setLabakSzama(int labakSzama) {
this.labakSzama = labakSzama;
}
@Override
public String toString() {
return super.toString() + ", Lábak száma: " + labakSzama;
}
}
class Allatkert {
private String nev;
private String cim;
private String telefonszam;
private String email;
private List<Allat> allatok;
public Allatkert(String nev, String cim, String telefonszam, String email) {
this.nev = nev;
this.cim = cim;
this.telefonszam = telefonszam;
this.email = email;
this.allatok = new ArrayList<>();
}
public void hozzaadAllat(Allat allat) {
allatok.add(allat);
System.out.println("Új állat hozzáadva: " + allat.getMegnevezes());
}
public void torolAllat(String megnevezes) {
allatok.removeIf(allat -> allat.getMegnevezes().equals(megnevezes));
System.out.println("Állat törölve: " + megnevezes);
}
public String keres(String allatNeve) {
for (Allat allat : allatok) {
if (allat.getMegnevezes().equalsIgnoreCase(allatNeve)) {
return allat.toString();
}
}
return "Nincs ilyen nevű állat.";
}
public void listazAllatokat() {
for (int i = 0; i < allatok.size(); i++) {
System.out.println((i + 1) + ". " + allatok.get(i));
}
}
public int getAdottTipusuAllatokSzama(Class<?> tipus) {
return (int) allatok.stream().filter(tipus::isInstance).count();
}
public void listazTipusokSzerint() {
allatok.stream()
.sorted(Comparator.comparingDouble(Allat::getSuly).reversed())
.collect(Collectors.groupingBy(Allat::getClass))
.forEach((tipus, lista) -> {
System.out.println("Típus: " + tipus.getSimpleName());
lista.forEach(System.out::println);
});
}
public void irjFajlba(String fileNev) {
try (FileWriter writer = new FileWriter(fileNev)) {
for (Allat allat : allatok) {
if (allat.getMegnevezes().contains("a") && allat.getEletkor() >= 4) {
writer.write(allat + "\n");
}
}
System.out.println("Fájlba írás kész: " + fileNev);
} catch (IOException e) {
System.err.println("Hiba a fájl írása közben: " + e.getMessage());
}
}
}
public class Main {
public static void main(String[] args) {
Allatkert allatkert = new Allatkert("Fővárosi Állatkert", "Budapest, Állatkerti krt. 6-12.", "123-4567", "info@allatkert.hu");
// Példányosítás
allatkert.hozzaadAllat(new Emlo("Oroszlán", 5, 190.5, Lakresz.FUVES_RESZ, "Szavanna"));
allatkert.hozzaadAllat(new Madar("Sas", 3, 4.0, Lakresz.MADARHAZ, 220));
allatkert.hozzaadAllat(new Hullo("Krokodil", 12, 400.0, Lakresz.MEDENCE, true));
allatkert.hozzaadAllat(new Rovar("Bogár", 1, 0.6, Lakresz.FUVES_RESZ, 6));
// Keresés
System.out.println(allatkert.keres("Oroszlán"));
// Listázás
allatkert.listazAllatokat();
// Típusok szerinti számolás
System.out.println("Emlősök száma: " + allatkert.getAdottTipusuAllatokSzama(Emlo.class));
// Súly szerinti listázás
allatkert.listazTipusokSzerint();
// Fájlba írás
allatkert.irjFajlba("idosebb_allatok.txt");
}
}