Kontoauszüge hinzugefügt

main
User 2022-10-17 19:04:17 +02:00
parent 6c65d0e351
commit 25105db288
7 changed files with 110 additions and 26 deletions

View File

@ -6,10 +6,6 @@
<attribute name="module" value="true"/> <attribute name="module" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>

View File

@ -31,12 +31,12 @@ public class Bank {
} else } else
System.out.println("Konto nicht vorhanden"); System.out.println("Konto nicht vorhanden");
} }
public void auszahlen(long betrag, int kontonummer) { public void auszahlen(long betrag, int kontonummer) {
if(konten.containsKey(kontonummer)) { if (konten.containsKey(kontonummer)) {
konten.get(kontonummer).auszahlen(betrag); konten.get(kontonummer).auszahlen(betrag);
} System.out.println("Betrag " + betrag + " auf Konto " + kontonummer + " eingezahlt");
else } else
System.out.println("Konto nicht vorhanden"); System.out.println("Konto nicht vorhanden");
} }
@ -47,4 +47,12 @@ public class Bank {
System.out.println("Konto nicht vorhanden"); System.out.println("Konto nicht vorhanden");
} }
public void kontoauszügeZeigen(int kontonummer) {
if (konten.containsKey(kontonummer)) {
for(int i = 0;konten.get(kontonummer).getKontoauszüge().size()> i;i++) {
System.out.println(konten.get(kontonummer).getKontoauszüge().get(i));
}
} else
System.out.println("Konto nicht vorhanden");
}
} }

View File

@ -1,32 +1,46 @@
package de.hs_mannheim.informatik.bank.domain; package de.hs_mannheim.informatik.bank.domain;
import java.time.LocalDateTime;
import java.util.HashMap;
public class Konto { public class Konto {
private static int kontozähler = 0; private static int kontozähler = 0;
private int nummer; private int nummer;
private long stand = 0; private long stand = 0;
private String inhaber; private String inhaber;
private HashMap<Integer, String> kontoauszüge = new HashMap<>();
private int transaktionsCounter = 0;
public Konto(String inhaber) { public Konto(String inhaber) {
nummer = 1000 + kontozähler++; nummer = 1000 + kontozähler++;
this.inhaber = inhaber; this.inhaber = inhaber;
kontoauszüge.put(transaktionsCounter++, "Konto wurde am " + LocalDateTime.now() + "eröffnet");
} }
public int getKontonummer() { public int getKontonummer() {
return nummer; return nummer;
} }
public void einzahlen(long betrag) { public void einzahlen(long betrag) {
stand += betrag; stand += betrag;
kontoauszüge.put(transaktionsCounter++,
LocalDateTime.now() + " Betrag " + betrag + " wurde auf Konto " + nummer + " eingezahlt");
} }
public void auszahlen(long betrag) { public void auszahlen(long betrag) {
if(betrag <= stand) if (betrag <= stand) {
stand-= betrag; stand -= betrag;
else kontoauszüge.put(transaktionsCounter++,
LocalDateTime.now() + " Betrag " + betrag + " wurde von Konto " + nummer + " abgehoben");
} else
System.out.println("Kontostand nicht aureichend"); System.out.println("Kontostand nicht aureichend");
} }
public HashMap<Integer, String> getKontoauszüge(){
return kontoauszüge;
}
public long getKontostand() { public long getKontostand() {
return stand; return stand;
} }
@ -35,5 +49,5 @@ public class Konto {
public String toString() { public String toString() {
return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", stand=" + stand + "]"; return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", stand=" + stand + "]";
} }
} }

View File

@ -0,0 +1,23 @@
package de.hs_mannheim.informatik.bank.domain;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class KontoTests {
@Test
void test() {
Konto k = new Konto("Hans");
Bank b = new Bank("Sparkasse");
b.addKonto(k);
b.einzahlen(500, k.getKontonummer());
b.einzahlen(200, k.getKontonummer());
assertEquals(700, k.getKontostand());
}
}

View File

@ -7,41 +7,46 @@ import de.hs_mannheim.informatik.bank.domain.Konto;
public class Banksystem { public class Banksystem {
private Bank bank; private Bank bank;
public Banksystem(String bankname) { public Banksystem(String bankname) {
this.bank = new Bank(bankname); this.bank = new Bank(bankname);
} }
public int kontoAnlegen(String name) { public int kontoAnlegen(String name) {
Konto k = new Konto(name); Konto k = new Konto(name);
bank.addKonto(k); bank.addKonto(k);
return k.getKontonummer(); return k.getKontonummer();
} }
public void einzahlen(long betrag, int kontonummer) { public void einzahlen(long betrag, int kontonummer) {
bank.einzahlen(betrag, kontonummer); bank.einzahlen(betrag, kontonummer);
} }
public void auszahlen(long betrag, int kontonummer) { public void auszahlen(long betrag, int kontonummer) {
bank.auszahlen(betrag, kontonummer); bank.auszahlen(betrag, kontonummer);
} }
public void kontostandZeigen(int kontonummer) { public void kontostandZeigen(int kontonummer) {
bank.kontostandZeigen(kontonummer); bank.kontostandZeigen(kontonummer);
} }
public String[] getKontenliste() { public String[] getKontenliste() {
Collection<Konto> konten = bank.getKontenliste(); Collection<Konto> konten = bank.getKontenliste();
String[] liste = new String[konten.size()]; String[] liste = new String[konten.size()];
int i = 0; int i = 0;
for (Konto k : konten) { for (Konto k : konten) {
liste[i++] = k.toString(); liste[i++] = k.toString();
} }
return liste; return liste;
} }
public void kontoauszügeZeigen(int kontonummer) {
bank.kontoauszügeZeigen(kontonummer);
}
public String getBankname() { public String getBankname() {
return bank.getName(); return bank.getName();
} }

View File

@ -0,0 +1,23 @@
package de.hs_mannheim.informatik.bank.facade;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import de.hs_mannheim.informatik.bank.domain.Konto;
class BanksystemTests {
@Test
void einzahlenTest() {
Banksystem bs = new Banksystem("Sparkasse");
bs.kontoAnlegen("Hans");
bs.einzahlen(500, 1000);
bs.einzahlen(200, 1000);
assertEquals(700, 700);
}
}

View File

@ -25,6 +25,7 @@ public class UI {
System.out.println("3 -> Geld einzahlen"); System.out.println("3 -> Geld einzahlen");
System.out.println("4 -> Geld auszahlen"); System.out.println("4 -> Geld auszahlen");
System.out.println("5 -> Kontostand anzeigen"); System.out.println("5 -> Kontostand anzeigen");
System.out.println("6 -> Kontoauszüge zeigen");
System.out.println("9 -> Beenden"); System.out.println("9 -> Beenden");
System.out.println(); System.out.println();
@ -48,6 +49,9 @@ public class UI {
case 5: case 5:
kontostandZeigen(); kontostandZeigen();
break; break;
case 6:
kontoauszügeZeigen();
break;
case 9: case 9:
break mainloop; break mainloop;
} }
@ -117,4 +121,15 @@ public class UI {
System.out.println("Fehlerhafte Eingabe"); System.out.println("Fehlerhafte Eingabe");
} }
} }
private void kontoauszügeZeigen() {
int kontonummer;
try {
System.out.print("Kontonummer eingeben: ");
kontonummer = Integer.parseInt(sc.nextLine());
bs.kontoauszügeZeigen(kontonummer);
} catch (Exception e) {
System.out.println("Fehlerhafte Eingabe");
}
}
} }