Elso verzio
This commit is contained in:
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Allat.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Allat.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Allatkert.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Allatkert.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Emlo.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Emlo.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Hullo.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Hullo.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Lakresz.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Lakresz.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Madar.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Madar.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Main.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Main.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Rovar.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Rovar.class
Normal file
Binary file not shown.
0
Gosztolya_Mate-FZRNZW-Allatkert/idosebb_allatok.txt
Normal file
0
Gosztolya_Mate-FZRNZW-Allatkert/idosebb_allatok.txt
Normal file
Binary file not shown.
@ -1,5 +0,0 @@
|
||||
public class App {
|
||||
public static void main(String[] args) throws Exception {
|
||||
System.out.println("Hello, World!");
|
||||
}
|
||||
}
|
248
Gosztolya_Mate-FZRNZW-Allatkert/src/Main.java
Normal file
248
Gosztolya_Mate-FZRNZW-Allatkert/src/Main.java
Normal 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");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user