what the hell happend here

This commit is contained in:
Sage The DM 2025-01-22 13:50:32 +01:00
parent 809786238b
commit 3e595922e6
25 changed files with 251 additions and 0 deletions

Binary file not shown.

View file

@ -0,0 +1,29 @@
// Luca Burger
public class App {
public static void main(String[] args) throws Exception {
DoppelteBuchhaltung buchhaltung = new DoppelteBuchhaltung();
initBuchaltung(buchhaltung);
buchhaltung.alleKontenAnzeigen();
// Buchungen
buchhaltung.buchungDurchfuehren("1001", "2001", 5000, "Einzahlung in Kasse");
buchhaltung.buchungDurchfuehren("1002", "2001", -3000, "Forderungen beglichen");
buchhaltung.buchungDurchfuehren("1001", "2002", 4000, "Umsätze generieren");
// Kontenanzeigen
buchhaltung.bewegungenAufKontoAnzeigen("1001");
buchhaltung.bewegungenAufKontoAnzeigen("1002");
buchhaltung.bewegungenAufKontoAnzeigen("2001");
buchhaltung.bewegungenAufKontoAnzeigen("2002");
}
private static void initBuchaltung(DoppelteBuchhaltung buchhaltung) {
buchhaltung.sollKontoErstellen("1001", "Kasse", 2.0);
buchhaltung.sollKontoErstellen("1002", "Forderungen", 0.0);
buchhaltung.habenKontoErstellen("2001", "Verbindlichkeiten");
buchhaltung.habenKontoErstellen("2002", "Umsatzerlöse");
}
}

View file

@ -0,0 +1,70 @@
// Luca Burger
import java.util.ArrayList;
import java.util.Scanner;
public class DoppelteBuchhaltung {
Scanner scan = new Scanner(System.in);
private ArrayList<Konto> konten = new ArrayList<Konto>();
public DoppelteBuchhaltung() {
// wow
}
public void habenKontoErstellen(String kontonummer, String kontobezeichnung) {
HabenKonto konto = new HabenKonto(kontonummer, kontobezeichnung);
konten.add(konto);
}
public void sollKontoErstellen(String kontonummer, String kontobezeichnung, double zinssatz) {
SollKonto konto = new SollKonto(kontonummer, kontobezeichnung, zinssatz);
konten.add(konto);
}
public void buchungDurchfuehren(String kontonummerSoll, String kontonummerHaben, double betrag,
String beschreibung) {
Konto sollKonto = getKontoNachNummer(kontonummerSoll);
Konto habenKonto = getKontoNachNummer(kontonummerHaben);
try {
sollKonto.transaktionDurchfuehren(betrag, beschreibung);
habenKonto.transaktionDurchfuehren(betrag * -1, beschreibung);
sollKonto.buchen(betrag);
habenKonto.buchen(betrag * -1);
} catch (Exception e) {
System.out.println("error: " + e);
}
}
public void alleKontenAnzeigen() {
for (Konto konto : konten) {
String text;
if (konto instanceof SollKonto) {
text = "Kontonummer: " + konto.getKontonummer() + ", Bezeichnung: " + konto.getKontobezeichnung()
+ ", Typ: Sollkonto, Saldo: " + konto.getSaldo();
} else {
text = "Kontonummer: " + konto.getKontonummer() + ", Bezeichnung: " + konto.getKontobezeichnung()
+ ", Typ: Habenkonto, Saldo: " + konto.getSaldo();
}
System.out.println(text);
}
}
public void bewegungenAufKontoAnzeigen(String kontonummer) {
Konto konto = getKontoNachNummer(kontonummer);
ArrayList<Transaktion> transaktionen = konto.getTransaktionsverlauf();
for (Transaktion transaktion : transaktionen) {
String text = "Kontonummer für Kontobewegung eingeben:\n" + konto.getKontonummer()
+ "\n Bewegungen auf Konto: " + konto.getKontobezeichnung() + "\n";
}
}
private Konto getKontoNachNummer(String kontonummer) {
for (Konto konto : konten) {
if (kontonummer == konto.getKontonummer()) {
return konto;
}
}
System.out.println("Konto nicht gefunden");
return null; // error
}
}

Binary file not shown.

View file

@ -0,0 +1,12 @@
// Luca Burger
public class HabenKonto extends Konto {
public HabenKonto(String kontonummer, String kontobezeichnung) {
super(kontonummer, kontobezeichnung);
}
@Override
public void buchen(double betrag) {
this.saldo += betrag;
}
}

Binary file not shown.

View file

@ -0,0 +1,39 @@
// Luca Burger
import java.util.ArrayList;
import java.util.Date;
public abstract class Konto {
protected String kontonummer;
protected String kontobezeichnung;
protected double saldo;
private ArrayList<Transaktion> transaktionsverlauf = new ArrayList<Transaktion>();
public Konto(String kontonummer, String kontobezeichnung) {
this.kontonummer = kontonummer;
this.kontobezeichnung = kontobezeichnung;
}
public String getKontonummer() {
return kontonummer;
}
public String getKontobezeichnung() {
return kontobezeichnung;
}
public double getSaldo() {
return saldo;
}
public ArrayList<Transaktion> getTransaktionsverlauf() {
return transaktionsverlauf;
}
public void transaktionDurchfuehren(double betrag, String beschreibung) {
Transaktion transaktion = new Transaktion(new Date(), beschreibung, betrag);
transaktionsverlauf.add(transaktion);
}
protected abstract void buchen(double betrag);
}

Binary file not shown.

View file

@ -0,0 +1,14 @@
// Luca Burger
public class SollKonto extends Konto {
private double zinssatz;
public SollKonto(String kontonummer, String kontobezeichnung, double zinssatz) {
super(kontonummer, kontobezeichnung);
this.zinssatz = zinssatz;
}
@Override
public void buchen(double betrag) {
this.saldo += betrag;
}
}

Binary file not shown.

View file

@ -0,0 +1,27 @@
// Luca Burger
import java.util.Date;
public class Transaktion {
private Date datum;
private String beschreibung;
private double betrag;
public Transaktion(Date datum, String beschreibung, double betrag) {
this.datum = datum;
this.beschreibung = beschreibung;
this.betrag = betrag;
}
public Date getDatum() {
return datum;
}
public String getBeschreibung() {
return beschreibung;
}
public double getBetrag() {
return betrag;
}
}