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 757ed04..5e93370 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java @@ -1,7 +1,8 @@ package de.hs_mannheim.informatik.bank; import de.hs_mannheim.informatik.bank.facade.Banksystem; -import de.hs_mannheim.informatik.bank.ui.UI; +import de.hs_mannheim.informatik.bank.gui.KontoAnlegenFrame; +import de.hs_mannheim.informatik.bank.gui.KontoListingFrame; public class Main { @@ -9,7 +10,11 @@ public class Main { Banksystem bs = new Banksystem("Spaßkasse Mannheim"); - UI ui = new UI(bs); + KontoAnlegenFrame kaf = new KontoAnlegenFrame(bs); + kaf.setVisible(true); + + KontoListingFrame klf = new KontoListingFrame(bs); + klf.setVisible(true); } 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 5570079..2c5b1c3 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 @@ -46,7 +46,7 @@ public class Banksystem { } - public int kontoAnlegen(Kunde kunde, Kontoart kontoart){ + public int kontoAnlegen(Kunde kunde, Kontoart kontoart) { int kontonummer = bank.addKonto(kunde, kontoart); try { diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoAnlegenFrame.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoAnlegenFrame.java new file mode 100644 index 0000000..9357ae4 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoAnlegenFrame.java @@ -0,0 +1,70 @@ +package de.hs_mannheim.informatik.bank.gui; + +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; + +import de.hs_mannheim.informatik.bank.domain.Kontoart; +import de.hs_mannheim.informatik.bank.facade.Banksystem; + +public class KontoAnlegenFrame extends JFrame implements ActionListener { + + private JTextField eingabe; + private JTextArea ausgabe; + private JButton ok; + + private Banksystem bs; + + public KontoAnlegenFrame(Banksystem bs) { + + this.bs = bs; + + this.setTitle(bs.getBankname()); + this.setSize(400, 300); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + eingabe = new JTextField(20); + + ausgabe = new JTextArea(10, 20); + ausgabe.setLineWrap(true); + ausgabe.setWrapStyleWord(true); + + JScrollPane sp = new JScrollPane(ausgabe); + + ok = new JButton("Konto anlegen"); + ok.addActionListener(this); + + this.add(eingabe, "North"); + this.add(sp, "Center"); + this.add(ok, "South"); + + } + + @Override + public void actionPerformed(ActionEvent e) { + + System.out.println("Konto anlegen..."); + + try { + + int knr = bs.kontoAnlegen(bs.getCurrentKunde(), Kontoart.Sparkonto); + + this.ausgabe.append("Neus Konto angelegt: " + knr + "\n"); + } catch (Exception e1) { + + e1.printStackTrace(); + + } + + + + + } + + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoListingFrame.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoListingFrame.java new file mode 100644 index 0000000..a9b72fc --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/gui/KontoListingFrame.java @@ -0,0 +1,60 @@ +package de.hs_mannheim.informatik.bank.gui; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; + +import de.hs_mannheim.informatik.bank.facade.Banksystem; + +public class KontoListingFrame extends JFrame implements ActionListener{ + + private JTextField eingabe; + private JTextArea ausgabe; + private JButton ok; + + private Banksystem bs; + + public KontoListingFrame(Banksystem bs) { + + this.bs = bs; + + this.setTitle(bs.getBankname()); + this.setSize(300, 300); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + eingabe = new JTextField(20); + + ausgabe = new JTextArea(5, 20); + ausgabe.setLineWrap(true); + ausgabe.setWrapStyleWord(true); + + JScrollPane sp = new JScrollPane(ausgabe); + + ok = new JButton("Kontenliste abrufen"); + ok.addActionListener(this); + + this.add(eingabe, "North"); + this.add(sp, "Center"); + this.add(ok, "South"); + + } + + @Override + public void actionPerformed(ActionEvent e) { + System.out.println("Kontenliste abrufen..."); + + ausgabe.setText(""); + String[] konten = bs.getKontenlisteForKunde(); + + for (String konto : konten) { + ausgabe.append(konto + "\n"); + } + + + } +} 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 deleted file mode 100644 index 7ba3ae6..0000000 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ /dev/null @@ -1,718 +0,0 @@ -package de.hs_mannheim.informatik.bank.ui; - -import java.io.IOException; -import java.util.Scanner; - -import de.hs_mannheim.informatik.bank.domain.Kontoart; -import de.hs_mannheim.informatik.bank.facade.Banksystem; - -public class UI { - private Banksystem bs; - Scanner sc = new Scanner(System.in); - - public UI(Banksystem bs) { - this.bs = bs; - hauptmenü(); - } - - private void hauptmenü() { - System.out.println("Willkommen bei der " + bs.getBankname() + "!"); - - mainloop: while (true) { - System.out.println(); - System.out.println("--------"); - System.out.println("Hauptmenü"); - System.out.println("0 -> Kundenkonto erstellen"); - System.out.println("1 -> Login"); - System.out.println("2 -> Konto anlegen"); - System.out.println("3 -> Konten anzeigen"); - System.out.println("4 -> Konto auswählen"); - - System.out.println("5 -> Beenden"); - System.out.println(); - - System.out.print("> "); - int input = Integer.parseInt(sc.nextLine()); - System.out.println(); - - try { - switch (input) { - case 0: - kundeRegistrieren(); - break; - case 1: - login(); - break; - case 2: - kontoAnlegen(); - break; - case 3: - kontenAnzeigen(); - break; - case 4: - kontoAuswählen(); - break; - - case 5: - break mainloop; - } - - } catch (Exception e) { - System.err.println(e.getLocalizedMessage()); - } - System.out.println(); - } - - System.out.println("Auf Wiedersehen!"); - - } // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ // HAUPTMENÜ - - - - private void kundeRegistrieren(){ - - boolean running = true; - - while(running){ - - System.out.println("Bitte geben Sie die folgenden Daten ein: "); - System.out.print("Vorname: "); - String vorname = sc.nextLine(); - System.out.print("Nachname: "); - String nachname = sc.nextLine(); - System.out.print("Alter:"); - int alter = Integer.parseInt(sc.nextLine()); - try { - bs.setCurrentKunde(bs.addNewKunde(vorname, nachname, alter)); - } catch (Exception e) { - System.err.println("Kundenkonto konnte nicht erstellt werden!"); - e.printStackTrace(); - break; - } - System.out.println("Ihr Kundenkonto mit der ID [" + bs.getKundenID() + "] wurde erstellt."); - running = false; - - } - - } - - - private void login(){ - - boolean running = true; - - while(running){ - - try { - System.out.println("Bitte geben Sie Ihre Kunden ID ein: "); - System.out.print("> "); - int kundenID = Integer.parseInt(sc.nextLine()); - bs.setCurrentKunde(bs.getKunde(kundenID)); - - if(bs.getCurrentKunde() != null){ - System.out.println("Login erfolgreich!"); - running = false; - } else { - System.err.println("Kunde nicht gefunden!"); - break; - } - - } catch (Exception e) { - System.err.println("Login fehlgeschlagen!"); - e.printStackTrace(); - running = false; - } - - } -} - - - private void kontoAnlegen() throws IOException{ - - boolean running = true; - - while(running){ - - try { - - System.out.println("Bitte geben Sie Ihre Kunden ID ein: "); - System.out.print("> "); - 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.print("> "); - int auswahl = Integer.parseInt(sc.nextLine()); - - int kontonummer = bs.kontoAnlegen(bs.getCurrentKunde(),kontoarten[auswahl-1]); - System.out.println("Ihr ausgewähltes Konto mit der " + kontonummer + " neu angelegt."); - running = false; - - } else { - System.err.println("Kunde nicht gefunden!"); - break; - } - - } catch (Exception e) { - System.err.println("Konto konnte nicht angelegt werden!"); - e.printStackTrace(); - running = false; - } - - } -} - - private void kontenAnzeigen() { - - try { - String[] konten = bs.getKontenlisteForKunde(); - if (konten.length > 0) { - System.out.println("Sie haben aktuell folgende Konten zur Verfügung:"); - for (String s : konten) { - System.out.println(s); - } - } else { - System.out.println("Sie haben bisher keine Konten angelegt"); - } - } catch (Exception e) { - System.err.println("Konten konnten nicht laden!"); - e.printStackTrace(); - } -} - - private void aktienAnzeigen(){ - - try { - - String[] aktien = bs.getAktienliste(); - - if (aktien.length > 0) { - System.out.println("Sie haben folgende Aktien im Besitz: "); - for (String s : aktien) { - System.out.println(s); - } - } else { - System.out.println("Bisher keine Aktien gekauft."); - } - - } catch (Exception e) { - - System.err.println("Aktien konnten nicht laden!"); - e.printStackTrace(); - - } - - } - - - private void kontoAuswählen(){ - - boolean running = true; - - kontenAnzeigen(); - System.out.println("Bitte geben Sie die Kontonummer ihres Kontos ein mit dem Sie weiterarbeiten wollen"); - int kontonummer = Integer.parseInt(sc.nextLine()); - - - if(bs.checkKontoart(kontonummer).equals(Kontoart.Sparkonto)){ - - if(bs.getKonten().containsKey(kontonummer)){ - - while(running){ - - System.out.println("--------"); - System.out.println("Kontomenü"); - System.out.println("0 -> Geld einzahlen"); - System.out.println("1 -> Geld auszahlen"); - System.out.println("2 -> Kontoauszug drucken"); - System.out.println("3 -> Saldo abfragen"); - System.out.println("4 -> Zurück zum Hauptmenü"); - - System.out.print("> "); - int input = Integer.parseInt(sc.nextLine()); - System.out.println(); - - try { - - switch (input) { - case 0: - geldEinzahlen(); - break; - case 1: - geldAuszahlen(); - break; - case 2: - kontoauszugDrucken(); - break; - case 3: - saldoAbfragen(); - break; - case 4: - running = false; - break; - } - - } catch (Exception e) { - System.err.println(e.getLocalizedMessage()); - } - - System.out.println(); - - } - - } else { - System.out.println("Kontonummer nicht gefunden"); - } - - } - - - else if (bs.checkKontoart(kontonummer).equals(Kontoart.Girokonto)){ - - if(bs.getKonten().containsKey(kontonummer)){ - - while(running) { - - System.out.println("--------"); - System.out.println("Kontomenü"); - System.out.println("0 -> Geld einzahlen"); - System.out.println("1 -> Geld auszahlen"); - System.out.println("2 -> Kontoauszug drucken"); - System.out.println("3 -> Überweisung beauftragen"); - System.out.println("4 -> Saldo abfragen"); - System.out.println("5 -> Zurück zum Hauptmenü"); - System.out.println(); - - System.out.print("> "); - int input = Integer.parseInt(sc.nextLine()); - System.out.println(); - - try { - switch (input) { - case 0: - geldEinzahlen(); - break; - case 1: - geldAuszahlen(); - break; - case 2: - kontoauszugDrucken(); - break; - case 3: - überweisungBeauftragen(); - break; - case 4: - saldoAbfragen(); - break; - case 5: - running = false; - break; - } - - } catch (Exception e) { - System.err.println(e.getLocalizedMessage()); - } - System.out.println(); - - } - - - } else { - System.out.println("Kontonummer nicht gefunden"); - } - - } - - else if (bs.checkKontoart(kontonummer).equals(Kontoart.Depot)){ - - if(bs.getKonten().containsKey(kontonummer)){ - - while(running) { - - System.out.println("--------"); - System.out.println("Kontomenü"); - System.out.println("0 -> Geld einzahlen"); - System.out.println("1 -> Geld auszahlen"); - System.out.println("2 -> Kontoauszug drucken"); - System.out.println("3 -> Überweisung beauftragen"); - System.out.println("4 -> Saldo abfragen"); - System.out.println("5 -> Aktien kaufen"); - System.out.println("6 -> Aktien anzeigen"); - System.out.println("7 -> Zurück zum Hauptmenü"); - System.out.println(); - - System.out.print("> "); - int input = Integer.parseInt(sc.nextLine()); - System.out.println(); - - try { - switch (input) { - case 0: - geldEinzahlen(); - break; - case 1: - geldAuszahlen(); - break; - case 2: - kontoauszugDrucken(); - break; - case 3: - überweisungBeauftragen(); - break; - case 4: - saldoAbfragen(); - break; - case 5: - aktienKaufen(); - break; - case 6: - aktienAnzeigen(); - break; - case 7: - running = false; - break; - } - - } catch (Exception e) { - System.err.println(e.getLocalizedMessage()); - } - System.out.println(); - - } - - - } else { - System.out.println("Kontonummer nicht gefunden"); - } - - - } else { - System.out.println("Kontonummer nicht gefunden"); - } - - } - - - private void geldEinzahlen() throws Exception { - - int kontonummer = 0; - double betrag = 0; - boolean running = true; - - while(running) { - - System.out.print("Bitte geben Sie ihre Kontonummer ein: "); - - try { - - kontonummer = Integer.parseInt(sc.nextLine()); - - if(bs.getKonten().containsKey(kontonummer)){ - - System.out.print("Bitte geben Sie den Betrag ein: "); - - try { - - betrag = Double.parseDouble(sc.nextLine()); - - } catch (NumberFormatException nfe) { - System.err.println("Betrag muss eine Zahl sein!"); - continue; - } - - } else { - System.out.println("Kontonummer existiert nicht!"); - break; - } - - } catch (NumberFormatException nfe) { - System.err.println("Kontonummer muss eine Zahl sein!"); - continue; - } - - running = false; - - } - - long neuerKontostand = bs.geldEinzahlen(kontonummer, (long) betrag * 100); - System.out.printf("Einzahlung erfolgreich, Ihr neuer Kontostand beträgt: %.2f€", (neuerKontostand) / 100.0); - - } - - - private void geldAuszahlen() throws Exception { - - int kontonummer = 0; - double betrag = 0; - boolean running = true; - - while(running){ - - System.out.print("Bitte geben Sie ihre Kontonummer ein: "); - - try { - - kontonummer = Integer.parseInt(sc.nextLine()); - - if(bs.getKonten().containsKey(kontonummer)){ - - System.out.println("Ihr aktueller Kontostand beträgt " + bs.getKontostand(kontonummer) / 100 + "€"); - System.out.print("Bitte geben Sie den Betrag zum abheben ein: "); - - try { - - betrag = Double.parseDouble(sc.nextLine()); - - } catch (NumberFormatException nfe) { - System.err.println("Betrag muss eine Zahl sein!"); - continue; - } - - } else { - System.out.println("Kontonummer existiert nicht!"); - break; - } - - } catch (NumberFormatException nfe) { - System.err.println("Kontonummer muss eine Zahl sein!"); - continue; - } - - running = false; - - } - - boolean erfolg = bs.geldAuszahlen(kontonummer, (long) betrag * 100); - long neuerKontostand = bs.getKontostand(kontonummer) / 100; - - System.out.printf("Auszahlung" + ((!erfolg)? " nicht" : "" ) + " erfolgreich. "); - System.out.println("Ihr neuer Kontostand beträgt: " + neuerKontostand + "€"); - - } - - - private void kontoauszugDrucken() { - - boolean running = true; - - while(running){ - - try { - - System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: "); - int kontonummer = Integer.parseInt(sc.nextLine()); - - System.out.println("Auszug für Konto " + kontonummer); - String[] kontobewegungen = bs.erstelleKontoauszug(kontonummer); - - try { - - if (kontobewegungen.length > 0) - for (String kb : kontobewegungen) { - System.out.println(kb); - } - running = false; - - } catch (Exception e) { - System.out.println("Keine Kontobewegungen vorhanden"); - running = false; - } - - - } catch (Exception e) { - System.err.println("Kontoauszug fehlgeschlagen!"); - e.printStackTrace(); - break; - } - - } -} - - private void überweisungBeauftragen() throws Exception { - - boolean running = true; - int startkonto = 0; - int zielkonto = 0; - double betrag = 0; - String verwendungszweck = ""; - - while (running) { - - System.out.print("Bitte geben Sie die Kontonummer des Ausgangskontos der Überweisung ein: "); - - try { - - startkonto = Integer.parseInt(sc.nextLine()); - - if(bs.getKonten().containsKey(startkonto)){ - - System.out.print("Bitte geben Sie die Kontonummer des Zielkontos der Überweisung ein: "); - - try { - - zielkonto = Integer.parseInt(sc.nextLine()); - - if(bs.getKonten().containsKey(zielkonto)){ - - System.out.print("Bitte geben Sie den gewünschten Überweisungsbetrag ein: "); - - try { - - betrag = Double.parseDouble(sc.nextLine()); - - } catch (Exception e) { - System.err.println("Betrag muss eine Zahl sein!"); - e.printStackTrace(); - break; - } - - System.out.print("Bitte geben Sie den Verwendungszweck ein: "); - verwendungszweck = sc.nextLine(); - - } else { - System.out.println("Zielkonto existiert nicht!"); - break; - } - - } catch (Exception e) { - System.err.println("Kontonummer muss eine Zahl sein!"); - e.printStackTrace(); - break; - } - - } else { - System.out.println("Startkonto existiert nicht!"); - break; - } - - } catch (Exception e) { - System.err.println("Kontonummer muss eine Zahl sein!"); - e.printStackTrace(); - break; - } - - running = false; - - } - - boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long) (betrag * 100), verwendungszweck); - System.out.println("Überweisung" + ((!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); - - } - - - private void saldoAbfragen() { - - boolean running = true; - int kontonummer = 0; - int anzahl = 0; - - while(running) { - - System.out.print("Geben Sie bitte die Kontonummer des gewünschten Kontos ein: "); - - try { - - kontonummer = Integer.parseInt(sc.nextLine()); - - if(bs.getKonten().containsKey(kontonummer)){ - - System.out.print("Bitte geben Sie die Anzahl der Kontobewegungen für den Saldo ein: "); - - try { - - anzahl = Integer.parseInt(sc.nextLine()); - - } catch (Exception e) { - System.err.println("die Anzahl muss eine Zahl sein!"); - e.printStackTrace(); - break; - } - - } else { - System.out.println("Kontonummer existiert nicht"); - break; - } - - } catch (Exception e) { - System.err.println("Kontonummer muss eine Zahl sein!"); - e.printStackTrace(); - break; - } - - running = false; - - } - - - long saldo = bs.saldoBestimmen(kontonummer, anzahl); - System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo / 100d)); - - } - - - private void aktienKaufen() { - - boolean running = true; - int kontonummer = 0; - int anzahl = 0; - String aktienName = ""; - - while (running) { - - System.out.println("Aktien kaufen"); - System.out.print("Bitte geben Sie die Kontonummer ein: "); - - try { - - kontonummer = Integer.parseInt(sc.nextLine()); - - if(bs.getKonten().containsKey(kontonummer)){ - - System.out.println("Folgende Aktien sind Verfügbar"); - System.out.println("1 -> Deutsche Bank AG (DBK.DE)\n2 -> Deere & Company (DCO.DE)"); - System.out.print("Bitte geben Sie den Namen in Klammern ein um den Preis zu sehen:"); - - aktienName = sc.nextLine(); - - System.out.println("Preis der Aktie"); - System.out.println(bs.getAktienPreis(aktienName)); - - System.out.print("Bitte geben Sie die Anzahld er Aktien ein, die sie kaufen möchten: "); - - try { - - anzahl = Integer.parseInt(sc.nextLine()); - - } catch (Exception e) { - System.err.println("Die Anzahl muss eine Zahl sein!"); - e.printStackTrace(); - break; - } - - } else { - System.out.println("Kontonummer existiert nicht!"); - break; - } - - } catch (Exception e) { - System.err.println("Kontonummer muss eine Zahl sein!"); - e.printStackTrace(); - break; - } - - running = false; - - } - - boolean erg = bs.aktienKauf(kontonummer, anzahl, aktienName); - System.out.printf("Aktienkauf" + ((!erg)? " nicht" : "" ) + " erfolgreich. "); - - } -}