From 91b71a30d9123bda01ad5ce997e703d6e30b1477 Mon Sep 17 00:00:00 2001 From: heckseler Date: Tue, 13 Dec 2022 12:40:58 +0100 Subject: [PATCH] Komplett fertig --- src/EinkommenInfo.java | 24 +++++++++++++++--------- src/Gebiet.java | 2 +- src/GebietsDatei.java | 19 +++++++++++++++---- src/GebietsListe.java | 10 +++++----- 4 files changed, 36 insertions(+), 19 deletions(-) diff --git a/src/EinkommenInfo.java b/src/EinkommenInfo.java index 1d69d62..c05b7a5 100644 --- a/src/EinkommenInfo.java +++ b/src/EinkommenInfo.java @@ -14,18 +14,18 @@ public class EinkommenInfo { System.out.println("Gebiet mit dem geringsten Durchschnittseinkommen:"); Gebiet tmp = gebietsListe.getGebietMinDurchschnittsEinkommen(); System.out.println(tmp.getName()); - System.out.println(tmp.getAnzahlEinwohner()); - System.out.println(tmp.getDurchschnittsEinkommen()); + System.out.println(tmp.getAnzahlEinwohner() + " Einwohner"); + System.out.println(tmp.getDurchschnittsEinkommen() + " Euro / Einwohner"); System.out.println(""); System.out.println("Gebiet mit der größten Einwohnerzahl"); tmp = gebietsListe.getGebietMaxAnzahlEinwohner(); System.out.println(tmp.getName()); - System.out.println(tmp.getAnzahlEinwohner()); - System.out.println(tmp.getDurchschnittsEinkommen()); + System.out.println(tmp.getAnzahlEinwohner() + " Einwohner"); + System.out.println(tmp.getDurchschnittsEinkommen() + " Euro / Einwohner"); System.out.println(""); - System.out.print("Name des Gebietes :"); + System.out.print("Name des Gebietes : "); Scanner reader = new Scanner(System.in); String eingabe = reader.nextLine(); @@ -34,14 +34,20 @@ public class EinkommenInfo { tmpList = gebietsListe.getGebieteNachNamen(eingabe); for (Gebiet g : tmpList) { - g.getName(); - g.getAnzahlEinwohner(); - g.getDurchschnittsEinkommen(); + System.out.println(g.getName()); + if(g.getDurchschnittsEinkommen() > 0) { + System.out.println(g.getAnzahlEinwohner() + " Einwohner"); + System.out.println(g.getDurchschnittsEinkommen() + " Euro / Einwohner"); + } else { + System.out.println("Einwohnerzahl unbekannt"); + System.out.println("Durchschnittseinkommen unbekannt"); + } System.out.println(""); } System.out.println(tmpList.size() + " Gebiete wurden gefunden."); - System.out.print("Name des Gebietes :"); + System.out.println(); + System.out.print("Name des Gebietes : "); eingabe = reader.nextLine(); } } diff --git a/src/Gebiet.java b/src/Gebiet.java index 2f7d9e0..c26dbd9 100644 --- a/src/Gebiet.java +++ b/src/Gebiet.java @@ -34,7 +34,7 @@ public class Gebiet implements GebietInterface{ } public int getAnzahlEinwohner() { - return 1; + return (int)(gesamtEinkommen * 1000 / durchschnittsEinkommen); } @Override diff --git a/src/GebietsDatei.java b/src/GebietsDatei.java index 401addb..d6b60a4 100644 --- a/src/GebietsDatei.java +++ b/src/GebietsDatei.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.List; -public class GebietsDatei { +public class GebietsDatei implements GebietsDateiInterface{ private List gebiete = new ArrayList<>(); public String dateiname; @@ -19,13 +19,23 @@ public class GebietsDatei { try { List zeilen = Files.readAllLines(pfad); - for (int i = 0; i < zeilen.size(); i++) { + for (int i = 2; i < zeilen.size(); i++) { String[] teile = zeilen.get(i).split(";"); int jahr = Integer.parseInt(teile[0]); int schlüssel = Integer.parseInt(teile[1]); String name = teile[2]; - int gesamtEinkommen = Integer.parseInt(teile[3]); - int durchsEinkommen = Integer.parseInt(teile[4]); + int gesamtEinkommen; + if(teile[3].equals("-")){ + gesamtEinkommen = -1; + } else { + gesamtEinkommen = Integer.parseInt(teile[3]); + } + int durchsEinkommen; + if(teile[4].equals("-")){ + durchsEinkommen = -1; + } else { + durchsEinkommen = Integer.parseInt(teile[4]); + } gebiete.add(new Gebiet(jahr, schlüssel, name, gesamtEinkommen, durchsEinkommen)); } @@ -36,6 +46,7 @@ public class GebietsDatei { } public List getGebiete() { + laden(); return gebiete; } diff --git a/src/GebietsListe.java b/src/GebietsListe.java index f16782f..84fa6fd 100644 --- a/src/GebietsListe.java +++ b/src/GebietsListe.java @@ -11,11 +11,11 @@ public class GebietsListe implements GebietsListeInterface{ public Gebiet getGebietMinDurchschnittsEinkommen(){ int gebietA = 0; - int gebietB = 0; + int gebietB = gebiete.get(0).getDurchschnittsEinkommen(); Gebiet gebietMitMinDurchschnittsEinkommen = null; for (Gebiet g:gebiete) { gebietA = g.getDurchschnittsEinkommen(); - if (gebietA < gebietB) { + if (gebietA < gebietB && gebietA > 0) { gebietMitMinDurchschnittsEinkommen = g; gebietB = gebietA; } @@ -61,12 +61,12 @@ public class GebietsListe implements GebietsListeInterface{ } public List getGebieteNachNamen(String namensanfang) { - List gebiete = new ArrayList(); + List gebieteNachNamen = new ArrayList(); for (Gebiet g:gebiete) { if (g.getName().contains(namensanfang)){ - gebiete.add(g); + gebieteNachNamen.add(g); } } - return gebiete; + return gebieteNachNamen; } }