parent
563dd22766
commit
44aacddf3e
|
@ -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);
|
||||
|
|
|
@ -6,13 +6,17 @@ import java.util.Collection;
|
|||
import java.util.HashMap;
|
||||
|
||||
public class Bank implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String name;
|
||||
private HashMap<Integer, Konto> konten = new HashMap<>();
|
||||
private HashMap<Integer, Kunde> kundenMap = new HashMap<>();
|
||||
private int kontozähler;
|
||||
private int kundenzähler;
|
||||
|
||||
private HashMap<Integer, Konto> konten = new HashMap<>();
|
||||
private HashMap<Integer, Kunde> kundenMap = new HashMap<>();
|
||||
|
||||
|
||||
|
||||
public Bank(String name) {
|
||||
this.name = name;
|
||||
|
@ -41,6 +45,10 @@ public class Bank implements Serializable {
|
|||
kundenMap.put(++kundenzähler, new Kunde(name, surname, age));
|
||||
}
|
||||
|
||||
public Konto findeKonto(int kontonummer) {
|
||||
return konten.get(kontonummer);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
@ -49,10 +57,6 @@ public class Bank implements Serializable {
|
|||
return konten.values();
|
||||
}
|
||||
|
||||
public Konto findeKonto(int kontonummer) {
|
||||
return konten.get(kontonummer);
|
||||
}
|
||||
|
||||
public HashMap<Integer, Konto> getKonten() {
|
||||
return this.konten;
|
||||
}
|
||||
|
|
|
@ -12,11 +12,6 @@ public class Depot extends Konto{
|
|||
super(kunde, kontozähler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Depot mit der Kontonummer " + super.getKontonummer() + " angelegt.";
|
||||
}
|
||||
|
||||
public boolean aktienAuszahlung(int auswahl, String aktienName){
|
||||
|
||||
if (stand - (auswahl * Aktie.getAktienkurs(aktienName)) >= 0) {
|
||||
|
@ -36,5 +31,9 @@ public class Depot extends Konto{
|
|||
aktienMap.put(anzahl, aktienName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Depot-" + super.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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<Kontobewegung> 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -9,8 +9,8 @@ public class Kunde implements Serializable{
|
|||
private String name;
|
||||
private String surname;
|
||||
private int age;
|
||||
private ArrayList<Konto> konten;
|
||||
|
||||
private ArrayList<Konto> konten;
|
||||
|
||||
public Kunde(String name, String surname, int age) {
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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,18 +135,57 @@ public class Banksystem {
|
|||
return konto.berechneSaldo(anzahl);
|
||||
}
|
||||
|
||||
public HashMap<Integer, Konto> 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);
|
||||
|
||||
bank.addNewKunde(name, surname, age);
|
||||
Persistenz.speichereBankDaten(this.bank, bank.getName());
|
||||
return bank.getKundenMap().get(bank.getKundenMap().size() - 1);
|
||||
if(konto instanceof Girokonto){
|
||||
return Kontoart.Girokonto;
|
||||
}
|
||||
else if(konto instanceof Depot){
|
||||
return Kontoart.Depot;
|
||||
}
|
||||
else{
|
||||
return Kontoart.Sparkonto;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getBankname() {
|
||||
return bank.getName();
|
||||
}
|
||||
|
||||
public long getKontostand(int kontonummer) {
|
||||
Konto konto = bank.findeKonto(kontonummer);
|
||||
|
||||
return konto.getKontostand();
|
||||
}
|
||||
|
||||
public HashMap<Integer, Konto> getKonten() {
|
||||
return bank.getKonten();
|
||||
}
|
||||
|
||||
public Bank getBank() {
|
||||
return this.bank;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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. ");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue