forked from hummel/Bank-System
kauf aktien still buggy
parent
31429a0998
commit
076845f3e4
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)");
|
||||
|
|
Loading…
Reference in New Issue