diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java index 255a861..7cf8b4a 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java @@ -7,6 +7,7 @@ import de.hs_mannheim.informatik.bank.tui.TUI; public class Main { public static void main(String[] args) throws Exception { + Banksystem bs = new Banksystem("Spaßkasse Mannheim"); TUI tui = new TUI(bs); 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 f2e077b..85d5b64 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 @@ -6,12 +6,16 @@ import java.util.Collection; import java.util.HashMap; public class Bank implements Serializable { + private static final long serialVersionUID = 1L; + private String name; - private HashMap konten = new HashMap<>(); - private HashMap kundenMap = new HashMap<>(); private int kontozähler; private int kundenzähler; + + private HashMap konten = new HashMap<>(); + private HashMap kundenMap = new HashMap<>(); + public Bank(String name) { @@ -40,6 +44,10 @@ public class Bank implements Serializable { public void addNewKunde(String name, String surname, int age){ kundenMap.put(++kundenzähler, new Kunde(name, surname, age)); } + + public Konto findeKonto(int kontonummer) { + return konten.get(kontonummer); + } public String getName() { return name; @@ -48,10 +56,6 @@ public class Bank implements Serializable { public Collection getKontenliste() { return konten.values(); } - - public Konto findeKonto(int kontonummer) { - return konten.get(kontonummer); - } public HashMap getKonten() { return this.konten; diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Depot.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Depot.java index c565bf0..cfeeb02 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Depot.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Depot.java @@ -11,11 +11,6 @@ public class Depot extends Konto{ public Depot(Kunde kunde, int kontozähler) { super(kunde, kontozähler); } - - @Override - public String toString() { - return "Depot mit der Kontonummer " + super.getKontonummer() + " angelegt."; - } public boolean aktienAuszahlung(int auswahl, String aktienName){ @@ -36,5 +31,9 @@ public class Depot extends Konto{ aktienMap.put(anzahl, aktienName); } + @Override + public String toString() { + return "Depot-" + super.toString(); + } } 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 4ba59bf..d8f0903 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 @@ -4,9 +4,11 @@ import java.io.Serializable; import java.util.ArrayList; public class Konto implements Serializable { + private static final long serialVersionUID = 1L; - private int nummer; + protected long stand = 0; + private int nummer; private Kunde kunde; protected ArrayList kontobewegungen; @@ -14,27 +16,9 @@ public class Konto implements Serializable { public Konto(Kunde kunde, int kontozähler) { nummer = 1000 + kontozähler; this.kunde = kunde; - this.kontobewegungen = new ArrayList<>(); } - public int getKontonummer() { - return nummer; - } - - @Override - public String toString() { - return "Konto [nummer=" + nummer + ", Kunde=" + kunde + "]"; - } - - public Kunde getKunde() { - return kunde; - } - - public long getKontostand() { - return stand; - } - public void einzahlen(long betrag, String zweck, String art, String auftraggeber) { stand += betrag; @@ -82,4 +66,22 @@ public class Konto implements Serializable { } + public int getKontonummer() { + return nummer; + } + + @Override + public String toString() { + return "Konto [nummer=" + nummer + ", Kunde=" + kunde + "]"; + } + + public Kunde getKunde() { + return kunde; + } + + public long getKontostand() { + return stand; + } + + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java index 9069d74..dd8dbde 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java @@ -4,7 +4,9 @@ import java.io.Serializable; import java.util.Date; public class Kontobewegung implements Serializable { + private static final long serialVersionUID = 1L; + private long betrag; private Date datum; private String betreff; diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kunde.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kunde.java index 6555a7d..77c850a 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kunde.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kunde.java @@ -9,9 +9,9 @@ public class Kunde implements Serializable{ private String name; private String surname; private int age; + private ArrayList konten; - public Kunde(String name, String surname, int age) { this.name = name; @@ -21,14 +21,15 @@ public class Kunde implements Serializable{ } + public void addKonto(Konto konto) { + this.konten.add(konto); + } @Override public String toString() { return "[Name: " + name + ", Nachname: " + surname + ", Alter: " + age + "]"; } - - public String getName() { return this.name; } @@ -61,8 +62,4 @@ public class Kunde implements Serializable{ this.konten = konten; } - public void addKonto(Konto konto) { - this.konten.add(konto); - } - } 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 c242021..ca3a2d5 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 @@ -32,17 +32,30 @@ public class Banksystem { this.bank = new Bank(bankname); } - public int kontoAnlegen(Kunde kunde, Kontoart kontoart) throws IOException { - int kontonummer = bank.addKonto(kunde, kontoart); + public Kunde addNewKunde(String name, String surname, int age){ - Persistenz.speichereBankDaten(this.bank, bank.getName()); + bank.addNewKunde(name, surname, age); + + try { + Persistenz.speichereBankDaten(this.bank, bank.getName()); + } catch (IOException e) { + e.printStackTrace(); + } + + return bank.getKundenMap().get(bank.getKundenMap().size() - 1); - return kontonummer; } + public int kontoAnlegen(Kunde kunde, Kontoart kontoart){ + int kontonummer = bank.addKonto(kunde, kontoart); - public String getBankname() { - return bank.getName(); + try { + Persistenz.speichereBankDaten(this.bank, bank.getName()); + } catch (IOException e) { + e.printStackTrace(); + } + + return kontonummer; } public String[] getKontenlisteForKunde(){ @@ -59,8 +72,6 @@ public class Banksystem { } - - public long geldEinzahlen(int kontonummer, long betrag) throws IOException { Konto konto = bank.findeKonto(kontonummer); konto.einzahlen(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getKunde().getName()); @@ -91,27 +102,6 @@ public class Banksystem { return erg; } - public String[] erstelleKontoauszug(int kontonummer) { - Konto konto = bank.findeKonto(kontonummer); - - return konto.getKontobewegungen(); - } - - public Kontoart checkKontoart(int kontonummer){ - Konto konto = bank.findeKonto(kontonummer); - - if(konto instanceof Girokonto){ - return Kontoart.Girokonto; - } - else if(konto instanceof Depot){ - return Kontoart.Depot; - } - else{ - return Kontoart.Sparkonto; - } - - } - public boolean überweisungBeauftragen(int startkonto, int zielkonto, long betrag, String verwendungszweck) throws IOException { Konto start = bank.findeKonto(startkonto); @@ -133,11 +123,10 @@ public class Banksystem { return false; } - - public long getKontostand(int kontonummer) { + public String[] erstelleKontoauszug(int kontonummer) { Konto konto = bank.findeKonto(kontonummer); - return konto.getKontostand(); + return konto.getKontobewegungen(); } public long saldoBestimmen(int kontonummer, int anzahl) { @@ -146,16 +135,55 @@ public class Banksystem { return konto.berechneSaldo(anzahl); } - public HashMap getKonten() { - return bank.getKonten(); + public boolean aktienKauf(int kontonummer, int anzahl, String aktienName){ + + Konto konto = bank.findeKonto(kontonummer); + + if(konto instanceof Depot){ + + boolean erg = ((Depot) konto).aktienAuszahlung(anzahl, aktienName); + + try { + Persistenz.speichereBankDaten(this.bank, bank.getName()); + } catch (IOException e) { + + e.printStackTrace(); + } + + return erg; + } + + + return false; } - public Kunde addNewKunde(String name, String surname, int age) throws IOException { + public Kontoart checkKontoart(int kontonummer){ + Konto konto = bank.findeKonto(kontonummer); + + if(konto instanceof Girokonto){ + return Kontoart.Girokonto; + } + else if(konto instanceof Depot){ + return Kontoart.Depot; + } + else{ + return Kontoart.Sparkonto; + } - bank.addNewKunde(name, surname, age); - Persistenz.speichereBankDaten(this.bank, bank.getName()); - return bank.getKundenMap().get(bank.getKundenMap().size() - 1); + } + public String getBankname() { + return bank.getName(); + } + + public long getKontostand(int kontonummer) { + Konto konto = bank.findeKonto(kontonummer); + + return konto.getKontostand(); + } + + public HashMap getKonten() { + return bank.getKonten(); } public Bank getBank() { @@ -187,23 +215,4 @@ public class Banksystem { return bank.getAktienPreis(aktienName); } - - public boolean aktienKauf(int kontonummer, int anzahl, String aktienName){ - - Konto konto = bank.findeKonto(kontonummer); - - if(konto instanceof Depot){ - - boolean erg = ((Depot) konto).aktienAuszahlung(anzahl, aktienName); - - - return erg; - - } - - - return false; - } - - } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/tui/TUI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/tui/TUI.java index 9b2aae0..e1512cc 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/tui/TUI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/tui/TUI.java @@ -65,7 +65,78 @@ public class TUI { System.out.println("Auf Wiedersehen!"); - } // hauptmenü + } // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ + + + + private void kundeRegistrieren(){ + System.out.println("Bitte die folgenden Daten eingeben: "); + System.out.println("Vorname: "); + String vorname = sc.nextLine(); + System.out.println("Nachname: "); + String nachname = sc.nextLine(); + System.out.println("Alter:"); + int alter = Integer.parseInt(sc.nextLine()); + try { + bs.setCurrentKunde(bs.addNewKunde(vorname, nachname, alter)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + private void login(){ + System.out.println("Bitte geben Sie Ihre Kunden ID ein: "); + System.out.println("> "); + int kundenID = Integer.parseInt(sc.nextLine()); + bs.setCurrentKunde(bs.getKunde(kundenID)); + + if(bs.getCurrentKunde() != null){ + System.out.println("Login erfolgreich!"); + } else { + System.err.println("Kunde nicht gefunden!"); + } + } + + + private void kontoAnlegen() throws IOException{ + System.out.println("Bitte geben Sie Ihre Kunden ID ein: "); + System.out.println("> "); + int kundenID = Integer.parseInt(sc.nextLine()); + bs.setCurrentKunde(bs.getKunde(kundenID)); + + if(bs.getCurrentKunde() != null){ + + System.out.println("Welche Art von Konto möchten Sie anlegen?"); + Kontoart[] kontoarten = Kontoart.values(); + for (int i = 0; i < kontoarten.length; i++) { + System.out.println(" " + kontoarten[i] + " " + "(" + (i+1) + ")"); + } + System.out.println("> "); + int auswahl = Integer.parseInt(sc.nextLine()); + + int kontonummer = bs.kontoAnlegen(bs.getCurrentKunde(),kontoarten[auswahl-1]); + System.out.println("Konto mit der Kontonummer " + kontonummer + " neu angelegt."); + + + } else { + System.err.println("Kunde nicht gefunden!"); + } + } + + + private void kontenAnzeigen() { + String[] konten = bs.getKontenlisteForKunde(); + if (konten.length > 0) { + System.out.println("Folgende Konten sind aktuell verfügbar:"); + for (String s : konten) { + System.out.println(s); + } + } else { + System.out.println("Bisher keine Konten angelegt."); + } + } + private void kontoAuswählen(){ @@ -251,93 +322,6 @@ public class TUI { } - private void aktienKaufen() { - - System.out.println("Aktien kaufen"); - System.out.println("Bitte geben Sie die Kontonummer ein: "); - int kontonummer = Integer.parseInt(sc.nextLine()); - - System.out.println("Folgende Aktien sind Verfügbar"); - System.out.println("1 -> Deutsche Bank AG (DBK.DE)\n2 -> Deere & Company (DCO.DE)"); - System.out.println("Bitte geben Sie den Namen in Klammern ein um den Preis zu sehen:"); - String aktienName = sc.nextLine(); - - System.out.println("Preis der Aktie"); - System.out.println(bs.getAktienPreis(aktienName)); - - System.out.println("Bitte geben Sie die Anzahl der Aktien ein, die Sie kaufen möchten: "); - int anzahl = Integer.parseInt(sc.nextLine()); - - boolean erg = bs.aktienKauf(kontonummer, anzahl, aktienName); - System.out.printf("Aktienkauf" + ((!erg)? " nicht" : "" ) + " erfolgreich. "); - - } - - private void kontoAnlegen() throws IOException{ - System.out.println("Bitte geben Sie Ihre Kunden ID ein: "); - System.out.println("> "); - int kundenID = Integer.parseInt(sc.nextLine()); - bs.setCurrentKunde(bs.getKunde(kundenID)); - - if(bs.getCurrentKunde() != null){ - - System.out.println("Welche Art von Konto möchten Sie anlegen?"); - Kontoart[] kontoarten = Kontoart.values(); - for (int i = 0; i < kontoarten.length; i++) { - System.out.println(" " + kontoarten[i] + " " + "(" + (i+1) + ")"); - } - System.out.println("> "); - int auswahl = Integer.parseInt(sc.nextLine()); - - int kontonummer = bs.kontoAnlegen(bs.getCurrentKunde(),kontoarten[auswahl-1]); - System.out.println("Konto mit der Kontonummer " + kontonummer + " neu angelegt."); - - - } else { - System.err.println("Kunde nicht gefunden!"); - } - } - - private void login(){ - System.out.println("Bitte geben Sie Ihre Kunden ID ein: "); - System.out.println("> "); - int kundenID = Integer.parseInt(sc.nextLine()); - bs.setCurrentKunde(bs.getKunde(kundenID)); - - if(bs.getCurrentKunde() != null){ - System.out.println("Login erfolgreich!"); - } else { - System.err.println("Kunde nicht gefunden!"); - } - } - - private void kundeRegistrieren(){ - System.out.println("Bitte die folgenden Daten eingeben: "); - System.out.println("Vorname: "); - String vorname = sc.nextLine(); - System.out.println("Nachname: "); - String nachname = sc.nextLine(); - System.out.println("Alter:"); - int alter = Integer.parseInt(sc.nextLine()); - try { - bs.setCurrentKunde(bs.addNewKunde(vorname, nachname, alter)); - } catch (Exception e) { - e.printStackTrace(); - } - } - - private void kontenAnzeigen() { - String[] konten = bs.getKontenlisteForKunde(); - if (konten.length > 0) { - System.out.println("Folgende Konten sind aktuell verfügbar:"); - for (String s : konten) { - System.out.println(s); - } - } else { - System.out.println("Bisher keine Konten angelegt."); - } - } - private void geldEinzahlen() throws Exception { int kontonummer = 0; @@ -382,6 +366,7 @@ public class TUI { } + private void geldAuszahlen() throws Exception { int kontonummer = 0; @@ -427,6 +412,7 @@ public class TUI { } + private void kontoauszugDrucken() { System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: "); int kontonummer = Integer.parseInt(sc.nextLine()); @@ -442,6 +428,7 @@ public class TUI { System.out.println("Noch keine Kontobewegungen."); } + private void überweisungBeauftragen() throws Exception { System.out.print("Bitte die Kontonummer des Ausgangskontos der Überweisung eingeben: "); int startkonto = Integer.parseInt(sc.nextLine()); @@ -460,6 +447,7 @@ public class TUI { System.out.println("Überweisung" + ((!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); } + private void saldoAbfragen() { System.out.print("Bitte die Kontonummer des gewünschten Kontos eingeben: "); int konto = Integer.parseInt(sc.nextLine()); @@ -471,4 +459,26 @@ public class TUI { System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo / 100d)); } + + private void aktienKaufen() { + + System.out.println("Aktien kaufen"); + System.out.println("Bitte geben Sie die Kontonummer ein: "); + int kontonummer = Integer.parseInt(sc.nextLine()); + + System.out.println("Folgende Aktien sind Verfügbar"); + System.out.println("1 -> Deutsche Bank AG (DBK.DE)\n2 -> Deere & Company (DCO.DE)"); + System.out.println("Bitte geben Sie den Namen in Klammern ein um den Preis zu sehen:"); + String aktienName = sc.nextLine(); + + System.out.println("Preis der Aktie"); + System.out.println(bs.getAktienPreis(aktienName)); + + System.out.println("Bitte geben Sie die Anzahl der Aktien ein, die Sie kaufen möchten: "); + int anzahl = Integer.parseInt(sc.nextLine()); + + boolean erg = bs.aktienKauf(kontonummer, anzahl, aktienName); + System.out.printf("Aktienkauf" + ((!erg)? " nicht" : "" ) + " erfolgreich. "); + + } }