kauf aktien still buggy

WummerMIB 2022-11-06 12:55:18 +01:00
parent 31429a0998
commit 076845f3e4
6 changed files with 103 additions and 22 deletions

View File

@ -5,9 +5,9 @@ public class Aktien {
private static int id = 0;
private String name;
private long kosten;
private String inhaber;
private Konto inhaber;
public Aktien(String name, long kosten, String inhaber) {
public Aktien(String name, long kosten, Konto inhaber) {
super();
this.name = name;
this.kosten = kosten;
@ -19,7 +19,7 @@ public class Aktien {
return id;
}
public void setInhaber(String inhaber) {
public void setInhaber(Konto inhaber) {
this.inhaber = inhaber;
}

View File

@ -26,23 +26,14 @@ public class Bank implements Serializable {
public void kaufeAktien(int kontonummer, int idAktien) {
Aktien ak1 = new Aktien("WertTest",10,"bob");
Aktien ak2 = new Aktien("WertTest2",10,"otto");
Girokonto gr = new Girokonto("Paul", 1020);
Girokonto gr2 = new Girokonto("Blubb", 1021);
gr.einzahlen(10000, name, name, name);
gr2.einzahlen(10000, name, name, name);
wertpapiere.put(ak1.getId(),ak1);
wertpapiere.put(ak2.getId(),ak2);
Depot kd = (Depot) konten.get(kontonummer);
Konto kd = konten.get(kontonummer);
Aktien ak = wertpapiere.get(idAktien);
System.out.println(ak.toString());
if(kd instanceof Depot) {
kd.kaufeAktien(gr2, ak);
ak.setInhaber(kd.getInhaber());
((Depot)kd).kaufeAktien((Depot)kd, ak);
ak.setInhaber(kd);
System.out.println(ak.toString());
}
}
}
public int addKonto(String name, int auswahl , int id) {
@ -52,10 +43,14 @@ public class Bank implements Serializable {
k = new Konto(name, ++kontozähler);
Kunde ku = kunden.get(id);
k.setKunde(ku);}
else {
else if(auswahl == 2) {
k = new Girokonto(name, ++kontozähler);
Kunde ku = kunden.get(id);
k.setKunde(ku);
} else {
k = new Depot(name, ++kontozähler);
Kunde ku = kunden.get(id);
k.setKunde(ku);
}
konten.put(k.getKontonummer(), k);
@ -88,5 +83,16 @@ public class Bank implements Serializable {
public Collection<Kunde> getKundenListe() {
return kunden.values();
}
public void aktieAnlegen(String aktienName, int kosten, int kontonummer) {
Aktien ak = new Aktien(aktienName,kosten,konten.get(kontonummer));
wertpapiere.put(ak.getId(), ak);
}
public Collection<Aktien> getAktienListe() {
return wertpapiere.values();
}
}

View File

@ -10,8 +10,8 @@ public class Depot extends Girokonto {
super(inhaber, kontozähler);
}
public boolean kaufeAktien(Girokonto g, Aktien ak) {
boolean erfolgreich = super.überweise(g, stand, getInhaber());
public boolean kaufeAktien(Depot g, Aktien ak) {
boolean erfolgreich = überweise(g, stand, getInhaber());
if(erfolgreich) {
wertpapiere.add(ak);
return true;
@ -22,4 +22,16 @@ public class Depot extends Girokonto {
public ArrayList<Aktien> getWertpapiere() {
return wertpapiere;
}
public boolean überweise(Depot ziel, long betrag, String zweck) {
if (super.getKontostand() - betrag >= dispo * (-1)) {
this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber());
ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber());
return true;
}
return false;
}
}

View File

@ -3,12 +3,13 @@ package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable;
public class Girokonto extends Konto implements Serializable {
private long dispo = 100000;
protected long dispo = 100000;
public Girokonto(String inhaber, int kontozähler) {
super(inhaber, kontozähler);
}
public boolean überweise(Girokonto ziel, long betrag, String zweck) {
if (super.getKontostand() - betrag >= dispo * (-1)) {
this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber());

View File

@ -3,6 +3,7 @@ package de.hs_mannheim.informatik.bank.facade;
import java.io.InvalidClassException;
import java.util.Collection;
import de.hs_mannheim.informatik.bank.domain.Aktien;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Girokonto;
import de.hs_mannheim.informatik.bank.domain.Konto;
@ -117,4 +118,24 @@ public class Banksystem {
public void kontoZuKunde(int kontonummer, int id) {
bank.kontoZuKunde(kontonummer, id);
}
public void aktieAnlegen(String aktienName, int kosten, int kontonummer) {
bank.aktieAnlegen(aktienName, kosten, kontonummer);
}
public String[] getAktienListe() {
Collection<Aktien> aktiens = bank.getAktienListe();
String[] liste = new String[aktiens.size()];
int i = 0;
for (Aktien k : aktiens) {
liste[i++] = k.toString();
}
return liste;
}
public void kaufeAktien(int kontonummer, int aktienId) {
bank.kaufeAktien(kontonummer,aktienId);
}
}

View File

@ -30,7 +30,10 @@ public class UI {
System.out.println("8 -> Neuer Kunde");
System.out.println("9 -> Alle Kunden anzeigen");
System.out.println("10 -> Kunde zu Konto zuweisen");
System.out.println("12 -> Beenden");
System.out.println("11 -> Aktie anlegen");
System.out.println("12 -> Alle Aktien anzeigen");
System.out.println("13 -> Aktien kaufen");
System.out.println("99 -> Beenden");
System.out.println();
System.out.print("> ");
@ -69,7 +72,16 @@ public class UI {
case 10:
kontoZuKunde();
break;
case 11:
aktienAnlegen();
break;
case 12:
aktienAnzeigen();
break;
case 13:
aktienKaufen();
break;
case 99:
break mainloop;
}
@ -83,6 +95,35 @@ public class UI {
} // hauptmenü
private void aktienKaufen() {
System.out.println("Geben sie die Kontonummer ein");
int kontonummer = returnUserInput();
System.out.println("Geben sie die id der Aktie ein");
int aktienId = returnUserInput();
bs.kaufeAktien(kontonummer,aktienId);
}
private void aktienAnzeigen() {
String[] aktien = bs.getAktienListe();
if(aktien.length > 0) {
for(String s : aktien) {
System.out.println(s);
}
}else {
System.out.println("Bisher keine Aktien angelegt.");
}
}
private void aktienAnlegen() {
System.out.println("Bitte geben sie den Namen der Aktie ein");
String aktienName = sc.nextLine();
System.out.println("Geben sie die Kosten ein");
int kosten = returnUserInput();
System.out.println("Welchem Konto gehört die Aktie Kontonummer eingeben");
int kontonummer = returnUserInput();
bs.aktieAnlegen(aktienName, kosten, kontonummer);
}
private void kontoZuKunde() {
System.out.println("Geben sie die gewünschte Kontonummer ein");
int kontoNr = returnUserInput();
@ -131,7 +172,7 @@ public class UI {
System.out.println("Bitte den Namen des Kontoinhabers angeben: ");
String name = sc.nextLine();
System.out.println("Möchten Sie ein Sparkonto (1) oder ein Girokonto (2) anlegen?");
System.out.println("Möchten Sie ein Sparkonto (1), Girokonto (2) oder ein Depot (3) anlegen?");
int auswahl = returnUserInput();
System.out.println("Geben sie die Kundennummer ein(id)");