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

View file

@ -0,0 +1,7 @@
{
"java.project.sourcePaths": ["src"],
"java.project.outputPath": "bin",
"java.project.referencedLibraries": [
"lib/**/*.jar"
]
}

View file

@ -0,0 +1,18 @@
## Getting Started
Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code.
## Folder Structure
The workspace contains two folders by default, where:
- `src`: the folder to maintain sources
- `lib`: the folder to maintain dependencies
Meanwhile, the compiled output files will be generated in the `bin` folder by default.
> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there.
## Dependency Management
The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies).

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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;
}
}

View file

@ -0,0 +1,7 @@
{
"java.project.sourcePaths": ["src"],
"java.project.outputPath": "bin",
"java.project.referencedLibraries": [
"lib/**/*.jar"
]
}

View file

@ -0,0 +1,18 @@
## Getting Started
Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code.
## Folder Structure
The workspace contains two folders by default, where:
- `src`: the folder to maintain sources
- `lib`: the folder to maintain dependencies
Meanwhile, the compiled output files will be generated in the `bin` folder by default.
> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there.
## Dependency Management
The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies).

Binary file not shown.

View file

@ -0,0 +1,5 @@
public class App {
public static void main(String[] args) throws Exception {
System.out.println("Hello, World!");
}
}

View file

@ -0,0 +1,5 @@
The Wheel of Time - A sprawling epic fantasy series by Robert Jordan. It follows the journey of Rand al'Thor as he struggles to control his newfound powers and faces the ultimate battle between light and shadow.
Lord of the Rings - A high-fantasy epic by J.R.R. Tolkien. The story follows the journey of Frodo Baggins and his companions as they attempt to destroy the One Ring and defeat the Dark Lord Sauron.
The First Law Trilogy - A grimdark fantasy series by Joe Abercrombie. It features morally complex characters, brutal realism, and intertwining stories of politics, war, and betrayal.
The Kingkiller Chronicle - An epic fantasy series by Patrick Rothfuss. It recounts the life of Kvothe, a gifted musician and magician, as he seeks revenge and unravels mysteries in a richly imagined world.
The Mistborn Series - A unique fantasy series by Brandon Sanderson. It combines a rich magic system based on metals with a story of rebellion, heroism, and unexpected twists.