Files
kla-opp-schulzeug/12fi5/AEuP/Konto/konto.ps1
2021-11-15 15:07:18 +01:00

89 lines
2.0 KiB
PowerShell

class konto {
[string]$kontonr
[string]$ktyp
[string]$kunde
[double]$guthaben
[datetime]$erstelldatum
static ueberweissen([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 $_
}
}
ueberweissen([konto]$nach, [double]$menge) {
$stand_von = $this.guthaben
$stand_nach = $nach.guthaben
try {
$this.auszahlen($menge)
$nach.einzahlen($menge)
}
catch {
$this.guthaben = $stand_von
$nach.guthaben = $stand_nach
throw $_
}
}
konto() {
$this.guthaben = 0
$this.erstelldatum = Get-Date
}
konto([string]$knr) {
$this.guthaben = 0
$this.erstelldatum = Get-Date
$this.kontonr = $knr
}
konto([string]$knr, [string]$ktyp) {
$this.guthaben = 0
$this.erstelldatum = Get-Date
$this.kontonr = $knr
$this.ktyp = $ktyp
}
[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
}
[void]set_knr([int]$nr){
[string]$this.kontonr = $nr
}
[string]get_knr(){
return $this.kontonr
}
[void]set_ktyp($typ){
$this.ktyp = $typ
}
[string]get_ktyp(){
return $this.ktyp
}
}