From a3e42d2d9daae8a8566fb8d67f53473c0e14f115 Mon Sep 17 00:00:00 2001 From: janik Date: Thu, 18 Nov 2021 12:10:22 +0100 Subject: [PATCH] abteilung variant, bank start --- 12fi5/AEuP/Abteilung/abteilung_var1.ps1 | 27 ++++++++++ 12fi5/AEuP/Bank/bank.ps1 | 69 +++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 12fi5/AEuP/Abteilung/abteilung_var1.ps1 create mode 100644 12fi5/AEuP/Bank/bank.ps1 diff --git a/12fi5/AEuP/Abteilung/abteilung_var1.ps1 b/12fi5/AEuP/Abteilung/abteilung_var1.ps1 new file mode 100644 index 0000000..5aeda0c --- /dev/null +++ b/12fi5/AEuP/Abteilung/abteilung_var1.ps1 @@ -0,0 +1,27 @@ +class mitarbeiter { + [string]vorname + [string]nachname + + mitarbeiter([string] $vorname, [string] $nachname) { + $this.vorname = $vorname + $this.nachname = $nachname + } +} + +class abteilung { + [string]bezeichnung + $maliste = [System.Collections.ArrayList]::New() + [mitarbeiter]abteilungsleiter + + abteilung([string] $bezeichnung) { + $this.bezeichnung = $bezeichnung + } + + nachnamen() { + foreach ($ma in $maliste) { + Write-Host $ma.vorname + } + } +} + +#$abteilung.abteilungsleiter.vorname diff --git a/12fi5/AEuP/Bank/bank.ps1 b/12fi5/AEuP/Bank/bank.ps1 new file mode 100644 index 0000000..18de277 --- /dev/null +++ b/12fi5/AEuP/Bank/bank.ps1 @@ -0,0 +1,69 @@ +class kunde { + [string]$name + + kunde([string]$name) { + $this.name = $name + } +} + +class konto { + [kunde]$kunde + [double]$guthaben + [datetime]$erstelldatum + + static ueberweisen([konto]$von, [konto]$nach, [double]$menge) { + $stand_von = $von.guthaben + $stand_nach = $nach.guthaben + try { + $von.auszahlen($menge) + $nach.einzahlen($menge) + } + catch { + $von.guthaben = $stand_von + $nach.guthaben = $stand_nach + throw $_ + } + } + + ueberweisen([konto]$nach, [double]$menge) { + [konto]::ueberweisen($this, $nach, $menge) + } + + konto([kunde]$kunde) { + $this.guthaben = 0 + $this.erstelldatum = Get-Date + $this.kunde = $kunde + } + + [double]einzahlen([double]$menge) { + if ($menge -lt 0) { + throw "Einzahlungsmenge muss positiv sein!" + } + $this.guthaben += $menge + return $this.guthaben + } + + [double]auszahlen([double]$menge) { + if ($menge -lt 0) { + throw "Auszahlungsmenge muss positiv sein!" + } + if (($this.guthaben - $menge) -gt (-1000)) { + $this.guthaben -= $menge + } else { + throw "Konto überzogen!" + } + return $this.guthaben + } +} + +class bank { + [string]$name + [System.Collections.Generic.List[konto]]$konten + [System.Collections.Generic.List[kunden]]$kunde + + bank([string]$name) { + $this.name = $name + } + + +} \ No newline at end of file