Girokonto Änderungen

main
User 2022-10-24 00:04:29 +02:00
parent 58b5c8aa12
commit 8be5af5926
10 changed files with 97 additions and 48 deletions

Binary file not shown.

View File

@ -5,7 +5,7 @@ import de.hs_mannheim.informatik.bank.ui.UI;
public class Main {
public static void main(String[] args) {
public static void main(String[] args) throws Exception {
Banksystem bs = new Banksystem("Spaßkasse Mannheim");
UI ui = new UI(bs);
}

View File

@ -30,7 +30,7 @@ public class Bank implements Serializable {
public void einzahlen(long betrag, int kontonummer) {
if (konten.containsKey(kontonummer)) {
konten.get(kontonummer).einzahlen(betrag);
konten.get(kontonummer).einzahlen(betrag, "eingezahlt");
System.out.println("Betrag " + betrag + " auf Konto " + kontonummer + " eingezahlt");
System.out.println("Neuer Kontostand: " + konten.get(kontonummer).getKontostand());
} else
@ -39,7 +39,7 @@ public class Bank implements Serializable {
public void auszahlen(long betrag, int kontonummer) {
if (konten.containsKey(kontonummer)) {
konten.get(kontonummer).auszahlen(betrag);
konten.get(kontonummer).auszahlen(betrag, "ausgezahlt");
System.out.println("Betrag " + betrag + " auf Konto " + kontonummer + " eingezahlt");
} else
System.out.println("Konto nicht vorhanden");

View File

@ -4,10 +4,15 @@ public class Girokonto extends Konto {
public Girokonto(String inhaber) {
super(inhaber);
}
public boolean überweisen(long betrag, Girokonto ziel) {
public boolean überweisen(long betrag, Girokonto start, Girokonto ziel, String verwendungszweck) {
if (betrag >= start.getKontostand()) {
start.einzahlen(betrag, "gesendet an " + ziel.getKontonummer());
ziel.einzahlen(betrag, "empfangen von " + start.getKontonummer());
return true;
} else
return false;
}
}

View File

@ -1,8 +1,9 @@
package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable;
import java.util.ArrayList;
public class Konto {
public class Konto implements Serializable {
private static int kontozähler = 0;
private int nummer;
@ -14,20 +15,28 @@ public class Konto {
nummer = 1000 + kontozähler++;
this.inhaber = inhaber;
}
public static void ladeKontoZähler(int kontoZähler) {
kontozähler = kontoZähler;
}
public int getKontonummer() {
return nummer;
}
public void einzahlen(long betrag) {
stand += betrag;
auszüge.add(new Kontobewegung(betrag, inhaber, "eingezahlt"));
public static int getKontoZähler() {
return kontozähler;
}
public void auszahlen(long betrag) {
public void einzahlen(long betrag, String verwendungszweck) {
stand += betrag;
auszüge.add(new Kontobewegung(betrag, inhaber, verwendungszweck));
}
public void auszahlen(long betrag, String verwendungszweck) {
if (betrag <= stand) {
stand -= betrag;
auszüge.add(new Kontobewegung(betrag, inhaber, "abgehoben"));
auszüge.add(new Kontobewegung(betrag, inhaber, verwendungszweck));
} else
System.out.println("Kontostand nicht aureichend");
}

View File

@ -1,8 +1,9 @@
package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable;
import java.time.LocalDateTime;
public class Kontobewegung {
public class Kontobewegung implements Serializable {
private long betrag;
private String inhaber;
private LocalDateTime datum;

View File

@ -5,12 +5,17 @@ import java.util.Collection;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Girokonto;
import de.hs_mannheim.informatik.bank.domain.Konto;
import de.mannheim.informatik.bank.perstance.Datenbank;
public class Banksystem {
private Bank bank;
public Banksystem(String bankname) {
this.bank = new Bank(bankname);
public Banksystem(String bankname) throws Exception {
if (Datenbank.sindDateGespeicher()) {
this.bank = (Bank) Datenbank.laden();
Konto.ladeKontoZähler(Datenbank.ladeKontoZähler());
} else
this.bank = new Bank(bankname);
}
public int kontoAnlegen(String name, int auswahl) {
@ -19,7 +24,7 @@ public class Banksystem {
if (auswahl == 1)
k = new Konto(name);
else
k = new Girokonto(name);
k = new Girokonto(name); // Hier eigentlich Girokonto
bank.addKonto(k);
@ -58,13 +63,19 @@ public class Banksystem {
return bank.getName();
}
public boolean überweisen(int kontonummer, int empfänger, long betrag, String verwendungszweck) {
Konto start = bank.findeKonto(kontonummer);
public boolean überweisen(int sender, int empfänger, long betrag, String verwendungszweck) {
Konto start = bank.findeKonto(sender);
Konto ziel = bank.findeKonto(empfänger);
if(start instanceof Girokonto && ziel instanceof Girokonto) {
Girokonto.überweisen(betrag, ziel);
Girokonto.überweisen(betrag, (Girokonto)start, (Girokonto)ziel, verwendungszweck);
}
return false;
}
public void speichern() throws Exception {
Datenbank.speichern(bank);
Datenbank.speicherZähler(Konto.getKontoZähler());
}
}

View File

@ -2,15 +2,18 @@ package de.hs_mannheim.informatik.bank.ui;
import java.util.Scanner;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
import de.mannheim.informatik.bank.perstance.Datenbank;
public class UI {
private Banksystem bs;
Scanner sc = new Scanner(System.in);
public UI(Banksystem bs) {
public UI(Banksystem bs) throws Exception {
this.bs = bs;
hauptmenu();
bs.speichern();
}
private void hauptmenu() {
@ -110,7 +113,7 @@ public class UI {
int kontonummer;
long betrag;
try {
try {
System.out.print("Kontonummer eingeben: ");
kontonummer = Integer.parseInt(sc.nextLine());
System.out.print("Betrag eingeben: ");
@ -157,4 +160,4 @@ public class UI {
System.out.println("Fehlerhafte Eingabe");
}
}
}
}

View File

@ -1,25 +1,45 @@
//package de.mannheim.informatik.bank.perstance;
//
//import de.hs_mannheim.informatik.bank.domain.Bank;
//
//import java.io.*;
//
//public class Datenbank {
// File f = new File("Bank.ser");
//
//
// public void speichern(Bank bank) throws FileNotFoundException, IOException {
// ObjectOutputStream fileOut;
// fileOut = new ObjectOutputStream(new FileOutputStream(f));
// fileOut.writeObject(bank);
// }
//
// public void laden(Bank bank) throws FileNotFoundException, IOException {
// ObjectInputStream fileIn;
// fileIn = new ObjectInputStream(new FileInputStream(f));
//
//
//
//
// }
//}
package de.mannheim.informatik.bank.perstance;
import de.hs_mannheim.informatik.bank.domain.Bank;
import java.io.*;
public class Datenbank {
private static final String saveBank = "bank.ser";
private static final String saveZähler = "zähler.ser";
public static boolean sindDateGespeicher() {
return new File(saveBank).exists();
}
public static void speichern(Bank bank) throws Exception {
ObjectOutputStream fileOut;
fileOut = new ObjectOutputStream(new FileOutputStream(saveBank));
fileOut.writeObject(bank);
fileOut.close();
}
public static void speicherZähler(int kontoZähler) throws Exception {
ObjectOutputStream fileOut;
fileOut = new ObjectOutputStream(new FileOutputStream(saveZähler));
fileOut.writeInt(kontoZähler);
fileOut.close();
}
public static Object laden() throws Exception {
ObjectInputStream fileIn;
fileIn = new ObjectInputStream(new FileInputStream(saveBank));
Object bank = fileIn.readObject();
fileIn.close();
return bank;
}
public static int ladeKontoZähler() throws Exception {
ObjectInputStream fileIn;
fileIn = new ObjectInputStream(new FileInputStream(saveZähler));
int kontoZähler = fileIn.readInt();
fileIn.close();
return kontoZähler;
}
}

Binary file not shown.