vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Case und IFELSE funktionieren nicht 
Autor: DotNetErbse
Datum: 17.04.12 10:22

Für sowas IMMER Klassen schreiben!!!

Du willst doch nicht Deinen Code komplex ändern, wenn sich die Berechnungsmethode oder die Sichtweise dazu ändert, hm?

Schau mal:

Public Class cBMI
 
    Public Enum enuGeschlecht
        mask = 0
        fem = 1
    End Enum
 
    Private _enuGeschlecht As enuGeschlecht
    Private _intAlter As Integer = 0
    Private _dblGewicht As Double
    Private _dblKörpergröße As Double
 
    Public Property Alter() As Integer
        Get
            Return _intAlter
        End Get
        Set(ByVal value As Integer)
            _intAlter = value
        End Set
    End Property
 
    Public Property Geschlecht() As enuGeschlecht
        Get
            Return _enuGeschlecht
        End Get
        Set(ByVal value As enuGeschlecht)
            _enuGeschlecht = value
        End Set
    End Property
 
    Public Property Gewicht() As Double
        Get
            Return _dblGewicht
        End Get
        Set(ByVal value As Double)
            _dblGewicht = value
        End Set
    End Property
 
    Public Property Körpergröße() As Double
        Get
            Return _dblKörpergröße
        End Get
        Set(ByVal value As Double)
            _dblKörpergröße = value
        End Set
    End Property
 
    Public Sub New()
 
    End Sub
 
    Public Sub New(ByVal gewicht As Double, ByVal körpergröße As Double, ByVal _
      geschlecht As enuGeschlecht, ByVal alter As Integer)
 
        Me.Gewicht = gewicht
        Me.Körpergröße = körpergröße
        Me.Geschlecht = geschlecht
        Me.Alter = alter
 
 
    End Sub
 
    Public Function BMI() As Double
 
        Dim result As Double = 0
 
        'Hier noch eventuelle Korrekturen fürs Alter
        Select Case Geschlecht
            Case enuGeschlecht.fem
                result = Gewicht / ((Körpergröße / 100) ^ 2)
 
            Case enuGeschlecht.mask
                result = Gewicht / ((Körpergröße / 100) ^ 2)
 
        End Select
 
        Return result
 
 
 
    End Function
 
 
    Public Function BMI_Text() As String
 
        Dim result As String = String.Empty
 
        'Altersbehandlung ;-)
 
            If Alter < 17 Then
            Select Case Geschlecht
                Case enuGeschlecht.fem
                    'Es sei denn Adipositas
                    If BMI() < 30 Then
                        Return "Mädchen im Alter von " & Alter.ToString & "" & _
                          "sollten sich mit BMI nicht beschäftigen..."
                    Else
                        Return "TU WAS!!! - Noch hast Du Zeit!"
                    End If
                Case enuGeschlecht.mask
                    If BMI() < 30 Then
                        Return "Für Jungen im Alter von " & Alter.ToString & "" & _
                          "ist eine BMI-Berechnung nicht sinnvoll!"
                    Else
                        Return "TU WAS!!! - Noch hast Du Zeit!"
                    End If
            End Select
 
        End If
 
        Select Case BMI()
            Case Is < 19
                result = "Untergewicht"
            Case Is < 25
                result = "Normalgewicht"
            Case Is < 30
                result = "Übergewicht"
            Case Is < 35
                result = "Adipositas (Grad 1)"
            Case Is < 40
                result = "Adipositas (Grad 2)"
            Case Else
                result = "Adipositas (Grad 3)"
        End Select
 
        Return "Sie haben einen BMI von " & BMI.ToString("##.00") & " und haben" & _
          "" & result
 
    End Function
 
End Class
Benutzung:

Dim bmi As New cBMI(110, 186, cBMI.enuGeschlecht.fem, 12)
MsgBox(bmi.BMI_Text)

Mit freundlichen Gr??en
DotNetErbse


[Es hei?t Paket und nicht Packet, auch wenn Standard augenscheinlich von Standar(t)e kommt,hei?t es dennoch Standar(d)]

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Case und IFELSE funktionieren nicht1.981Team-Hanzlik16.04.12 18:17
Re: Case und IFELSE funktionieren nicht1.426effeff16.04.12 18:34
Re: Case und IFELSE funktionieren nicht1.386Team-Hanzlik16.04.12 18:37
Re: Case und IFELSE funktionieren nicht1.395Manfred X16.04.12 18:41
Re: Case und IFELSE funktionieren nicht1.507Team-Hanzlik16.04.12 18:49
Re: Case und IFELSE funktionieren nicht1.372Manfred X16.04.12 18:51
Re: Case und IFELSE funktionieren nicht1.372Team-Hanzlik16.04.12 18:54
Re: Case und IFELSE funktionieren nicht1.405Team-Hanzlik16.04.12 18:56
Re: Case und IFELSE funktionieren nicht1.345Manfred X16.04.12 19:02
Re: Case und IFELSE funktionieren nicht1.405Team-Hanzlik16.04.12 19:06
Re: Case und IFELSE funktionieren nicht1.407Manfred X16.04.12 19:15
Re: Case und IFELSE funktionieren nicht1.361Team-Hanzlik16.04.12 19:17
Re: Case und IFELSE funktionieren nicht1.399DotNetErbse17.04.12 10:22
Re: Case und IFELSE funktionieren nicht1.399Team-Hanzlik17.04.12 12:12
Re: Case und IFELSE funktionieren nicht1.353Manfred X17.04.12 15:59
Re: Case und IFELSE funktionieren nicht1.364DotNetErbse17.04.12 16:23
Re: Case und IFELSE funktionieren nicht1.513Team-Hanzlik17.04.12 18:51
Re: Case und IFELSE funktionieren nicht1.363Team-Hanzlik17.04.12 18:55
Re: Case und IFELSE funktionieren nicht1.366ModeratorFZelle17.04.12 23:31
Re: Case und IFELSE funktionieren nicht1.364Team-Hanzlik18.04.12 11:30
Re: Case und IFELSE funktionieren nicht1.376Team-Hanzlik17.04.12 18:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel