Übungsaufgabe
Anders als in den bisherigen Übungen gibt es keine Schritt-für-Schritt-Anleitung. Sie erhalten die Anforderungen und entscheiden selbst, welche Variablen, Bedingungen und Operatoren Sie dafür brauchen.
- Verwenden Sie nur Inhalte, die Sie aus dem Skript kennen. Wo eine Recherche nötig ist, steht es ausdrücklich dabei.
- Kommentieren Sie Ihren Code so, dass eine andere Person ihn ohne Erklärung versteht.
- Prüfen Sie Ihr Programm mit allen Testfällen. Ändern Sie dafür nur die Eingabewerte am Anfang, nicht den restlichen Code.
Aufgabe 01: Druckauftrag-Kalkulator
Eine Digitaldruckerei bietet Flyer in drei Formaten an. Bisher rechnet das Team jeden Auftrag von Hand. Entwickeln Sie ein Programm, das aus wenigen Eingaben den Preis eines Auftrags berechnet und eine Auftragsbestätigung ausgibt.
Eingaben
Ihr Programm arbeitet mit vier Werten, die am Anfang des Codes festgelegt werden: Kundenname, Format, Auflage (Stückzahl) und Express-Lieferung (ja/nein). Der Kundenname darf leer sein.
Format: A6
Preis pro Stück (netto): 0,08 €
Format: A5
Preis: 0,12 €
Format: A4
Preis: 0,20 €
Kalkulationsregeln
- Druckkosten = Stückpreis × Auflage.
- Ab einer Auflage von 500 Stück gibt es 10 % Rabatt auf die Druckkosten.
- Für jeden Auftrag fällt zusätzlich eine Grundgebühr von 15,00 € für den Datencheck an. Darauf gibt es keinen Rabatt.
- Bei Express-Lieferung kommt ein Zuschlag von 25 % auf die gesamte Nettosumme dazu.
- Auf den Nettobetrag werden 19 % Mehrwertsteuer berechnet.
- Wird ein Format eingegeben, das nicht in der Preisliste steht, gibt das Programm eine Fehlermeldung aus und berechnet keinen Preis.
Anforderungen an die Ausgabe
- Ist kein Kundenname angegeben, erscheint stattdessen »Neukunde«.
- Jeder Auftrag erhält eine zufällige, vierstellige Auftragsnummer (1000 bis einschließlich 9999).
- Die Console zeigt Nettobetrag, Mehrwertsteuer und Bruttobetrag jeweils auf zwei Nachkommastellen gerundet. Die passende Methode dafür kennen Sie noch nicht: Recherchieren Sie sie auf MDN.
- Zum Schluss gibt das Programm eine Auftragsbestätigung als ganzen Satz aus, z. B.: Auftrag 4711 für Neukunde: 500 × A5, Express: ja. Gesamtpreis: 102.64 € brutto.
- Ihr Code enthält mindestens ein switch-Statement, einen Ternary-Operator und eine Short-Circuit-Evaluation.
Testfälle
| Nr. | Kundenname | Format | Auflage | Express | Erwartetes Ergebnis (brutto) |
|---|---|---|---|---|---|
| 1 | (leer) | A5 | 500 | ja | 102.64 € |
| 2 | Atelier Grün | A6 | 250 | ja | 52.06 € |
| 3 | (leer) | A4 | 1000 | nein | 232.05 € |
| 4 | (leer) | A5 | 499 | nein | 89.11 € |
| 5 | (leer) | A5 | 500 | nein | 82.11 € |
| 6 | (leer) | A3 | 100 | nein | Fehlermeldung |
Vergleichen Sie Testfall 4 und 5. Erklären Sie in einem Kommentar am Ende Ihres Codes, warum 500 Flyer günstiger sind als 499.
Bonus
Die Druckerei führt eine Mengenstaffel ein: ab 500 Stück 10 % Rabatt, ab 1000 Stück 15 %, ab 2500 Stück 20 %. Bauen Sie die Staffel in Ihr Programm ein und ergänzen Sie einen eigenen Testfall.