79 lines
1.7 KiB
PowerShell
79 lines
1.7 KiB
PowerShell
class konto {
|
|
[string]$kontonr
|
|
[string]$ktyp
|
|
[string]$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() {
|
|
$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
|
|
}
|
|
} |