Hallo,
ich schreibe am Mittwoch eine Klausur und ich versuche eine Verzweigung in einer Property-Prozedur zu programmieren. Ich bekomme es nicht hin, dass die Variablen in der Property-prozedur nicht funktionieren. Die Informationen die diese Variablen bekommen sollen aus der Textbox sind abgekapselt.
Kann da jemand ein Blick darauf werfen und mir sagen warum dieses nicht funktioniert? Danke in voraus.
hier die Aufgabe und der Code:
Stellen Sie in der Property-Prozedur für die Tage sicher, dass die Eigenschaft „Tage“ für ein Fahrradobjektauf 1 gesetzt wird, wenn versucht wird, diese mit 0 oder einem negativen Wert zu belegen. Wenn der Benutzer eine größere Zahl als 31 eingibt, soll sie durch 31 ersetzt werden.
1: Windows Form
2: Klasse Fahrrad
1: Windows Form
Public Class frmFahrradGUI
Private einFahrrad As New Fahrrad
Const TITEL As String = "WI3-Klausur"
Private Sub frmMietpreisberechnung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.cboFahrradtyp.Text = "Sportrad"
Me.txtTage.Text = "1"
Me.txtMietpreis.Text = ""
Me.Text = "Fahrradvermietung"
txtMietpreis.Enabled = False
btnSpeichern.Enabled = False
btnAnzeigen.Enabled = False
cboFahrradtyp.Text = "Citybike"
txtTage.Text = "1"
End Sub
Private Sub txtTage_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtTage.MouseHover
Dim toolTip1 As New ToolTip()
toolTip1.ShowAlways = True
toolTip1.SetToolTip(txtTage, "Die Mietdauer muss zwischen 1 und 31 Tagen liegen")
End Sub
Private Sub cboFahrradtyp_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboFahrradtyp.TextChanged, txtTage.TextChanged
If Me.cboFahrradtyp.Text <> "" And Me.txtTage.Text <> "" Then
If (IsNumeric(Me.txtTage.Text) Or Me.txtTage.Text = "-") Then
Me.btnMietpreis.Enabled = True
Else
Me.btnMietpreis.Enabled = False
MessageBox.Show("Sie müssen eine Zahl eingeben!", TITEL, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End If
With cboFahrradtyp
.AutoCompleteMode = AutoCompleteMode.Append
.AutoCompleteSource = AutoCompleteSource.ListItems
End With
End Sub
'Private Sub txtTyp_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtTage.TextChanged
'
'End Sub
Private Sub btnMietpreis_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMietpreis.Click
txtMietpreis.Enabled = True
Dim sngFahrrad As String 'Fahrradtyp z.B. Citybike
Dim decTagessatz As Decimal 'Tagessatz z.B. 6.50
sngFahrrad = cboFahrradtyp.Text
If sngFahrrad = "Citybike" Then
decTagessatz = 6.5
ElseIf sngFahrrad = "Sportrad" Then
decTagessatz = 10.0
ElseIf sngFahrrad = "Elektrofahrrad" Then
decTagessatz = 15.0
ElseIf sngFahrrad = "Tandem" Then
decTagessatz = 18.0
ElseIf sngFahrrad = "Kinderrad" Then
decTagessatz = 5.0
Else
sngFahrrad = "Mountainbike"
MessageBox.Show("Den Fahrradtyp Mountainbike führen wir nicht!", TITEL, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
Me.txtMietpreis.Text = decTagessatz * txtTage.Text
btnSpeichern.Enabled = True
End Sub
Private Sub btnSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSpeichern.Click
einFahrrad.Fahrradtyp = Me.cboFahrradtyp.Text ' c: 1 P.
einFahrrad.Tage = CDec(Me.txtTage.Text) ' c: 1,5 P.
einFahrrad.Miete = CInt(Me.txtMietpreis.Text) ' c: 1,5 P.
einFahrrad.Miete = 0.0
btnAnzeigen.Enabled = True ' e: 1 P.
End Sub
Private Sub btnAnzeigen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnzeigen.Click
txtFahrraddaten.Text = cboFahrradtyp.Text & ", " &
txtTage.Text & ", " &
txtMietpreis.Text
End Sub
End Class
2: Klasse Fahrrad
ublic Class Fahrrad
Public bytTage As Integer
Private decMietepreis As Decimal
Private strFahrradtyp As String
Public Property Tage As Decimal
Get
Return bytTage
End Get
Set(ByVal value As Decimal)
bytTage = value
Dim t As Integer
t = Tage
If t <= 0 Then
einFahrrad.Tage = 1
'Else
' t > 31 Then
' bytTage = 31
End If
End Set
End Property
Public Property Miete() As Decimal
Get
Return decMietepreis
End Get
Set(ByVal value As Decimal)
End Set
End Property
Public Property Fahrradtyp() As String
Get
Return strFahrradtyp
End Get
Set(ByVal value As String)
strFahrradtyp = value
End Set
End Property
ich schreibe am Mittwoch eine Klausur und ich versuche eine Verzweigung in einer Property-Prozedur zu programmieren. Ich bekomme es nicht hin, dass die Variablen in der Property-prozedur nicht funktionieren. Die Informationen die diese Variablen bekommen sollen aus der Textbox sind abgekapselt.
Kann da jemand ein Blick darauf werfen und mir sagen warum dieses nicht funktioniert? Danke in voraus.
hier die Aufgabe und der Code:
Stellen Sie in der Property-Prozedur für die Tage sicher, dass die Eigenschaft „Tage“ für ein Fahrradobjektauf 1 gesetzt wird, wenn versucht wird, diese mit 0 oder einem negativen Wert zu belegen. Wenn der Benutzer eine größere Zahl als 31 eingibt, soll sie durch 31 ersetzt werden.
1: Windows Form
2: Klasse Fahrrad
1: Windows Form
Public Class frmFahrradGUI
Private einFahrrad As New Fahrrad
Const TITEL As String = "WI3-Klausur"
Private Sub frmMietpreisberechnung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.cboFahrradtyp.Text = "Sportrad"
Me.txtTage.Text = "1"
Me.txtMietpreis.Text = ""
Me.Text = "Fahrradvermietung"
txtMietpreis.Enabled = False
btnSpeichern.Enabled = False
btnAnzeigen.Enabled = False
cboFahrradtyp.Text = "Citybike"
txtTage.Text = "1"
End Sub
Private Sub txtTage_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtTage.MouseHover
Dim toolTip1 As New ToolTip()
toolTip1.ShowAlways = True
toolTip1.SetToolTip(txtTage, "Die Mietdauer muss zwischen 1 und 31 Tagen liegen")
End Sub
Private Sub cboFahrradtyp_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboFahrradtyp.TextChanged, txtTage.TextChanged
If Me.cboFahrradtyp.Text <> "" And Me.txtTage.Text <> "" Then
If (IsNumeric(Me.txtTage.Text) Or Me.txtTage.Text = "-") Then
Me.btnMietpreis.Enabled = True
Else
Me.btnMietpreis.Enabled = False
MessageBox.Show("Sie müssen eine Zahl eingeben!", TITEL, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End If
With cboFahrradtyp
.AutoCompleteMode = AutoCompleteMode.Append
.AutoCompleteSource = AutoCompleteSource.ListItems
End With
End Sub
'Private Sub txtTyp_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtTage.TextChanged
'
'End Sub
Private Sub btnMietpreis_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMietpreis.Click
txtMietpreis.Enabled = True
Dim sngFahrrad As String 'Fahrradtyp z.B. Citybike
Dim decTagessatz As Decimal 'Tagessatz z.B. 6.50
sngFahrrad = cboFahrradtyp.Text
If sngFahrrad = "Citybike" Then
decTagessatz = 6.5
ElseIf sngFahrrad = "Sportrad" Then
decTagessatz = 10.0
ElseIf sngFahrrad = "Elektrofahrrad" Then
decTagessatz = 15.0
ElseIf sngFahrrad = "Tandem" Then
decTagessatz = 18.0
ElseIf sngFahrrad = "Kinderrad" Then
decTagessatz = 5.0
Else
sngFahrrad = "Mountainbike"
MessageBox.Show("Den Fahrradtyp Mountainbike führen wir nicht!", TITEL, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
Me.txtMietpreis.Text = decTagessatz * txtTage.Text
btnSpeichern.Enabled = True
End Sub
Private Sub btnSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSpeichern.Click
einFahrrad.Fahrradtyp = Me.cboFahrradtyp.Text ' c: 1 P.
einFahrrad.Tage = CDec(Me.txtTage.Text) ' c: 1,5 P.
einFahrrad.Miete = CInt(Me.txtMietpreis.Text) ' c: 1,5 P.
einFahrrad.Miete = 0.0
btnAnzeigen.Enabled = True ' e: 1 P.
End Sub
Private Sub btnAnzeigen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnzeigen.Click
txtFahrraddaten.Text = cboFahrradtyp.Text & ", " &
txtTage.Text & ", " &
txtMietpreis.Text
End Sub
End Class
2: Klasse Fahrrad
ublic Class Fahrrad
Public bytTage As Integer
Private decMietepreis As Decimal
Private strFahrradtyp As String
Public Property Tage As Decimal
Get
Return bytTage
End Get
Set(ByVal value As Decimal)
bytTage = value
Dim t As Integer
t = Tage
If t <= 0 Then
einFahrrad.Tage = 1
'Else
' t > 31 Then
' bytTage = 31
End If
End Set
End Property
Public Property Miete() As Decimal
Get
Return decMietepreis
End Get
Set(ByVal value As Decimal)
End Set
End Property
Public Property Fahrradtyp() As String
Get
Return strFahrradtyp
End Get
Set(ByVal value As String)
strFahrradtyp = value
End Set
End Property
Comment