Moin moin.
Als abschließendes Projekt in meinem Kurs "Grundlagen Hochsprachenprogrammierung" (Teil meines Maschinenbaustudiums) sollen wir ein Programm schreiben. Vorgegeben ist uns dabei nur, was das Programm können soll.
Ich bin damit jetzt auch fürs erste fertig. Mein Programm erfüllt alle gestellten Anforderungen und funktioniert einwandfrei.
Ich würde mich nun freuen, wenn ihr einen Blick über meinen Quellcode werfen würdet und mir sagt, was ihr davon haltet. Bedenkt dabei aber bitte, ich habe jediglich Grundkenntnisse mit wenig Erfahrung und kann mit dem Programmierstil von Profis natürlich nicht mithalten. Wäre also nett wenn ihr die Messlatte nicht auf euer Niveau legt, sondern entsprechend tiefer ;). Ich möchte damit erreichen, meinen Quellcode noch etwas abzurunden, was den Stil angeht.
Vielen Dank schonmal
Zweck des Programms:
Der User soll sich einen Balken definieren können, der mit beliebig vielen Kräften belastet werden kann, welche der User selber eingibt.
Zum Schluss sollen die eingegeben Werte ausgegeben werden, wobei die Kräfte nach ihrer Position auf dem Balken sortiert werden sollen
Als abschließendes Projekt in meinem Kurs "Grundlagen Hochsprachenprogrammierung" (Teil meines Maschinenbaustudiums) sollen wir ein Programm schreiben. Vorgegeben ist uns dabei nur, was das Programm können soll.
Ich bin damit jetzt auch fürs erste fertig. Mein Programm erfüllt alle gestellten Anforderungen und funktioniert einwandfrei.
Ich würde mich nun freuen, wenn ihr einen Blick über meinen Quellcode werfen würdet und mir sagt, was ihr davon haltet. Bedenkt dabei aber bitte, ich habe jediglich Grundkenntnisse mit wenig Erfahrung und kann mit dem Programmierstil von Profis natürlich nicht mithalten. Wäre also nett wenn ihr die Messlatte nicht auf euer Niveau legt, sondern entsprechend tiefer ;). Ich möchte damit erreichen, meinen Quellcode noch etwas abzurunden, was den Stil angeht.
Vielen Dank schonmal
Zweck des Programms:
Der User soll sich einen Balken definieren können, der mit beliebig vielen Kräften belastet werden kann, welche der User selber eingibt.
Zum Schluss sollen die eingegeben Werte ausgegeben werden, wobei die Kräfte nach ihrer Position auf dem Balken sortiert werden sollen
VB.NET-Quellcode
- Module Biegebalken
- Sub Main()
- Dim dBalkenlaenge, dLoslagerposition, dPosition(0), dKraft(0), dEingabe As Double
- Dim strEingabe As String
- Dim iAnzahlPositionen As Integer
- Console.WriteLine()
- Console.WriteLine("!!! Hinweis: Eingabe aller Längenwerte in m und aller Kräfte in kN !!!")
- Linie()
- EinlesenBalkenlaenge(dBalkenlaenge)
- EinlesenLoslagerposition(dBalkenlaenge, dLoslagerposition)
- Linie()
- ' Primärschleife zum Einlesen von beliebig vielen Punktlasten
- Do
- ' Sekundärschleife zum Einlesen der Positionen
- Do
- Do
- Console.Write(iAnzahlPositionen + 1 & ". Position eingeben: ")
- strEingabe = Console.ReadLine()
- ' Bedingung um das Einlesen von mindestens einer Position zu erzwingen
- If (strEingabe = "e" Or strEingabe = "E") And dPosition(0) = 0 Then
- strEingabe = 0
- Console.WriteLine("Mindestens eine Punktlast muss eingegeben werden!")
- End If
- Loop Until IsNumeric(strEingabe) And Not strEingabe.Contains(".") Or strEingabe = "e" Or strEingabe = "E"
- ' Beenden der Sekundärschleife
- If strEingabe = "e" Or strEingabe = "E" Then
- Exit Do
- End If
- Loop Until strEingabe > 0
- ' Beenden der Primärschleife
- If strEingabe = "e" Or strEingabe = "E" Then
- Exit Do
- End If
- dEingabe = strEingabe
- ' Kontrolle ob eine Position bereits vergeben wurde
- For z As Integer = 0 To dPosition.Length - 1
- If dEingabe = dPosition(z) Then
- Console.WriteLine("Position wurde bereits vergeben!")
- Continue Do
- ElseIf dEingabe = dLoslagerposition Then
- Console.WriteLine("Position liegt auf Loslager!")
- Continue Do
- ElseIf dEingabe > dBalkenlaenge Then
- Console.WriteLine("Position liegt außerhalb des Balkens!")
- Continue Do
- End If
- Next
- ' Array Anpassung
- If dPosition.Length = iAnzahlPositionen Then
- ReDim Preserve dPosition(dPosition.Length)
- ReDim Preserve dKraft(dKraft.Length)
- End If
- dPosition(iAnzahlPositionen) = dEingabe
- ' Sekundärschleife zum Einlesen der Kräfte
- Do
- Do
- Console.Write(iAnzahlPositionen + 1 & ". Kraft eingeben: ")
- strEingabe = Console.ReadLine()
- Loop Until IsNumeric(strEingabe) And Not strEingabe.Contains(".")
- Loop Until strEingabe > 0
- dKraft(iAnzahlPositionen) = strEingabe
- iAnzahlPositionen += 1
- Console.WriteLine()
- Loop
- ' Sortieren
- For i As Integer = 0 To dPosition.Length - 1
- For j As Integer = i + 1 To iAnzahlPositionen - 1
- If dPosition(i) > dPosition(j) Then
- Dim dTempPosition, dTempKraft As Double
- dTempPosition = dPosition(i)
- dTempKraft = dKraft(i)
- dPosition(i) = dPosition(j)
- dKraft(i) = dKraft(j)
- dPosition(j) = dTempPosition
- dKraft(j) = dTempKraft
- End If
- Next
- Next
- 'Ausgabe
- Linie()
- Console.WriteLine("Festlagerposition: 0m")
- Console.WriteLine("Loslagerposition: " & dLoslagerposition & "m")
- Console.WriteLine("Balkenlänge: " & dBalkenlaenge & "m")
- Console.WriteLine()
- For m As Integer = 0 To dPosition.Length - 1
- Console.WriteLine(m + 1 & ". Position: " & dPosition(m) & "m | Kraft: " & dKraft(m) & "kN")
- Next
- Console.WriteLine()
- End Sub
- ' Eingabe der Balkenlänge
- Sub EinlesenBalkenlaenge(ByRef dBalken As Double)
- Dim strBalken As String
- Do
- Do
- Console.Write("Balkenlänge eingeben: ")
- strBalken = Console.ReadLine
- Loop Until IsNumeric(strBalken) And Not strBalken.Contains(".")
- Loop Until strBalken > 0
- dBalken = strBalken
- End Sub
- ' Eingabe der Loslagerposition
- Sub EinlesenLoslagerposition(ByVal dLaenge As Double, ByRef dPosition As Double)
- Dim strPosition As String
- Do
- Do
- Console.Write("Position des Loslagers eingeben: ")
- strPosition = Console.ReadLine
- Loop Until IsNumeric(strPosition) And Not strPosition.Contains(".")
- Loop Until strPosition > 0 And strPosition <= dLaenge
- dPosition = strPosition
- End Sub
- ' Linie mit Abstaz
- Sub Linie()
- Console.WriteLine("_________________________________________________________________________")
- Console.WriteLine()
- End Sub
- End Module