Hallo,
ich muss die Tage mein erstes VBA Projekt für die Uni (muss ein Informatik Modul belegen) verteigen und es läuft soweit auch ganz gut.
Es geht um einen Rechner, der auf Basis von Eingaben verschiedener Anzahl an Personen und Ausflüge den Reisepreis ermittelt.
Ich habe von Komillitonen gehört, dass häufig die Frage kommt wo man am Code noch hätte sparen können , um das Ganze "einfacher" zu machen.
Könnte mal kurz jemand drüberschauen und hätte eine Idee dazu? Code wurde schon eingereicht, es geht dann also nur noch um hypothetische Fragen.
Danke im Vorraus :)
Public Class Form1
Inherits System.Windows.Forms.Form
'Programm zu Erechnen von Reisegesamtpreis
'Konstanten
Const Erw_Preis As Integer = 400
Const Kind_8_Preis As Integer = 200
Const Kind_7_Preis As Integer = 100
Const Verpf_All_incl As Integer = 200
Const Verpf_HP As Integer = 50
Const Preis_Kairo As Integer = 100
Const Preis_Karnak As Integer = 80
Const Preis_Luxor As Integer = 90
'Variablen
Dim Erw As Integer = 0
Dim Kind_8 As Integer = 0
Dim Kind_7 As Integer = 0
Dim Kosten_Erw As Integer = 0
Dim Kosten_Kind_8 As Integer = 0
Dim Kosten_Kind_7 As Integer = 0
Dim Kinderzahl As Integer = 0
Dim VK As Integer = 0
Dim Verpf_Wahl As Integer = 0
Dim GZ_Zahler As Integer = 0
Dim Kairo As Integer = 0
Dim Luxor As Integer = 0
Dim Karnak As Integer = 0
Dim AK As Integer = 0
Dim Gesamtkosten As Integer = 0
Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
'Eingaben
'Eingaben Erwachsene
If Not IsNumeric(TextBox1.Text) Then
MsgBox("Anzahl Erwachsene muss eine Zahl sein!", MsgBoxStyle.Exclamation,
"Warnung")
Return
End If
If Not CDbl(TextBox1.Text) > 0 Then
MsgBox("Mindestens ein Erwachsener!", MsgBoxStyle.Exclamation, "Warnung")
Return
End If
If Not CDbl(TextBox1.Text) < 5 Then
MsgBox("Maximal 4 Erwachsene!", MsgBoxStyle.Exclamation, "Warnung")
Return
End If
'Kinder über 8 Jahre
Erw = CInt(TextBox1.Text)
If Not IsNumeric(TextBox2.Text) Then
MsgBox("Anzahl Kinder über 8 Jahre muss
MsgBox("Bitte Anzahl der Kinder über 8 Jahre angeben!!",
MsgBoxStyle.Exclamation, "Warnung")
Return
End If
If Not CDbl(TextBox2.Text) < 4 Then
MsgBox("Maximal 3 Kinder über 8 Jahre!", MsgBoxStyle.Exclamation,
"Warnung")
Return
End If
Kind_8 = CInt(TextBox2.Text)
'Kinder unter 8 Jahre
If Not IsNumeric(TextBox3.Text) Then
MsgBox("Anzahl Kinder unter 8 Jahre muss eine Zahl sein!",
MsgBoxStyle.Exclamation, "Warnung")
Return
End If
If Not CDbl(TextBox3.Text) >= 0 Then
MsgBox("Bitte Anahl der Kinder unter 8 Jahre angeben!",
MsgBoxStyle.Exclamation, "Warnung")
Return
End If
If Not CDbl(TextBox3.Text) < 4 Then
MsgBox("Maximal 3 Kinder unter 8 Jahre!", MsgBoxStyle.Exclamation,
"Warnung")
Return
End If
Kind_7 = CInt(TextBox3.Text)
'Flughafenwahl
TextBox7.Text = ComboBox1.Text
If TextBox7.Text = "" Then
MsgBox("Flughafen muss ausgewählt werden", MsgBoxStyle.Exclamation,
"Warnung")
Return
End If
' Berechnen
Kosten_Erw = Erw * Erw_Preis
Kinderzahl = Kind_8 + Kind_7
If Kinderzahl < 0 Then
Kosten_Kind_8 = 0
Kosten_Kind_7 = 0
Else
If Kind_8 > 0 Then
Kosten_Kind_8 = Kind_8 * Kind_8_Preis
Else : Kosten_Kind_8 = 0
End If
If Kind_7 > 0 Then
Kosten_Kind_7 = Kind_7 * Kind_7_Preis
Else : Kosten_Kind_7 = 0
End If
End If
GZ_Zahler = Erw + Kind_8
'Verpflegunswahl/Verpflegungskosten berechnen
If RadioButton1.Checked = True Then
VK = GZ_Zahler * Verpf_All_incl
Else : VK = GZ_Zahler * Verpf_HP
End If
'Ausflugswahl / Ausflugskosten berechnen
If CheckBox2.Checked = True Then
Karnak = Preis_Karnak * GZ_Zahler
Else : Karnak = 0
End If
If CheckBox3.Checked = True Then
Luxor = Preis_Luxor * GZ_Zahler
Else : Luxor = 0
End If
If CheckBox1.Checked = True Then
Kairo = Preis_Kairo * GZ_Zahler
Else : Kairo = 0
End If
AK = Kairo + Luxor + Karnak
Gesamtkosten = Kosten_Erw + Kosten_Kind_8 + Kosten_Kind_7 + VK + AK
' Ausgabe
TextBox4.Text = Kosten_Erw
TextBox5.Text = Kosten_Kind_8
TextBox6.Text = Kosten_Kind_7
TextBox7.Text = ComboBox1.Text
TextBox8.Text = VK
TextBox9.Text = AK
TextBox10.Text = Format(Gesamtkosten, "000 €")
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Select Case Asc(e.KeyChar)
Case 48 To 57, 8 ' Zahlen, Backspace
Case Else ' alle anderen Eingaben unterdrücken
e.Handled = True
End Select
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
Select Case Asc(e.KeyChar)
Case 48 To 57, 8 ' Zahlen, Backspace
Case Else ' alle anderen Eingaben unterdrücken
e.Handled = True
End Select
End Sub
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
Select Case Asc(e.KeyChar)
Case 48 To 57, 8 ' Zahlen, Backspace
Case Else ' alle anderen Eingaben unterdrücken
e.Handled = True
End Select
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
End
End Sub
End Class
|