forked from hummel/Bank-System
Girokonto Änderungen
parent
58b5c8aa12
commit
8be5af5926
Binary file not shown.
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -7,7 +7,12 @@ public class Girokonto extends Konto {
|
|||
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
@ -15,19 +16,27 @@ public class Konto {
|
|||
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");
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -5,11 +5,16 @@ 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) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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.
Loading…
Reference in New Issue