diff --git a/.project b/.project new file mode 100644 index 0000000..4da22b8 --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + Bank-System + + + + + + + + diff --git a/Bank-Beispiel/.classpath b/Bank-Beispiel/.classpath index 257ce1d..6220d0d 100644 --- a/Bank-Beispiel/.classpath +++ b/Bank-Beispiel/.classpath @@ -1,11 +1,7 @@ - - - - - + diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Testobject01.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Testobject01.java new file mode 100644 index 0000000..55bb7a7 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Testobject01.java @@ -0,0 +1,13 @@ +package de.hs_mannheim.informatik.bank; + +public class Testobject01 { + + public static void main(String[] args) + { + + + + + } + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java index fbdff21..ef527b3 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java @@ -1,8 +1,16 @@ package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.LongSupplier; +import java.util.stream.Collectors; +import java.util.stream.LongStream; +import java.util.stream.Stream; + public class Bank implements Serializable { private String name; @@ -43,5 +51,71 @@ public class Bank implements Serializable { public Konto findeKonto(int kontonummer) { return konten.get(kontonummer); } + public Collection filtering(int x) + { + Collection kontenTemp = konten.values(); + Map> temp = kontenTemp.stream().collect( + Collectors.groupingBy(n -> n.getKontoart())); + switch(x) + { + case 1: return temp.get(Kontoart.Sparkonto); + case 2: return temp.get(Kontoart.Girokonto); + case 3: return temp.get(Kontoart.Tagesgeldkonto); + default: + List output = null; + for(Kontoart key : temp.keySet()) + { + for(Konto k : temp.get(key)) + { + output.add(k); + } + + } + return output; + } + + } + public long findMax() + { + Collection kontenTemp = konten.values(); + // Long maxy = kontenTemp.stream().map(n -> n.getKontostand()).reduce(Long::max).get(); + long max = kontenTemp.stream().map(n -> n.getKontostand()).max((a,b) -> + a.compareTo(b)).get(); + + + return max; + } + public long findmin() + { + Collection kontenTemp = konten.values(); + + long min = 0; + + for(Konto k : kontenTemp) + { + if(min > k.getKontostand()) + min = k.getKontostand(); + } + return min; + } + public long findaverage() + { + +Collection kontenTemp = konten.values(); + + long average = 0; + int i = 0; + for(Konto k : kontenTemp) + { + i++; + average += k.getKontostand(); + + } + + return average/i; + + } + + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java index d8f12a9..05485ec 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -7,6 +7,7 @@ public class Girokonto extends Konto implements Serializable { public Girokonto(String inhaber, int kontozähler) { super(inhaber, kontozähler); + this.k = Kontoart.Girokonto; } public boolean überweise(Girokonto ziel, long betrag, String zweck) { diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java index e787df5..322227e 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -7,7 +7,7 @@ public class Konto implements Serializable { private int nummer; protected long stand = 0; private String inhaber; - + protected Kontoart k = Kontoart.Sparkonto; protected ArrayList kontobewegungen; public Konto(String inhaber, int kontozähler) { @@ -72,5 +72,9 @@ public class Konto implements Serializable { return saldo; } + public Kontoart getKontoart() + { + return k; + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 10c9528..2ac4498 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -1,6 +1,9 @@ package de.hs_mannheim.informatik.bank.facade; import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.domain.Girokonto; @@ -92,5 +95,22 @@ public class Banksystem { return konto.berechneSaldo(anzahl); } + public String[] filtering(int x) + { + Collection konten = bank.filtering(x); + String[] liste = new String[konten.size()]; + + int i = 0; + for (Konto k : konten) { + liste[i++] = k.toString(); + } + + return liste; + + } + public long findMax() + { + return bank.findMax(); + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java index a7c3541..48844bb 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -29,6 +29,8 @@ public class UI { System.out.println("5 -> Kontoauszug drucken"); System.out.println("6 -> Überweisung beauftragen"); System.out.println("7 -> Saldo abfragen"); + System.out.println("8: -> Filtering"); + System.out.println("10: -> find max"); System.out.println("9 -> Beenden"); System.out.println(); @@ -48,7 +50,9 @@ public class UI { case 5: kontoauszugDrucken(); break; case 6: überweisungBeauftragen(); break; case 7: saldoAbfragen(); break; + case 8: filtering(); break; case 9: break mainloop; + case 10: findMax(); } } catch (Exception e) { @@ -162,5 +166,19 @@ public class UI { long saldo = bs.saldoBestimmen(konto, anzahl); System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo/100d)); } + private void filtering() + { + int input = Integer.parseInt(sc.nextLine()); + String[] output = bs.filtering(input); + for(int i = 0;i