Girokonto Änderungen

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 class Main {
public static void main(String[] args) { public static void main(String[] args) throws Exception {
Banksystem bs = new Banksystem("Spaßkasse Mannheim"); Banksystem bs = new Banksystem("Spaßkasse Mannheim");
UI ui = new UI(bs); UI ui = new UI(bs);
} }

View File

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

View File

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

View File

@ -1,8 +1,9 @@
package de.hs_mannheim.informatik.bank.domain; package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
public class Kontobewegung { public class Kontobewegung implements Serializable {
private long betrag; private long betrag;
private String inhaber; private String inhaber;
private LocalDateTime datum; 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.Bank;
import de.hs_mannheim.informatik.bank.domain.Girokonto; import de.hs_mannheim.informatik.bank.domain.Girokonto;
import de.hs_mannheim.informatik.bank.domain.Konto; import de.hs_mannheim.informatik.bank.domain.Konto;
import de.mannheim.informatik.bank.perstance.Datenbank;
public class Banksystem { public class Banksystem {
private Bank bank; private Bank bank;
public Banksystem(String bankname) { public Banksystem(String bankname) throws Exception {
this.bank = new Bank(bankname); 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) { public int kontoAnlegen(String name, int auswahl) {
@ -19,7 +24,7 @@ public class Banksystem {
if (auswahl == 1) if (auswahl == 1)
k = new Konto(name); k = new Konto(name);
else else
k = new Girokonto(name); k = new Girokonto(name); // Hier eigentlich Girokonto
bank.addKonto(k); bank.addKonto(k);
@ -58,13 +63,19 @@ public class Banksystem {
return bank.getName(); return bank.getName();
} }
public boolean überweisen(int kontonummer, int empfänger, long betrag, String verwendungszweck) { public boolean überweisen(int sender, int empfänger, long betrag, String verwendungszweck) {
Konto start = bank.findeKonto(kontonummer); Konto start = bank.findeKonto(sender);
Konto ziel = bank.findeKonto(empfänger); Konto ziel = bank.findeKonto(empfänger);
if(start instanceof Girokonto && ziel instanceof Girokonto) { if(start instanceof Girokonto && ziel instanceof Girokonto) {
Girokonto.überweisen(betrag, ziel); Girokonto.überweisen(betrag, (Girokonto)start, (Girokonto)ziel, verwendungszweck);
} }
return false; 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 java.util.Scanner;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.facade.Banksystem; import de.hs_mannheim.informatik.bank.facade.Banksystem;
import de.mannheim.informatik.bank.perstance.Datenbank;
public class UI { public class UI {
private Banksystem bs; private Banksystem bs;
Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in);
public UI(Banksystem bs) { public UI(Banksystem bs) throws Exception {
this.bs = bs; this.bs = bs;
hauptmenu(); hauptmenu();
bs.speichern();
} }
private void hauptmenu() { private void hauptmenu() {
@ -110,7 +113,7 @@ public class UI {
int kontonummer; int kontonummer;
long betrag; long betrag;
try { try {
System.out.print("Kontonummer eingeben: "); System.out.print("Kontonummer eingeben: ");
kontonummer = Integer.parseInt(sc.nextLine()); kontonummer = Integer.parseInt(sc.nextLine());
System.out.print("Betrag eingeben: "); System.out.print("Betrag eingeben: ");
@ -157,4 +160,4 @@ public class UI {
System.out.println("Fehlerhafte Eingabe"); System.out.println("Fehlerhafte Eingabe");
} }
} }
} }

View File

@ -1,25 +1,45 @@
//package de.mannheim.informatik.bank.perstance; package de.mannheim.informatik.bank.perstance;
//
//import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.domain.Bank;
//
//import java.io.*; import java.io.*;
//
//public class Datenbank { public class Datenbank {
// File f = new File("Bank.ser"); private static final String saveBank = "bank.ser";
// private static final String saveZähler = "zähler.ser";
//
// public void speichern(Bank bank) throws FileNotFoundException, IOException { public static boolean sindDateGespeicher() {
// ObjectOutputStream fileOut; return new File(saveBank).exists();
// fileOut = new ObjectOutputStream(new FileOutputStream(f)); }
// fileOut.writeObject(bank);
// } public static void speichern(Bank bank) throws Exception {
// ObjectOutputStream fileOut;
// public void laden(Bank bank) throws FileNotFoundException, IOException { fileOut = new ObjectOutputStream(new FileOutputStream(saveBank));
// ObjectInputStream fileIn; fileOut.writeObject(bank);
// fileIn = new ObjectInputStream(new FileInputStream(f)); 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.