abteilung variant, bank start
This commit is contained in:
69
12fi5/AEuP/Bank/bank.ps1
Normal file
69
12fi5/AEuP/Bank/bank.ps1
Normal file
@ -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
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user