Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Kassenbon

Kassenbon

Es soll ein Programm geschrieben werden, dass einen Kassenbon auf der Konsole anzeigt (mit System.out.println). Am Anfang des Programmes werden in Form von Variablen folgende Werte festgelegt:

  • Anzahl von mindestens vier verschiedenen Waren, die gekauft werden sollen.
  • Einzelpreise der Waren. (Ja, jede Warensorte hat einen anderen Preis)
  • Inhalt der Brieftasche.

Das Programm soll den Gesamtpreis der eingangs festgelegten Waren ermitteln. Übersteigt der Gesamtpreis den Inhalt der Brieftasche, wird der Benutzer auf den fehlenden Betrag hingewiesen. Reicht der Inhalt der Brieftasche für den Einkauf aus, wird ein Kassenbon ausgegeben, der die gekauften Waren mit Anzahl und Preis sowie am Ende den Gesamtpreis auflistet.

Hinweis: Erstellt zuerst die Ausgabe des Kassenbons und füllt sie anschließend mit Berechnungen und der Fallunterscheidung.


Beispiel wie ein Kassenbon aussehen könnte:

Wurst      1 x  4.20 EUR
                          4.20 EUR
Käse       1 x  2.30 EUR
                          2.30 EUR
Brot       1 x  2.10 EUR
                          2.10 EUR
DVD        2 x 12.00 EUR
                         24.00 EUR
----------------------------------
Gesamt                   32.60 EUR
Gegeben                  50.00 EUR

Zurück                   17.40 EUR

Kassenbon + automatischer Einkauf

Erstellt eine Kopie eures soeben geschriebenden Programmes. Verändert das Programm so, dass nun der Kassenbon solange mit Waren gefüllt wird, bis der Inhalt der Brieftasche für keine weiteren Einkäufe ausreicht. Betrachtet der Einfachheit halber mehrere Produkte eines Typs als einen Einkauf.

Hinweis: Viele, viele Fallunterscheidungen!



Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)


Unknown User

hallo alle freitagsrunde Team,

diese lehrveranstaltung finde ich persönlich super megageil, aber ich wünsche,dass die Musterlösungen von solchen schweren Aufgaben im Netz gestellt werden.

ich wünsche Euch viel Erfolg und weiterso...:-)


Robert

Der Eine oder Andere hat darauf bestanden auf seinem Kassenbon keine Hundertstelcent ausgeben zu wollen. Diese entstehen mitunter dadurch, dass Doublewerte mit einer gewissen Toleranz gespeichert werden. Hier ein Vorschlag für einen Workaround:

double kommazahl = 123.290402;
	
int ganzzahl = (int)kommazahl; // Nachkommastelle abschneiden
int kommastelle = (int)(kommazahl * 100)%100 ; // zwei Nachkommastellen extrahieren
 
System.out.println("Preis=" + ganzzahl + "." + kommastelle ); // Zahl in der Ausgabe zusammensetzen

Ich

Wie ist das gemeint, mit Kassenbon automatisch füllen? Man kann doch nicht "zufällig" einkaufen...

Die Idee der Aufgabe war es, so lange dasselbe Produkt zu kaufen, wie du kannst. Aber (da am Anfang des Kurses) nicht mit einer Schleife, sondern mit mehreren if's. -- Robert Buchholz 02:13, 4. Jun. 2007 (CEST)

Me2

Beim Kassenbon oben sollte, wenn ich nicht total falsch bin, 17.40 zurück gegeben werden, ist vielleicht für den ein oder anderen ganz nützlich :)