unterricht vom 22.11.

This commit is contained in:
janik
2021-11-22 15:21:38 +01:00
parent 57667d9787
commit 7251b4a4fe

View File

@ -4,6 +4,10 @@ class kunde {
kunde([string]$name) { kunde([string]$name) {
$this.name = $name $this.name = $name
} }
kunde([string]$vorname, [string]$nachname) {
$this.name = $vorname + " " + $nachname
}
} }
class konto { class konto {
@ -11,7 +15,7 @@ class konto {
[double]$guthaben [double]$guthaben
[datetime]$erstelldatum [datetime]$erstelldatum
static ueberweisen([konto]$von, [konto]$nach, [double]$menge) { static überweisen([konto]$von, [konto]$nach, [double]$menge) {
$stand_von = $von.guthaben $stand_von = $von.guthaben
$stand_nach = $nach.guthaben $stand_nach = $nach.guthaben
try { try {
@ -25,8 +29,8 @@ class konto {
} }
} }
ueberweisen([konto]$nach, [double]$menge) { überweisen([konto]$nach, [double]$menge) {
[konto]::ueberweisen($this, $nach, $menge) [konto]::überweisen($this, $nach, $menge)
} }
konto([kunde]$kunde) { konto([kunde]$kunde) {
@ -58,8 +62,8 @@ class konto {
class bank { class bank {
[string]$name [string]$name
[System.Collections.Generic.List[konto]]$konten [System.Collections.Generic.List[konto]]$konten = @()
[System.Collections.Generic.List[kunde]]$kunden [System.Collections.Generic.List[kunde]]$kunden = @()
bank([string]$name) { bank([string]$name) {
$this.name = $name $this.name = $name
@ -73,8 +77,8 @@ class bank {
$konto.einzahlen($menge) $konto.einzahlen($menge)
} }
überweisen([konto]$von, [konto]$nach, [double]menge) { überweisen([konto]$von, [konto]$nach, [double]$menge) {
$konto.überweisen($nach, $menge) $von.überweisen($nach, $menge)
} }
[kunde]neukunde([string]$vorname, [string]$nachname) { [kunde]neukunde([string]$vorname, [string]$nachname) {
@ -89,4 +93,60 @@ class bank {
return $konto return $konto
} }
} [void]übersicht() {
foreach ($kunde in $this.kunden) {
Write-Host $kunde.name
foreach ($konto in $this.konten) {
if ($konto.kunde -eq $kunde) {
Write-Host $konto.guthaben
}
}
}
}
}
class cui {
[int]$state = 0
[bank]$bank
cui() {
$this.bank = [bank]::new("defaultbank")
}
[konto]select_konto([string]$use) {
Write-Host "Wähle ein Konto" $use
for ($i = 0; $i -lt $this.bank.konten.count; $i += 1) {
Write-Host "Konto" $i "("$this.bank.konten[$i].guthaben") von" $this.bank.konten[$i].kunde.name
}
return $this.bank.konten[$(Read-Host "Auswahl")]
}
run() {
$bname = Read-Host "Wähle einen Banknamen:"
$this.bank = [bank]::new($bname)
while ($this.state -ne -1) {
Write-Host "Wähle eine Aktion aus:"
Write-Host "1: Kunde anlegen"
Write-Host "2: Konto anlegen"
Write-Host "3: Einzahlen"
Write-Host "4: Auszahlen"
Write-Host "5: Überweißen"
Write-Host "0: Beenden"
}
}
}
#Tests
$bank = [bank]::new("Benannte Bank")
$kunde1 = $bank.neukunde("Kunde", "Kundengesicht")
$konto1 = $bank.konto_erstellen($kunde1)
$kunde2 = $bank.neukunde("Anderes", "Kundengesicht")
$konto2 = $bank.konto_erstellen($kunde2)
$bank.überweisen($konto1, $konto2, 150)
$bank.übersicht()
$cui = [cui]::new()
$cui.bank = $bank
$cui.select_konto("Test")