diff --git a/src/EinkommenInfo.java b/src/EinkommenInfo.java new file mode 100644 index 0000000..8c74203 --- /dev/null +++ b/src/EinkommenInfo.java @@ -0,0 +1,48 @@ +import java.util.List; +import java.util.Scanner; + +public class EinkommenInfo { + public static void main(String[] args) { + System.out.println("Übersicht über Bevölkerungszahl und Einkommen in Deutschland"); + GebietsDatei gebietsDatei = new GebietsDatei("Einkommen.csv"); + List gebiete = gebietsDatei.getGebiete(); + GebietsListe gebietsListe = new GebietsListe(gebiete); + + System.out.println(gebietsListe.getAnzahlGesamt() + " Gebiete wurden eingelesen."); + System.out.println(gebietsListe.getAnzahlUnvollstaendig() + " davon haben unvollständige Angaben\n"); + + 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(""); + + 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(""); + + System.out.print("Name des Gebietes :"); + Scanner reader = new Scanner(System.in); + String eingabe = reader.nextLine(); + + while(!eingabe.isEmpty()) { + List tmpList; + tmpList = gebietsListe.getGebieteNachNamen(eingabe); + + for (Gebiet g : tmpList) { + g.getName(); + g.getAnzahlEinwohner(); + g.getDurchschnittsEinkommen(); + System.out.println(""); + } + + System.out.println(tmpList.size() + " Gebiete wurden gefunden."); + System.out.print("Name des Gebietes :"); + eingabe = reader.nextLine(); + } + } +} diff --git a/src/Gebiet.java b/src/Gebiet.java index e0723a6..2f7d9e0 100644 --- a/src/Gebiet.java +++ b/src/Gebiet.java @@ -1,17 +1,16 @@ -public class Gebiet { +public class Gebiet implements GebietInterface{ private int jahr; - private int schlüssel; + private int schluessel; private String name; private long gesamtEinkommen; private int durchschnittsEinkommen; - public Gebiet(int jahr, int schlüssel, String name, long gesamtEinkommen, int durchschnittsEinkommen) { + public Gebiet(int jahr, int schluessel, String name, long gesamtEinkommen, int durchschnittsEinkommen) { this.jahr = jahr; - this.schlüssel = schlüssel; + this.schluessel = schluessel; this.name = name; this.gesamtEinkommen = gesamtEinkommen; this.durchschnittsEinkommen = durchschnittsEinkommen; - // lol } public int getJahr() { @@ -19,7 +18,7 @@ public class Gebiet { } public int getSchlüssel() { - return schlüssel; + return schluessel; } public String getName() { @@ -42,7 +41,7 @@ public class Gebiet { public String toString() { return "Gebiet{" + "jahr=" + jahr + - ", schlüssel=" + schlüssel + + ", schluessel=" + schluessel + ", name='" + name + '\'' + ", gesamtEinkommen=" + gesamtEinkommen + ", durchschnittsEinkommen=" + durchschnittsEinkommen + diff --git a/src/GebietInterface.java b/src/GebietInterface.java new file mode 100644 index 0000000..f5758de --- /dev/null +++ b/src/GebietInterface.java @@ -0,0 +1,8 @@ +public interface GebietInterface { + int getJahr(); + int getSchlüssel(); + String getName(); + long getGesamtEinkommen(); + int getDurchschnittsEinkommen(); + int getAnzahlEinwohner(); +} diff --git a/src/GebietsDateiInterface.java b/src/GebietsDateiInterface.java new file mode 100644 index 0000000..935bea2 --- /dev/null +++ b/src/GebietsDateiInterface.java @@ -0,0 +1,5 @@ +import java.util.List; + +public interface GebietsDateiInterface { + List getGebiete(); +} diff --git a/src/GebietsListe.java b/src/GebietsListe.java index 21e156e..ad5eb56 100644 --- a/src/GebietsListe.java +++ b/src/GebietsListe.java @@ -1,2 +1,72 @@ + +import java.sql.Array; +import java.util.*; + public class GebietsListe { + private List gebiete; + + public GebietsListe(List gebiete) { + this.gebiete = gebiete; + } + + public Gebiet getGebietMinDurchschnittsEinkommen(){ + int gebietA = 0; + int gebietB = 0; + Gebiet gebietMitMinDurchschnittsEinkommen = null; + for (Gebiet g:gebiete) { + gebietA = g.getDurchschnittsEinkommen(); + if (gebietA < gebietB) { + gebietMitMinDurchschnittsEinkommen = g; + gebietB = gebietA; + } + } + if (gebietMitMinDurchschnittsEinkommen == null) { + System.err.println("Fehler bei der Suche nach dem geringsten Durchschnittseinkommen."); + } + return gebietMitMinDurchschnittsEinkommen; + } + + public Gebiet getGebietMaxAnzahlEinwohner() { + int gebietA = 0; + int gebietB = 0; + Gebiet gebietMitMaxEinwohnern = null; + for (Gebiet g:gebiete) { + gebietA = g.getAnzahlEinwohner(); + if (gebietA > gebietB) + { + gebietMitMaxEinwohnern = g; + gebietB = gebietA; + } + } + if (gebietMitMaxEinwohnern == null) + { + System.err.println("Fehler bei der Suche nach den meisten Einwohnern ."); + } + return gebietMitMaxEinwohnern; + } + + public int getAnzahlGesamt() + { + return gebiete.size(); + } + + public int getAnzahlUnvollstaendig(){ + int zaehler = 0; + for (Gebiet g:gebiete) { + if (g.getGesamtEinkommen() <= 0 || g.getDurchschnittsEinkommen() <= 0) { + zaehler++; + } + } + return zaehler; + } + + public List getGebieteNachNamen(String namensanfang) { + List gebiete = new ArrayList(); + for (Gebiet g:gebiete) { + if (g.getName().contains(namensanfang)){ + gebiete.add(g); + } + } + return gebiete; + } } diff --git a/src/GebietsListeInterface.java b/src/GebietsListeInterface.java new file mode 100644 index 0000000..1c30000 --- /dev/null +++ b/src/GebietsListeInterface.java @@ -0,0 +1,9 @@ +import java.util.List; + +public interface GebietsListeInterface { + Gebiet getGebietMinDurchschnittsEinkommen(); + Gebiet getGebietMaxAnzahlEinwohner(); + int getAnzahlGesamt(); + int getAnzahlUnvollständig(); + List getGebieteNachNamen(); +}