Compare commits

...

22 Commits

Author SHA1 Message Date
91b71a30d9 Komplett fertig 2022-12-13 12:40:58 +01:00
43899c9192 Interfaces 2022-12-13 11:54:55 +01:00
27766e49fc Erstelleung Klasse 2022-12-09 15:13:31 +01:00
f558cb059f Merge remote-tracking branch 'origin/master' 2022-12-09 15:11:39 +01:00
a3aaed397f Erstelleung Klasse 2022-12-09 15:11:31 +01:00
4e2778d2c5 Merge remote-tracking branch 'origin/master' 2022-12-09 15:11:18 +01:00
1395a5ddc2 GebietsListe debugged 2022-12-09 15:11:10 +01:00
032c3602a7 Merge remote-tracking branch 'Einkommen/master' 2022-12-09 15:10:49 +01:00
77c4a09c6a EinkommenInfo 2022-12-09 15:10:43 +01:00
4afbedc1a8 Erstelleung Klasse 2022-12-09 15:09:14 +01:00
ed4c058713 Merge remote-tracking branch 'origin/master' 2022-12-09 15:03:24 +01:00
caf5b72d90 Interfaces 2022-12-09 15:03:17 +01:00
248eae539c Merge remote-tracking branch 'origin/master' 2022-12-09 15:02:48 +01:00
7cc604fad9 GebietsListe fertiggestellt 2022-12-09 15:02:15 +01:00
0218fe81cb EinkommenInfo 2022-12-09 15:01:43 +01:00
5bce0a0c4d Merge remote-tracking branch 'Einkommen/master' 2022-12-09 15:00:18 +01:00
cc39b7f240 EinkommenInfo 2022-12-09 15:00:10 +01:00
25ff282f27 Merge remote-tracking branch 'origin/master' 2022-12-09 14:53:18 +01:00
a75a69163c GebietsInterface 2022-12-09 14:53:05 +01:00
8f0a176d97 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/GebietsListe.java
2022-12-09 14:43:56 +01:00
dfe440bde3 getGebitMinDurchschnittsEinkommen und getGebietMaxAnzahlEinkommen
implementiert
2022-12-09 14:42:08 +01:00
a6a35222eb getGebitMinDurchschnittsEinkommen und getGebietMaxAnzahlEinkommen
implementiert
2022-12-09 14:40:35 +01:00
7 changed files with 180 additions and 12 deletions

54
src/EinkommenInfo.java Normal file
View File

@@ -0,0 +1,54 @@
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<Gebiet> gebiete = gebietsDatei.getGebiete();
GebietsListe gebietsListe = new GebietsListe(gebiete);
System.out.println(gebietsListe.getAnzahlGesamt() + " Gebiete wurden eingelesen.");
System.out.println(gebietsListe.getAnzahlUnvollständig() + " 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() + " 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() + " Einwohner");
System.out.println(tmp.getDurchschnittsEinkommen() + " Euro / Einwohner");
System.out.println("");
System.out.print("Name des Gebietes : ");
Scanner reader = new Scanner(System.in);
String eingabe = reader.nextLine();
while(!eingabe.isEmpty()) {
List<Gebiet> tmpList;
tmpList = gebietsListe.getGebieteNachNamen(eingabe);
for (Gebiet g : tmpList) {
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.println();
System.out.print("Name des Gebietes : ");
eingabe = reader.nextLine();
}
}
}

View File

@@ -1,4 +1,4 @@
public class Gebiet {
public class Gebiet implements GebietInterface{
private int jahr;
private int schluessel;
private String name;
@@ -34,7 +34,7 @@ public class Gebiet {
}
public int getAnzahlEinwohner() {
return 1;
return (int)(gesamtEinkommen * 1000 / durchschnittsEinkommen);
}
@Override

8
src/GebietInterface.java Normal file
View File

@@ -0,0 +1,8 @@
public interface GebietInterface {
int getJahr();
int getSchlüssel();
String getName();
long getGesamtEinkommen();
int getDurchschnittsEinkommen();
int getAnzahlEinwohner();
}

View File

@@ -6,25 +6,47 @@ import java.util.ArrayList;
import java.util.List;
public class GebietsDatei extends GebietsListe {
public class GebietsDatei implements GebietsDateiInterface{
private List<Gebiet> gebiete = new ArrayList<>();
public String dateiname;
public GebietsDatei(String dateiname) {
this.dateiname = dateiname;
}
public ArrayList<Gebiet> laden() {
public void laden() {
Path pfad = Paths.get(dateiname);
try {
Path pfad = Paths.get(dateiname);
List<String> zeilen = Files.readAllLines(pfad);
for (zeilen : zeilen){
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;
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));
}
} catch (IOException e) {
e.printStackTrace();
}
catch (IOException e){
System.out.println("Die Datei kann nicht gelesen werden");
}
}
public List<Gebiet> getGebiete() {
laden();
return gebiete;
}

View File

@@ -0,0 +1,5 @@
import java.util.List;
public interface GebietsDateiInterface {
List<Gebiet> getGebiete();
}

View File

@@ -1,2 +1,72 @@
public class GebietsListe {
import java.sql.Array;
import java.util.*;
public class GebietsListe implements GebietsListeInterface{
private List<Gebiet> gebiete;
public GebietsListe(List<Gebiet> gebiete) {
this.gebiete = gebiete;
}
public Gebiet getGebietMinDurchschnittsEinkommen(){
int gebietA = 0;
int gebietB = gebiete.get(0).getDurchschnittsEinkommen();
Gebiet gebietMitMinDurchschnittsEinkommen = null;
for (Gebiet g:gebiete) {
gebietA = g.getDurchschnittsEinkommen();
if (gebietA < gebietB && gebietA > 0) {
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 getAnzahlUnvollständig(){
int zaehler = 0;
for (Gebiet g:gebiete) {
if (g.getGesamtEinkommen() <= 0 || g.getDurchschnittsEinkommen() <= 0) {
zaehler++;
}
}
return zaehler;
}
public List<Gebiet> getGebieteNachNamen(String namensanfang) {
List<Gebiet> gebieteNachNamen = new ArrayList<Gebiet>();
for (Gebiet g:gebiete) {
if (g.getName().contains(namensanfang)){
gebieteNachNamen.add(g);
}
}
return gebieteNachNamen;
}
}

View File

@@ -0,0 +1,9 @@
import java.util.List;
public interface GebietsListeInterface {
Gebiet getGebietMinDurchschnittsEinkommen();
Gebiet getGebietMaxAnzahlEinwohner();
int getAnzahlGesamt();
int getAnzahlUnvollständig();
List<Gebiet> getGebieteNachNamen(String namensanfang);
}