Rofls parkhauprogramm = war "Label in HH:mm:ss"

  • VB.NET

Es gibt 38 Antworten in diesem Thema. Der letzte Beitrag () ist von Rofl.

    Danke für das Lob, ich hatte mal mit 5 Jahren an meinem 286er etwas Basic programmiert, da ich aber damals keine anwendung dafür hatte ist es irgendwann mal untergegangen. Und nun werde ich in der Hochschule damit konfrontiert. Ich hatte jetzt ca 15Std reinen Unterricht in VB08. Da sind wir aber nicht über einfach Schleifen, Labels, datentypen und Subs über hinnausgekommen. Das meiste restliche wissen habe ich mir bei Galileo-Openbooks dazugelesen. Aber mitlerweile bin ich an einem Punkt angekommen wo es nicht mehr so wirklich weiter geht. Ich habe vorhin mal ein paar stunden versucht das problem zu lösen, bin aber nicht weitergekommen. Ich denke ich werde es heute nachmittag nochmal probieren.

    Falls jemand noch einen Link zum Thema von Mono hat wäre ich sehr glücklich drüber.

    Danke nochmal an alle die mir geholfen haben bis hierhin.
    hi,

    also dein Programm ist wirklich gut, ich will hoffen du hast das nicht mal eben so dahingeschrieben. Das würde mich in eine sehr tiefe Depresion stürzen. Ich habe an meien Projekt bisher ca 100 Std. gesessen. Danke das du es mir zur verfügung gestellt hast.

    Dein Programm hat sehr viele Befehle die ich noch nie im Leben gesehen habe. Aber bisher ist mir der grundaufbau halbwegs klar.

    Aber erste fragen tuen sich auf. Was hat es mit den "Class" aufsich? Ist das so etwas wie eine Sub? Oder brauch man das nur für das Menü?

    Und was ich schon öfteres versucht habe herrauszufinden ist der Unterschied zwischen Puplic und Privat. Aber eine verständliche erklärung habe ich bisher nicht gefunden.
    Public (globale deklaration) - Variable gültigkeit Projektweit d.h in Formkode, Mudule und Klassen.
    Private (globale deklaration) - Variable gültigkeit nur innerhalb Modul, Form oder Klasse

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SystemUnknow“ ()

    Ich kann gerne versuchen, dir die Begriffe zu erklären. Also: Public bedeutet, dass du auf darauf (z.B. auf die Variable oder die Klasse) von überall aus deinem Projekt zugreifen kannst, und wenn du innerhalb einer Klasse eine Variable als Private deklarierst, bedeutet das, dass nur diese Klasse darauf zugreifen kann. Class steht für eine Klasse, da kannst du dich aber besser im Openbook informieren: Kapitel 5.2 findest du alles. was du brauchst.
    Guten Abend,

    über die Feiertage kam hier alles ins stocken. Heute aber versuche ich mich weiter an dem Programm. wenn ich es richtig verstanden habe kann man Variablen durch Arrays ersetzten. Jetzt bin ich aber hier schon stundenlang dran aber sehe kaum einen Vorteil ausser das ich am anfang alle Variablen auf einmal beschreiben kann statt einzelnd. Mein bisheriger Tageserfolg ist

    VB.NET-Quellcode

    1. DIM VAR_Box(24)
    Um ein Array mit 25 plätzen zu deklarieren.

    Und ich habe die Variablen gegen einen Array ersetzt

    VB.NET-Quellcode

    1. VAR_BOX(1) = "0"


    Fragen:

    wie kann ich das Array komplett beschreiben?
    z.B.

    VB.NET-Quellcode

    1. VAR_Box(0 to 24) = "0"


    Kann ich mit den Arrays auch so eine alt Stappelverfahren machen? Ich hatte dabei an die erneuerung der zeit gedacht die zur zeit immernoch mein hauptproblem ist.

    @Kouki : An deinem beispielprogramm bin ich noch bei, aber ich muss so gut wie alles einzelnd nachschaun. Und dadurch komme ich so gut wie gar nicht vorran.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rofl“ ()

    Irgendwie hat es mich nicht in ruhe gelassen, also habe ich mich gerade nochmal dran gesetzt. Ich habe die Einparkzeit mit CStr konvertiert und dann in die Array geschrieben. Und dann das für das Zeit Label geschrieben

    VB.NET-Quellcode

    1. Dim VAR_Aktuellezeit As String
    2. If VAR_Box(0) = "1" Then
    3. VAR_Aktuellezeit = CStr(DateAndTime.Timer)
    4. '
    5. LB_A1_Parkdauer.Text = CStr(Math.Floor(VAR_Aktuellezeit - VAR_Stopuhr(0)) \ 3600) + ":" + CStr(Math.Floor(VAR_Aktuellezeit - VAR_Stopuhr(0)) \ 60) + ":" + CStr(Math.Floor(VAR_Aktuellezeit - VAR_Stopuhr(0)))
    6. ElseIf LB_A1_Parkdauer.Text = "00:00:00" Then
    7. End If

    es sieht ja schon fast so aus wie ich das möchte, aber wie bekomme ich es jetzt hin das nur immer bis 60 gezählt wird?
    Hier ma ein Beispiel für eine Parklücke, damit du das Anzeigeformat hinkriegst. In diesem Beispiel von MSDN kann man sehen, dass DateTime.Substract(Timespan) ein DateTime-Format zurückgibt und DateTime.Substract(DateTime) eine Timespan. DateTime verfügt u.a. über die Methode ToLongTimeString, die dir eine komfortable Formatanpassung erlauben.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Eine Form mit
    2. '3 Labels (lbStart, lbNow, lbSpan),
    3. '2 Button (BtnEinparken, PtnAusparken) und
    4. 'einem Forms.Timer (Timer1) anlegen
    5. Option Strict On
    6. Public Class Test
    7. Dim Startzeit As DateTime
    8. Dim _start As TimeSpan
    9. Dim besetzt As Boolean
    10. Private Sub Test_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    11. 'Timer für Aktualisierung initialisieren
    12. Timer1.Interval = 500
    13. Timer1.Start()
    14. End Sub
    15. Private Sub Btn_Einparken_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Einparken.Click
    16. 'Einparken
    17. Startzeit = Now 'Startzeit setzen
    18. LbStart.Text = Startzeit.ToLongTimeString 'Label für Startzeit schreiben
    19. _start = TimeSpan.Parse(Startzeit.ToLongTimeString) 'Startzeit für Berechnung in Timaspan wandeln
    20. besetzt = True 'Parklücke besetzt melden
    21. End Sub
    22. Private Sub Btn_Ausparken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Ausparken.Click
    23. besetzt = False 'Parklücke frei melden
    24. End Sub
    25. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    26. LbNow.Text = Now.ToLongTimeString 'Aktualle Zeit anzeigen
    27. If besetzt Then 'Wenn Parklücke besetzt dann
    28. 'Parkzeit aktualisieren und anzeigen
    29. LbSpan.Text = "besetzt seit: " & Now.Subtract(_start).ToShortTimeString 'ToLongTimeString
    30. Else
    31. 'sonst Parkplatz als frei anzeigen
    32. LbSpan.Text = "Parkplatz frei"
    33. LbStart.Text = LbNow.Text
    34. End If
    35. End Sub
    36. End Class

    Kannst ja mal hiermit rumexperimentieren.
    Die nächste "Ausbaustufe" wäre dann eine Klasse "Parkluecke" und deren hinzufügen zu einer List(Of Parkluecke). Die Liste kannst du dann sowohl index-basiert als auch mit ForEach alles auf einmal abfragen.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Guten Abend,

    ich habe freudige Nachrichten zu verkündigen. Meine Parkdaueranzeige läuft endlich.

    Nun bin ich gerade an einem problem mit dem Split Befehl. Wie ist der zusatzbefehl um nach dem ersten Zeichen zu Splitten. Das ganze spielt sich in einer Extra Form ab.

    VB.NET-Quellcode

    1. Dim Ausparken_Eingabe As String
    2. Dim Ausparken_Etage As String
    3. Dim Ausparken_Platz As String
    4. If TB_Ausparken.Text = "A1" Or "a1" Or "A2" Or "a2" Or "A3" Or "a3" Or "A4" Or "a4" Or "A5" Or "a5" Or "B1" Or "b1" Or "B2" Or "b2" Or "B3" Or "b3" Or "B4" Or "b4" Or "B5" Or "b5" Or "C1" Or "c1" Or "C2" Or "c2" Or "C3" Or "c3" Or "C4" Or "c4" Or "C5" Or "c5" Or "D1" Or "d1" Or "D2" Or "d2" Or "D3" Or "d3" Or "D4" Or "d4" Or "D5" Or "d5" Or "E1" Or "e1" Or "E2" Or "e2" Or "E3" Or "e3" Or "E4" Or "e4" Or "E5" Or "e5" Then
    5. Ausparken_Etage = Ausparken_Eingabe.Split(0)
    6. Ausparken_Platz = Ausparken_Eingabe.Split(1)
    7. ElseIf MsgBox("Ihre Eingabe ist ungütig") Then
    8. End If
    9. Stefa_Park.Ausparken(Ausparken_Etage, Ausparken_Platz)
    10. me.close


    Danke
    Sieh dir ma die String.Substring-Methode an.

    Aber deine If-Abfrage wird so nicht funktionieren. Du mußt:

    VB.NET-Quellcode

    1. If TB_Ausparken.Text = "A1" Or TB_Ausparken.Text = "a1" 'usw...

    da gibs aber noch einfachere Möchlichkeiten... Hab nur grad ne Blockade... ;(
    Werd aba nochma drüber nachdenken ;)

    Edit Habs...
    Alle Etagen in einen String packen: Dim Etage as String="abcdefg"
    Dann aus der Eingabe mit Substring das 1. Zeichen filtern, mit Tolower in Kleinbuchstaben umwandeln und mit String.Contains überprüfen, ob der Buchstabe im Etagenstring enthalten ist.
    Im Textchanged-Event der Textbox kannst du die Textlänge mit .Lenght prüfen und ggf. reagieren (Messagebox.Show("Blub",...).
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Vatter“ ()

    Da bin ich mal wieder, ich der zwischenzeit habe ich wieder ein bischen was geschaft. Aber da ich auch noch anderes zu lernen habe ist es immer etwas schwer zeitlich.

    So mein neues Problem. Da ich nicht einen Berg if bedingungen machen möchte wollte ich etwas an eine variable anfürgen.

    So etwa

    VB.NET-Quellcode

    1. Dim VAR_Ausparkzeit as string
    2. Dim VAR_Stopuhr_A1 as DateTime
    3. Dim VAR_Stopuhr_A2 as DateTime
    4. .... usw.
    5. 'Die Variable wird eigendlich durch eine Eingabe beschrieben
    6. Dim VAR_Eingabe as integer = A1
    7. VAR_Ausparkzeit = Now.Subtract(VAR_Stopuhr_ + VAR_Ausparkenbox_Eingabe).ToString


    jemand eine Idee?

    Danke

    Rofl schrieb:

    Da ich nicht einen Berg if bedingungen machen möchte

    Insgesamt scheinst du auf dem Holzweg zu sein ...
    Objektorientiert denken! Ist einfacher als man glaubt, weil es eigentlich "intuitiver" ist.

    Mach es so, dass jede "Parkbox" eine in sich geschlossene KLASSE ist. Diese Objekte kannst du dann zb über ihren NAMEN ansprechen (oder Index, oder was immer du willst)

    Als Beispiel:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Enum Boxstatus
    2. frei
    3. belegt
    4. egal
    5. End Enum
    6. Public Enum Belegzeiten
    7. aktuell
    8. total
    9. End Enum
    10. Public Class Parkbox
    11. Private _Status As Boxstatus
    12. Private _Einfahrzeit As DateTime
    13. Private _BelegzeitTotal As New TimeSpan(0)
    14. Public Sub New()
    15. _Status = Boxstatus.frei
    16. End Sub
    17. Public ReadOnly Property Status As Boxstatus
    18. Get
    19. Return _Status
    20. End Get
    21. End Property
    22. Public Function Einfahren() As Boolean
    23. If _Status = Boxstatus.belegt Then Return False
    24. _Status = Boxstatus.belegt
    25. _Einfahrzeit = Now
    26. Return True
    27. End Function
    28. Public Sub Ausfahren()
    29. _BelegzeitTotal.Add(Belegzeit(Belegzeiten.aktuell))
    30. _Status = Boxstatus.frei
    31. End Sub
    32. Public ReadOnly Property Einfahrzeit As DateTime
    33. Get
    34. If _Status <> Boxstatus.belegt Then Return Nothing
    35. Return _Einfahrzeit
    36. End Get
    37. End Property
    38. Public ReadOnly Property Belegzeit(ByVal Zeittyp As Belegzeiten) As TimeSpan
    39. Get
    40. If Zeittyp = Belegzeiten.aktuell Then
    41. If _Status = Boxstatus.belegt Then
    42. Return New TimeSpan(Now.Ticks - _Einfahrzeit.Ticks)
    43. Else
    44. Return New TimeSpan(0)
    45. End If
    46. Else
    47. Return _BelegzeitTotal
    48. End If
    49. End Get
    50. End Property
    51. End Class
    52. Public Class Parkdeck
    53. Public Sub New()
    54. _Boxen = New List(Of Parkbox)
    55. End Sub
    56. Public Property Boxen As List(Of Parkbox)
    57. Public ReadOnly Property Plaetze(ByVal Status As Boxstatus) As Integer
    58. Get
    59. Return (From b As Parkbox In Boxen Where b.Status = Status Or Status = Boxstatus.egal Select b).Count
    60. End Get
    61. End Property
    62. Public Function IstBelegt() As Boolean
    63. Return Plaetze(Boxstatus.frei) = 0
    64. End Function
    65. End Class
    66. Public Class Parkhaus
    67. Public Sub New()
    68. _Decks = New List(Of Parkdeck)
    69. End Sub
    70. Public Property Decks As List(Of Parkdeck)
    71. Public ReadOnly Property Plaetze(ByVal Status As Boxstatus) As Integer
    72. Get
    73. Return (From p As Parkdeck In _Decks Select p.Plaetze(Boxstatus.frei)).Sum
    74. End Get
    75. End Property
    76. Public Function IstBelegt() As Boolean
    77. Return Plaetze(Boxstatus.frei) = 0
    78. End Function
    79. Public Function GetFreeBox() As Parkbox
    80. If IstBelegt() Then Return Nothing
    81. Return (From d As Parkdeck In Decks
    82. From b As Parkbox In d.Boxen
    83. Where b.Status = Boxstatus.frei
    84. Select b Take 1)(0)
    85. End Function
    86. End Class

    Die Klasse "Parkdeck" könnte man theoretisch weglassen - aber es ist halt "offener" (Schranken für einzelne Decks etc)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „picoflop“ ()

    Guten Morgen,

    von Klassen und ähnlichen habe ich keine ahnung. Meine Programmierfähigkeiten sind mehr als leihenhaft wie ihr gleich sehen werdet.

    Also, der Benutzer gibt später seinen Parkplatz per Hand ein. Die eingane wird dann in Großschrift konvertiert. Dann wird mit dieser eingabe das fahrzeug ausgeparkt. Sobald das Fahrzeug dann in der Ausparkbox ist soll in einer MSGbox die Parkdauer und die Parkgebühr angezeigt werden. Ich habe für jede Parkbox eine eigende Stopuhr (VAR_Stopuhr_A1, VAR_Stopuhr_A2 usw.) Nun möchte ich die Box boxbezeichnung (A1 A2 A3 usw.) was der Benutzer eingibt an die VAR_Stopuhr_ anhängen.

    Hier nochmal mein bisheriger Code für diese Sub



    VB.NET-Quellcode

    1. Public Sub Ausparken_Box()
    2. Dim VAR_Ausparkpreis As Integer
    3. Dim VAR_Ausparkzeit As DateTime
    4. Dim VAR_Ausparktext As Integer
    5. '
    6. Call Ausgangsstellung()
    7. 'Text wird in Großschrift konvertiert
    8. Ausparken_Fenster.TB_Ausparken.Text = Ausparken_Fenster.TB_Ausparken.Text.ToUpper
    9. 'Texteingabe wird mit den möglichen eingaben verglichen
    10. If Ausparken_Fenster.TB_Ausparken.Text = "A1" And VAR_Box(0) = "1" Or Ausparken_Fenster.TB_Ausparken.Text = "A2" Or Ausparken_Fenster.TB_Ausparken.Text = "A3" Or Ausparken_Fenster.TB_Ausparken.Text = "A4" Or Ausparken_Fenster.TB_Ausparken.Text = "A5" Or Ausparken_Fenster.TB_Ausparken.Text = "B1" Or Ausparken_Fenster.TB_Ausparken.Text = "B2" Or Ausparken_Fenster.TB_Ausparken.Text = "B3" Or Ausparken_Fenster.TB_Ausparken.Text = "B4" Or Ausparken_Fenster.TB_Ausparken.Text = "B5" Or Ausparken_Fenster.TB_Ausparken.Text = "C1" Or Ausparken_Fenster.TB_Ausparken.Text = "C2" Or Ausparken_Fenster.TB_Ausparken.Text = "C3" Or Ausparken_Fenster.TB_Ausparken.Text = "C4" Or Ausparken_Fenster.TB_Ausparken.Text = "C5" Or Ausparken_Fenster.TB_Ausparken.Text = "D1" Or Ausparken_Fenster.TB_Ausparken.Text = "D2" Or Ausparken_Fenster.TB_Ausparken.Text = "D3" Or Ausparken_Fenster.TB_Ausparken.Text = "D4" Or Ausparken_Fenster.TB_Ausparken.Text = "D5" Or Ausparken_Fenster.TB_Ausparken.Text = "E1" Or Ausparken_Fenster.TB_Ausparken.Text = "E2" Or Ausparken_Fenster.TB_Ausparken.Text = "E3" Or Ausparken_Fenster.TB_Ausparken.Text = "E4" Or Ausparken_Fenster.TB_Ausparken.Text = "E5" Then
    11. 'Eingabe wird in die Variable geladen
    12. VAR_Ausparkenbox_Eingabe = Ausparken_Fenster.TB_Ausparken.Text
    13. 'Eingabe wird zusätzlich angezeit im fenster
    14. Ausparken_Fenster.LB_Ausparkbox_Eingabe_Anzeige.Text = VAR_Ausparkenbox_Eingabe
    15. 'Die Eingabe wird geteilt und getrennt angezeigt
    16. VAR_Ausparkenbox_Etage = Microsoft.VisualBasic.Left(VAR_Ausparkenbox_Eingabe, 1)
    17. VAR_Ausparkenbox_Platz = Microsoft.VisualBasic.Right(VAR_Ausparkenbox_Eingabe, 1)
    18. Ausparken_Fenster.LB_Ausparkbox_Etage_Anzeige.Text = VAR_Ausparken_Etage
    19. Ausparken_Fenster.LB_Ausparkbox_Platz_eingabe.Text = VAR_Ausparken_Platz
    20. 'Fenster wird Aktuallisiert
    21. Ausparken_Fenster.Refresh()
    22. Call Zeitschleife(1, "Aufzug in Bewegung")
    23. Ausparken_Fenster.Close()
    24. 'Konvertierung damit es zur Ausparkfunktion past
    25. Select Case VAR_Ausparkenbox_Etage
    26. Case "A"
    27. VAR_Ausparkenbox_Etage = "B"
    28. Case "B"
    29. VAR_Ausparkenbox_Etage = "C"
    30. Case "C"
    31. VAR_Ausparkenbox_Etage = "D"
    32. Case "D"
    33. VAR_Ausparkenbox_Etage = "E"
    34. Case "E"
    35. VAR_Ausparkenbox_Etage = "A"
    36. End Select
    37. 'Es wird der Einparkwert so angepast das der Aufzug in die richtige Etage fährt
    38. Select Case VAR_Ausparkenbox_Platz
    39. Case "1"
    40. VAR_Ausparkenbox_Platz = "2"
    41. Case "2"
    42. VAR_Ausparkenbox_Platz = "3"
    43. Case "3"
    44. VAR_Ausparkenbox_Platz = "4"
    45. Case "4"
    46. VAR_Ausparkenbox_Platz = "5"
    47. Case "5"
    48. VAR_Ausparkenbox_Platz = "1"
    49. End Select
    50. Call Einparken_bewegung(VAR_Ausparkenbox_Etage, VAR_Ausparkenbox_Platz)
    51. 'Wartezeit für das aufnehmen der Box
    52. Call Zeitschleife(5, "Aufzug nimmt Box auf")
    53. 'Die Box die Gerade geleert wurde wird wieder frei gegeben für das nächste Auto
    54. If VAR_Ausparkenbox_Eingabe = "A1" Then
    55. VAR_Box(0) = "0"
    56. End If
    57. If VAR_Ausparkenbox_Eingabe = "A2" Then
    58. VAR_Box(1) = "0"
    59. End If
    60. If VAR_Ausparkenbox_Eingabe = "A3" Then
    61. VAR_Box(2) = "0"
    62. End If
    63. If VAR_Ausparkenbox_Eingabe = "A4" Then
    64. VAR_Box(3) = "0"
    65. End If
    66. If VAR_Ausparkenbox_Eingabe = "A5" Then
    67. VAR_Box(4) = "0"
    68. End If
    69. If VAR_Ausparkenbox_Eingabe = "B1" Then
    70. VAR_Box(5) = "0"
    71. End If
    72. If VAR_Ausparkenbox_Eingabe = "B2" Then
    73. VAR_Box(6) = "0"
    74. End If
    75. If VAR_Ausparkenbox_Eingabe = "B3" Then
    76. VAR_Box(7) = "0"
    77. End If
    78. If VAR_Ausparkenbox_Eingabe = "B4" Then
    79. VAR_Box(8) = "0"
    80. End If
    81. If VAR_Ausparkenbox_Eingabe = "B5" Then
    82. VAR_Box(9) = "0"
    83. End If
    84. If VAR_Ausparkenbox_Eingabe = "C1" Then
    85. VAR_Box(10) = "0"
    86. End If
    87. If VAR_Ausparkenbox_Eingabe = "C2" Then
    88. VAR_Box(11) = "0"
    89. End If
    90. If VAR_Ausparkenbox_Eingabe = "C3" Then
    91. VAR_Box(12) = "0"
    92. End If
    93. If VAR_Ausparkenbox_Eingabe = "C4" Then
    94. VAR_Box(13) = "0"
    95. End If
    96. If VAR_Ausparkenbox_Eingabe = "C5" Then
    97. VAR_Box(14) = "0"
    98. End If
    99. If VAR_Ausparkenbox_Eingabe = "D1" Then
    100. VAR_Box(15) = "0"
    101. End If
    102. If VAR_Ausparkenbox_Eingabe = "D2" Then
    103. VAR_Box(16) = "0"
    104. End If
    105. If VAR_Ausparkenbox_Eingabe = "D3" Then
    106. VAR_Box(17) = "0"
    107. End If
    108. If VAR_Ausparkenbox_Eingabe = "D4" Then
    109. VAR_Box(18) = "0"
    110. End If
    111. If VAR_Ausparkenbox_Eingabe = "D5" Then
    112. VAR_Box(19) = "0"
    113. End If
    114. If VAR_Ausparkenbox_Eingabe = "E1" Then
    115. VAR_Box(20) = "0"
    116. End If
    117. If VAR_Ausparkenbox_Eingabe = "E2" Then
    118. VAR_Box(21) = "0"
    119. End If
    120. If VAR_Ausparkenbox_Eingabe = "E3" Then
    121. VAR_Box(22) = "0"
    122. End If
    123. If VAR_Ausparkenbox_Eingabe = "E4" Then
    124. VAR_Box(23) = "0"
    125. End If
    126. If VAR_Ausparkenbox_Eingabe = "E5" Then
    127. VAR_Box(24) = "0"
    128. End If
    129. Call Ausgangsstellung()
    130. Call Zeitschleife(1, "Aufzug in Bewegung")
    131. Call White()
    132. LB_Ausparkbox.BackColor = Color.Green
    133. Call Zeitschleife(1, "Aufzug stellt Box zum Ausparken bereit")
    134. VAR_Ausparkzeit = Now.Subtract(VAR_Stopuhr_ + VAR_Ausparkenbox_Eingabe).ToString
    135. VAR_Ausparkzeit = VAR_Ausparkzeit.ToLongTimeString
    136. VAR_Ausparktext = "Ihre Parkdauer beträgt" + VAR_Ausparkzeit + ". Bitte werfen sie " + +" ein. Danke"
    137. MsgBox(VAR_Ausparktext)
    138. Call Zeitschleife(1, "Aufzug in Bewegung")
    139. Call White()
    140. LB_A1_Kennzeichen.BackColor = Color.Green
    141. ElseIf MsgBox("Ihre Eingabe ist ungütig oder die Box ist leer.") Then
    142. End If
    143. End Sub

    Rofl schrieb:

    von Klassen und ähnlichen habe ich keine ahnung

    Sie machen das Leben einfacher.
    Sie "gruppieren" nämlich zb informationen, die "zusammengehören".

    Du solltest aber dann wenigestens mal nachschauen, was "Dictionary" kann! Die brauchst du nämlich für "Schlüssel/Wertpaare". Und in deinem Fall hast du ja zb die Nummer der Box als Schlüssel.

    also zb

    VB.NET-Quellcode

    1. Dim Belegt As New Dictionary(Of String, Boolean)
    2. Belegt.Add("A5", False)
    3. Belegt("A5") = True


    aber wie gesagt: .Net ist eine OBJEKTORIENTIERTE Sprache. Deswegen sollte man Objekte (also Klassen etc) tunlichst auch verwenden. Ansonsten kannst du deinen Kram besser in Modula etc schreiben ;)
    wie kann ich das erledigt wieder löschen?

    Also dieses Dctionary ist jetzt zuviel für mich, dafür habe ich keine zeit. Laut meines Profs. hätte ich die ganze aufgabe mit den einfach schleifen lösen können.

    Danke für eure Hilfe aber wenn es keine einfache lösung gibt bin ich wohl leider dazu gezwungen doch die if bedingungen zu nehmen. Ich bekomme es sonst leider zeitlich nicht anderes hin mit den anderen Modulen die ich zu lernen habe.

    Danke

    Rofl schrieb:

    Laut meines Profs. hätte ich die ganze aufgabe mit den einfach schleifen lösen können.

    Vermutlich wäre es clever gewesen, uns die AUFGABENSTELLUNG genau zu beschreiben. Du hast bislang nach "Lösungen" gefragt, die aber darauf beruhen, was DU als korrekten LösungsANSATZ betrachtest. Das muss aber nicht zwangsläufig korrekt sein und vlt führt ja schon dein Ansatz in eine Sackgasse?
    Hi,
    hier mal die Aufgabenstellung vom Prof. . Diese ist sehr Allgemein gehalten. Leider kann ich aus zeitlichen Gründen nicht mehr das evtl am effektivsten geschriebenden Programm erstellen. Mittlerweile wäre ich froh wenn ich ein funktionierendes Programm habe. Bisher sitze ich an an dem Programm seit über 1 Monat und durchschnittlioch 3-4 Std am Tag. Ich denke ich werde für das Lasten und Pflichtenheft wohl auch nochmal einige Tage brauchen. Abgeben muss ich das ganze auch noch am Montag. Vielleicht versteht ihr so das ich leider keine zeit habe für schöne lösungen.

    Allgemeine Beschreibung
    Die nachfolgenden Parameter sind Bestandteile zur Entwicklung einer Steuersoftware für das automatisierte Parksystem.
    Folgende Parameter kommen zur Anwendung:
    Projektname: StefaPark
    Etagen: 5
    Etagenstellplätze: 5
    Regalanzahl: 1
    Parksystem: Regalsystem

    Aufgabenstellung:
    Neben dem in VB 2008 erstellten Programm sollen als Dokumentation der Aufgaben folgende Informationen in der Ausarbeitung zu finden sein:
    1) Erstellen Sie ein Lastenheft und Pflichtenheft mit nachfolgenden Diagrammen:
    A) Aktivitätendiagramm
    B) Komponentendiagramm.
    C) Zustandsdiagramme
    D) Entscheidungsbaum
    und für die Programmentwicklung notwendigen Struktogramme.
    2) Programmentwicklung
    Entwickeln Sie ein Steuerungsprogramm mit folgenden Merkmalen:
    A) Fahrzeugannahme.
    B) Transport der Parkpalette zu einem freien Regalplatz. C) Ermittlung der Parkdauer und Anzeige.
    D) Rücktransport der Parkpalette und Übergabe des Fahrzeugs.
    Alle systemrelevanten Daten sollen während des Programmlaufs im Programmfenster angezeigt werden.
    gruß Rolf