selin 2022-10-24 13:15:32 +02:00
parent 87b679194f
commit e0b7ec925e
11 changed files with 165 additions and 30 deletions

Binary file not shown.

Binary file not shown.

View File

View File

@ -1,13 +1,20 @@
package de.hs_mannheim.informatik.bank; package de.hs_mannheim.informatik.bank;
import java.io.IOException;
import de.hs_mannheim.informatik.bank.domain.Konto;
import de.hs_mannheim.informatik.bank.facade.Banksystem; import de.hs_mannheim.informatik.bank.facade.Banksystem;
import de.hs_mannheim.informatik.bank.ui.UI; import de.hs_mannheim.informatik.bank.ui.UI;
import persistence.SpeichernLaden;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) throws ClassNotFoundException, IOException {
Banksystem bs = new Banksystem("Sparkasse Mannheim"); Banksystem bs = new Banksystem("Sparkasse Mannheim");
UI ui = new UI(bs); UI ui = new UI(bs);
// Konto test = new Konto("Selin");
SpeichernLaden.speichern(bs.getKontenliste());
SpeichernLaden.laden();
} }
//Test
} }

View File

@ -19,6 +19,10 @@ public class Bank {
return name; return name;
} }
public Konto getKonto(int Kontonummer) {
return konten.get(Kontonummer);
}
public Collection<Konto> getKontenliste() { public Collection<Konto> getKontenliste() {
return konten.values(); return konten.values();
} }
@ -27,6 +31,8 @@ public class Bank {
return konten; return konten;
} }
public void addKontostand(Integer nummer, long einzahlung) { public void addKontostand(Integer nummer, long einzahlung) {
long neuerstand = (konten.get(nummer).getKontostand() + einzahlung); long neuerstand = (konten.get(nummer).getKontostand() + einzahlung);
konten.get(nummer).setKontostand(neuerstand); } konten.get(nummer).setKontostand(neuerstand); }

View File

@ -1,20 +1,28 @@
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;
import java.util.Date;
public class Konto implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
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 ArrayList<Long> kontobewegungen = new ArrayList<>(); private ArrayList<Kontobewegung> kontobewegungen = new ArrayList<>();
private Date datum;
public Konto(String inhaber) { public Konto(String inhaber) {
nummer = 1000 + kontozähler++; nummer = 1000 + kontozähler++;
this.inhaber = inhaber; this.inhaber = inhaber;
datum = new Date();
} }
public int getKontonummer() { public int getKontonummer() {
@ -26,16 +34,28 @@ public class Konto {
return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", kontostand=" + stand + "]"; return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", kontostand=" + stand + "]";
} }
public void setKontostand(long stand) { public void setKontostand(long betrag) {
this.stand = stand; this.stand = betrag;
this.kontobewegungen.add(stand); Kontobewegung bewegung = new Kontobewegung(datum, this.inhaber, betrag, "Einzahlung");
this.kontobewegungen.add(bewegung);
} }
public ArrayList<Long> getKontoauszug() { public boolean Kontoauszahlung(long betrag) {
return kontobewegungen; if(betrag > this.stand) {
return false;
} else {
this.stand = this.stand - betrag;
Kontobewegung bewegung = new Kontobewegung(datum, this.inhaber, betrag, "Auszahlung");
this.kontobewegungen.add(bewegung);
return true;
}
} }
sc
public ArrayList<Kontobewegung> getKontoauszug() {
return this.kontobewegungen;
}
public long getKontostand() { public long getKontostand() {
return stand; return stand;

View File

@ -0,0 +1,28 @@
package de.hs_mannheim.informatik.bank.domain;
import java.util.Date;
public class Kontobewegung {
private Date datum;
private String inhaber;
private long betrag;
private String bewegung;
public Kontobewegung(Date datum, String inhaber, long betrag, String bewegung) {
this.datum = datum;
this.inhaber = inhaber;
this.betrag = betrag;
this.bewegung = bewegung;
}
public String toString() {
return "datum = " + this.datum + "inhaber = " + this.inhaber + " bewegung = " + this.bewegung
+ "betrag = " + this.betrag;
}
}

View File

@ -6,6 +6,7 @@ import java.util.HashMap;
import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Konto; import de.hs_mannheim.informatik.bank.domain.Konto;
import de.hs_mannheim.informatik.bank.domain.Kontobewegung;
public class Banksystem { public class Banksystem {
private Bank bank; private Bank bank;
@ -53,12 +54,23 @@ public class Banksystem {
} }
public long getKontoauszug(ArrayList<Long> arrayList, int nummer) { public void Kontoauszahlung(int nummer, long betrag) {
@SuppressWarnings("unused") Konto konto = bank.getKonto(nummer);
Konto kontobewegungen; konto.Kontoauszahlung(betrag);
return nummer; }
public ArrayList<Kontobewegung> getKontoauszug( int kontonummer) {
Konto konto = bank.getKonto(kontonummer);
return konto.getKontoauszug();
} }
public Bank getBank() {
return this.bank;
}
} }

View File

@ -2,7 +2,9 @@ package de.hs_mannheim.informatik.bank.ui;
import java.util.Scanner; import java.util.Scanner;
import de.hs_mannheim.informatik.bank.domain.Konto;
import de.hs_mannheim.informatik.bank.facade.Banksystem; import de.hs_mannheim.informatik.bank.facade.Banksystem;
import persistence.SpeichernLaden;
public class UI { public class UI {
private Banksystem bs; private Banksystem bs;
@ -24,8 +26,9 @@ public class UI {
System.out.println("1 -> Konto anlegen"); System.out.println("1 -> Konto anlegen");
System.out.println("2 -> Konto anzeigen"); System.out.println("2 -> Konto anzeigen");
System.out.println("3 -> Kontostand erhöhen"); System.out.println("3 -> Kontostand erhöhen");
System.out.println("4 -> Kontostand eines einzelnen anzeigen"); System.out.println("4 -> Kontostand Geld auszahlen");
System.out.println("5 -> Konto einen Kontoauszug anzeigen"); System.out.println("5 -> Kontostand eines einzelnen anzeigen");
System.out.println("6 -> Konto einen Kontoauszug anzeigen");
System.out.println("9 -> Beenden"); System.out.println("9 -> Beenden");
System.out.println(); System.out.println();
@ -37,9 +40,10 @@ public class UI {
case 2: kontenAnzeigen(); break; case 2: kontenAnzeigen(); break;
case 1: kontoAnlegen(); break; case 1: kontoAnlegen(); break;
case 3: setKontostand(); break; case 3: setKontostand(); break;
case 4: getKontostand(); break; case 4: geldAuszahlen(); break;
case 5: getKontoauszug(); break; case 5: getKontostand(); break;
case 9: break mainloop; case 6: getKontoauszug(); break;
case 9: break mainloop;
} }
} }
@ -47,12 +51,24 @@ public class UI {
} // hauptmenü } // hauptmenü
private void geldAuszahlen() {
System.out.println("Bitte die Kontonummer eingeben:");
Integer kontonummer = Integer.valueOf(sc.nextLine());
System.out.println("Bitte den Betrag der Auzahlung eingeben");
long auszahlung = Long.parseLong(sc.nextLine());
bs.Kontoauszahlung(kontonummer, auszahlung);
}
private void getKontoauszug() { private void getKontoauszug() {
System.out.println("Bitte die Kontonummer eingeben:"); System.out.println("Bitte die Kontonummer eingeben:");
Integer kontonummer = Integer.valueOf(sc.nextLine()); Integer kontonummer = Integer.valueOf(sc.nextLine());
System.out.println("Bitte den Kontoauszug anzeigen"); System.out.println(bs.getKontoauszug(kontonummer));
long kontobewegungen = Long.parseLong(sc.nextLine());
} }
@ -88,24 +104,29 @@ public class UI {
System.out.println("Bitte den Betrag der Einzahlung eingeben:"); System.out.println("Bitte den Betrag der Einzahlung eingeben:");
long einzahlung = Long.parseLong(sc.nextLine()); long einzahlung = Long.parseLong(sc.nextLine());
System.out.println("Bitte den Betrag der Auzahlung eingeben");
long auszahlung = Long.parseLong(sc.nextLine());
bs.setKontostand(nummer, einzahlung); bs.setKontostand(nummer, einzahlung);
bs.setKontostand(nummer, auszahlung);
} }
private void getKontostand() { private void getKontostand() {
System.out.println("Bitte geben Sie Ihre Kontonummer ein"); System.out.println("Bitte geben Sie Ihre Kontonummer ein");
Integer nummer = Integer.valueOf(sc.nextLine()); Integer nummer = Integer.valueOf(sc.nextLine());
System.out.println("Der Kontostand mit Nummer: " + nummer + " ist " + bs.getKontostand(nummer)); System.out.println("Der Kontostand mit Nummer: " + nummer + " ist " + bs.getKontostand(nummer));
} }
/* private void beenden() {
for(Konto konto : bs.getBank().getKontoauszug().values()) {
SpeichernLaden.speichern(konto);
}
} */
} }

View File

@ -0,0 +1,40 @@
package persistence;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import de.hs_mannheim.informatik.bank.domain.Konto;
public class SpeichernLaden {
public static void speichern(String[] konten) {
try {
OutputStream out = new FileOutputStream("Kontos.ser");
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(konten);
System.out.println("Gespeichert!");
out.close();
oos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void laden() throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("Kontos.ser"));
System.out.println( "Ausgabe: " +((String[])ois.readObject())[0] );
ois.close();
}
}

1
Bank-System 160000

@ -0,0 +1 @@
Subproject commit ba349af6c3b7c059ce6dc20ab17fc179a811e1eb