Schul-Sachen-Verteilerseite Aufgaben-Hilfe
Dritte
Klas-
sen-
arbeit
in der
BI1a
Schul-
jahr
2000/
2001

Ergebnisse

Erstelle bitte ein Programm, mit dessen Hilfe eine Mietfahrradabrechnung durchgeführt werden kann.
 
Aufgabe a: (15 Punkte)
Erstelle eine EXCEL-Tabelle, die nach Eingabe und Berechnung der Daten als Rechnung ausgedruckt werden kann mit folgendem Aussehen:

Excel-Tabelle zur Mietfahrradabrechnung

 
Aufgabe b: (15 Punkte)
Erstelle ein Hauptprogramm, das die notwendigen Subs aufruft.
Aufgabe c: (20 Punkte)
Erstelle Subs, die über Inputboxen den Abrechnungszeitraum und den Fahrradtyp einlesen.
Aufgabe d: (15 Punkte)
Berechne den Gesamt-Brutto-Betrag unter Berücksichtigung folgender Daten:

Beachte: Wenn im Mietzeitraum nur ein Wochenendtag liegt, dann gilt der Wochenendpreis für jeden Tag der Mietdauer.

Fahrradtyp Wochenendpreis normaler Preis
Kinder 8,00 6,00
Damen 15,00 12,00
Herren 18,00 15,00
Aufgabe e: (30 Punkte)
Führe alle notwendigen Plausibilitätsprüfungen durch.
 
'Festlegung der Variablen als globale Variablen, weil Übertragungen vereinfacht werden (?!?)
Public fahrradtyp As String
Public datumanfang As String
Public datanfang As Date
Public datumende As String
Public datende As Date
Public dauer As Integer
Public weekend As Currency
Public sonst As Currency
Public fehlertyp As Integer 'Fehlerhafte Fahrradtypeingabe
Public fehlerdatum As Integer 'Fehlerhafte Datumseingabe

Sub Eingaben()
'Nach und nach die Daten eingeben
  'Fahrradtyp:
While fehlertyp = 0
 
    Call typ(fahrradtyp)
  Wend  
  'Zurücksetzen der Abbruchbedingung
fehlerdatum = 0
  'Plausibilitätsprüfung der Datumseingaben:
While fehlerdatum = 0
    Call datanf(datumanfang)
Call datend(datumende)
    If datanfang - datende > 0 Then
      Call falschesdatum2
    Else
      'Anfangsdatum liegt vor Enddatum
fehlerdatum = -1
    End If
  Wend
  'Berechnung der Mietdauer
dauer = datende - datanfang + 1 'angefangene Tage werden voll berechnet!

'Eintragen der Mietdauer
Sheets("Rechnung").Select
Range("B10").Value = dauer
  'Prüfung der Wochentage auf Wochenende und Eintragen in die entsprechenden Zellen
If WeekDay(datanfang, vbMonday) > 5 Then
    Range("D10").Value = weekend
  Else
    Range("D10").Value = sonst
  End If
End Sub

Sub typ(fahrradtyp As String)
  'Sicherstellen, daß die richtige Tabelle ausgewählt wird
Sheets("Rechnung").Select
Range("B1").Select
  While fehlertyp = 0
    'Eingabe des Fahrradtyps anfordern
fahrradtyp = InputBox("Gemieteter Fahrradtyp (Kinder, Damen, Herren)")
    'Daten zuordnen
If fahrradtyp = "Kinder" Then
      weekend = 8
sonst = 6
fehlertyp = -1
    ElseIf fahrradtyp = "Damen" Then
      weekend = 15
sonst = 12
fehlertyp = -1
    ElseIf fahrradtyp = "Herren" Then
      weekend = 18
sonst = 15
fehlertyp = -1
    Else
      MsgBox ("Falschen Fahrradtyp eingegeben!")
    End If
  Wend
  'Eingabewerte in die entsprechenden Zellen eintragen
Range("B4").Value = fahrradtyp
End Sub

Sub datanf(datumanfang)
  'Sicherstellen, daß die richtige Tabelle ausgewählt wird
Sheets("Rechnung").Select
Range("B1").Select
  While fehlerdatum = 0
    'Eingabe des Datums des Mietanfangs
datumanfang = InputBox("Datum Mietanfang (JJJJ-MM-TT):")

Call datumpruefen(datumanfang)
  Wend

'Eingabewert in die entsprechende Zelle eintragen
Range("B7").Value = datumanfang

'Eingabewert konvertieren
datanfang = CDate(datumanfang)

'Abbruchbedinung für Eingabe zurücksetzen
fehlerdatum = 0
End Sub

Sub datend(datumende)
  'Sicherstellen, daß die richtige Tabelle ausgewählt wird
Sheets("Rechnung").Select
Range("B1").Select
  While fehlerdatum = 0
    'Eingabe des Datums des Mietendes
datumende = InputBox("Datum Mietende (JJJJ-MM-TT):")

Call datumpruefen(datumende)
  Wend

'Eingabewert in die entsprechende Zelle eintragen
Range("D7").Value = datumende

'Eingabewert konvertieren
datende = CDate(datumende)

'Abbruchbedinung für Eingabe zurücksetzen
fehlerdatum = 0
End Sub

Sub falschesdatum()
  MsgBox ("Falsches Datumsformat eingegeben!")
End Sub

Sub datumpruefen(datum)
  If Len(datum) <> 10 Then
    Call falschesdatum
  ElseIf Mid(datum, 5, 1) <> "-" Then
    Call falschesdatum
  ElseIf Mid(datum, 8, 1) <> "-" Then
    Call falschesdatum
  ElseIf CInt(Mid(datum, 6, 2)) > 12 Then
    Call falschesdatum
  ElseIf CInt(Right(datum, 2)) > 31 Then
    Call falschesdatum
  ElseIf (0 = Left(datum, 4) Mod 4) And Mid(datum, 6, 2) = "02" And CInt(Right(datum, 2)) > 29 Then
    Call falschesdatum
  ElseIf Mid(datum, 6, 2) = "02" And CInt(Right(datum, 2)) > 28 Then
    Call falschesdatum
  ElseIf Mid(datum, 6, 2) = "04" Or Mid(datum, 6, 2) = "06" Or Mid(datum, 6, 2) = "09" Or Mid(datum, 6, 2) = "11" And CInt(Right(datum, 2)) > 30 Then
    Call falschesdatum
  Else
    'Datum korrekt eingegeben
fehlerdatum = -1
  End If
End Sub

Sub falschesdatum2()
  MsgBox ("Endedatum vor Anfangsdatum!")
End Sub
 
Aufgabe f: (5 Punkte)
Prüfe Dein Programm durch Eingabe folgender Daten und drucke die entsprechende Rechnung aus:
Fahrradtyp Abrechnungs-Anfang Abrechnungs-Ende
Herren 2001-03-12 2001-03-15
Ergebnis-Tabelle
Fragen karlheinz@luk-korbmacher.de