Alap feladat megoldása, és 2 részfeladat

This commit is contained in:
2024-12-09 11:36:03 +01:00
parent 5ef3f268e5
commit 2b68274d41
12 changed files with 115 additions and 30 deletions

View File

@ -0,0 +1,12 @@
Az állatok megnevezés: Gorilla, életkor: 9 év, súly: 100.5 kg, lakrész: FUVES_RESZ, Élettér: Szavanna
Az állatok megnevezés: Majom, életkor: 8 év, súly: 90.5 kg, lakrész: FUVES_RESZ, Élettér: Szavanna
Az állatok megnevezés: Zebra, életkor: 7 év, súly: 300.0 kg, lakrész: FUVES_RESZ, Élettér: Szavanna
Az állatok megnevezés: Hiéna, életkor: 6 év, súly: 70.0 kg, lakrész: FUVES_RESZ, Élettér: Szavanna
Az állatok megnevezés: Panda, életkor: 12 év, súly: 120.0 kg, lakrész: FUVES_RESZ, Élettér: Bambuszerdő
Az állatok megnevezés: Farkas, életkor: 8 év, súly: 80.0 kg, lakrész: FUVES_RESZ, Élettér: Erdő
Az állatok megnevezés: Bagoly, életkor: 5 év, súly: 2.3 kg, lakrész: MADARHAZ, szárnyfesztáv: 120 cm
Az állatok megnevezés: Flamingó, életkor: 6 év, súly: 3.5 kg, lakrész: MADARHAZ, szárnyfesztáv: 160 cm
Az állatok megnevezés: Varjú, életkor: 4 év, súly: 1.1 kg, lakrész: MADARHAZ, szárnyfesztáv: 80 cm
Az állatok megnevezés: Kakadu, életkor: 6 év, súly: 1.0 kg, lakrész: MADARHAZ, szárnyfesztáv: 60 cm
Az állatok megnevezés: Boa, életkor: 7 év, súly: 20.0 kg, lakrész: MEDENCE, Pikkelyes: igen
Az állatok megnevezés: Iguána, életkor: 5 év, súly: 3.0 kg, lakrész: FUVES_RESZ, Pikkelyes: nem

View File

@ -5,8 +5,13 @@ import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
enum Lakresz {
FUVES_RESZ, HOMOK, MEDENCE, MADARHAZ, HULLOHAZ
FUVES_RESZ,
HOMOK,
MEDENCE,
MADARHAZ,
HULLOHAZ
}
abstract class Allat {
@ -56,14 +61,14 @@ abstract class Allat {
@Override
public String toString() {
return "Megnevezés: " + megnevezes + ", Életkor: " + eletkor + " év, Súly: " + suly + " kg, Lakrész: " + lakresz;
return "Az állatok megnevezés: " + megnevezes + ", életkor: " + eletkor + " év, súly: " + suly + " kg, lakrész: " + lakresz;
}
}
class Emlo extends Allat {
class Emlos extends Allat {
private String eletter;
public Emlo(String megnevezes, int eletkor, double suly, Lakresz lakresz, String eletter) {
public Emlos(String megnevezes, int eletkor, double suly, Lakresz lakresz, String eletter) {
super(megnevezes, eletkor, suly, lakresz);
this.eletter = eletter;
}
@ -100,7 +105,7 @@ class Madar extends Allat {
@Override
public String toString() {
return super.toString() + ", Szárnyfesztáv: " + szarnyfesztav + " cm";
return super.toString() + ", szárnyfesztáv: " + szarnyfesztav + " cm";
}
}
@ -187,26 +192,37 @@ class Allatkert {
}
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() {
System.out.println("\n\t[+2] Az állatok típusonkénti kilistázása súly szerint csökkenő sorrendben'\n");
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);
List<Allat> rendezettLista = lista.stream()
.sorted(Comparator.comparingDouble(Allat::getSuly).reversed())
.collect(Collectors.toList());
for (int i = 0; i < rendezettLista.size(); i++) {
Allat allat = rendezettLista.get(i);
System.out.println((i + 1) + ". " + allat);
}
});
}
public int getAdottTipusuAllatokSzama(Class<?> tipus) {
List<Allat> adottTipusuAllatok = allatok.stream()
.filter(tipus::isInstance)
.collect(Collectors.toList());
System.out.println("Típus: " + tipus.getSimpleName());
for (int i = 0; i < adottTipusuAllatok.size(); i++) {
System.out.println((i + 1) + ". " + adottTipusuAllatok.get(i));
}
return adottTipusuAllatok.size();
}
public void irjFajlba(String fileNev) {
System.out.println("\n\t[+3] Minden olyan állatnév kiírása fájlba, ami legalább 4 éves, és a nevébe van 'a' betű.\n");
try (FileWriter writer = new FileWriter(fileNev)) {
for (Allat allat : allatok) {
if (allat.getMegnevezes().contains("a") && allat.getEletkor() >= 4) {
@ -224,25 +240,64 @@ 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"));
// állatok betöltése
allatkert.hozzaadAllat(new Emlos("Oroszlán", 5, 190.5, Lakresz.FUVES_RESZ, "Szavanna"));
allatkert.hozzaadAllat(new Emlos("Gorilla", 9, 100.5, Lakresz.FUVES_RESZ, "Szavanna"));
allatkert.hozzaadAllat(new Emlos("Majom", 8, 90.5, Lakresz.FUVES_RESZ, "Szavanna"));
allatkert.hozzaadAllat(new Emlos("Gepárd", 6, 80.5, Lakresz.FUVES_RESZ, "Szavanna"));
allatkert.hozzaadAllat(new Emlos("Tigris", 4, 210.0, Lakresz.FUVES_RESZ, "Dzsungel"));
allatkert.hozzaadAllat(new Emlos("Elefánt", 15, 5400.0, Lakresz.FUVES_RESZ, "Szavanna"));
allatkert.hozzaadAllat(new Emlos("Zebra", 7, 300.0, Lakresz.FUVES_RESZ, "Szavanna"));
allatkert.hozzaadAllat(new Emlos("Hiéna", 6, 70.0, Lakresz.FUVES_RESZ, "Szavanna"));
allatkert.hozzaadAllat(new Emlos("Panda", 12, 120.0, Lakresz.FUVES_RESZ, "Bambuszerdő"));
allatkert.hozzaadAllat(new Emlos("Farkas", 8, 80.0, Lakresz.FUVES_RESZ, "Erdő"));
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));
allatkert.hozzaadAllat(new Madar("Papagáj", 2, 0.9, Lakresz.MADARHAZ, 50));
allatkert.hozzaadAllat(new Madar("Bagoly", 5, 2.3, Lakresz.MADARHAZ, 120));
allatkert.hozzaadAllat(new Madar("Flamingó", 6, 3.5, Lakresz.MADARHAZ, 160));
allatkert.hozzaadAllat(new Madar("Varjú", 4, 1.1, Lakresz.MADARHAZ, 80));
allatkert.hozzaadAllat(new Madar("Galamb", 2, 0.8, Lakresz.MADARHAZ, 40));
allatkert.hozzaadAllat(new Madar("Fecske", 1, 0.3, Lakresz.MADARHAZ, 35));
allatkert.hozzaadAllat(new Madar("Kakadu", 6, 1.0, Lakresz.MADARHAZ, 60));
// Keresés
allatkert.hozzaadAllat(new Hullo("Krokodil", 12, 400.0, Lakresz.MEDENCE, true));
allatkert.hozzaadAllat(new Hullo("Krokodil", 15, 450.0, Lakresz.MEDENCE, true));
allatkert.hozzaadAllat(new Hullo("Krokodil", 10, 380.0, Lakresz.MEDENCE, true));
allatkert.hozzaadAllat(new Hullo("Krokodil", 8, 360.0, Lakresz.MEDENCE, true));
allatkert.hozzaadAllat(new Hullo("Gyík", 1, 0.2, Lakresz.FUVES_RESZ, false));
allatkert.hozzaadAllat(new Hullo("Teknős", 100, 200.0, Lakresz.MEDENCE, false));
allatkert.hozzaadAllat(new Hullo("Kaméleon", 3, 0.5, Lakresz.FUVES_RESZ, false));
allatkert.hozzaadAllat(new Hullo("Boa", 7, 20.0, Lakresz.MEDENCE, true));
allatkert.hozzaadAllat(new Hullo("Viper", 4, 1.5, Lakresz.FUVES_RESZ, true));
allatkert.hozzaadAllat(new Hullo("Alligátor", 11, 350.0, Lakresz.MEDENCE, true));
allatkert.hozzaadAllat(new Hullo("Iguána", 5, 3.0, Lakresz.FUVES_RESZ, false));
allatkert.hozzaadAllat(new Hullo("Kígyó", 9, 25.0, Lakresz.MEDENCE, true));
allatkert.hozzaadAllat(new Rovar("Nagy bogár", 1, 0.6, Lakresz.FUVES_RESZ, 6));
allatkert.hozzaadAllat(new Rovar("Hangya", 1, 0.01, Lakresz.FUVES_RESZ, 6));
allatkert.hozzaadAllat(new Rovar("Méh", 1, 0.03, Lakresz.FUVES_RESZ, 6));
allatkert.hozzaadAllat(new Rovar("Szöcske", 2, 0.05, Lakresz.FUVES_RESZ, 6));
allatkert.hozzaadAllat(new Rovar("Katicabogár", 1, 0.02, Lakresz.FUVES_RESZ, 6));
allatkert.hozzaadAllat(new Rovar("Pillangó", 1, 0.04, Lakresz.FUVES_RESZ, 6));
allatkert.hozzaadAllat(new Rovar("Tücsök", 3, 0.07, Lakresz.FUVES_RESZ, 6));
// kikeresés
System.out.println(allatkert.keres("Oroszlán"));
// Listázás
// allatok szama
// System.out.println("Emlősök száma: " + allatkert.getAdottTipusuAllatokSzama(Emlos.class));
// System.out.println("Madarak száma: " + allatkert.getAdottTipusuAllatokSzama(Madar.class));
// System.out.println("Hüllők száma: " + allatkert.getAdottTipusuAllatokSzama(Hullo.class));
// System.out.println("Rovarok száma: " + allatkert.getAdottTipusuAllatokSzama(Rovar.class));
// kilistázás súly szerint
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
// +3 fájlbaírás
allatkert.irjFajlba("idosebb_allatok.txt");
}
}

18
README.md Normal file
View File

@ -0,0 +1,18 @@
## Getting Started
Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code.
## Folder Structure
The workspace contains two folders by default, where:
- `src`: the folder to maintain sources
- `lib`: the folder to maintain dependencies
Meanwhile, the compiled output files will be generated in the `bin` folder by default.
> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there.
## Dependency Management
The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies).

Binary file not shown.