Javakurs/Übungsaufgaben/Kassenbon: Unterschied zwischen den Versionen
(→Kommentare) |
|||
Zeile 80: | Zeile 80: | ||
Wer zusätzlich zu korrekter Rundung rechts ausgerichtete Preise möchte: | Wer zusätzlich zu korrekter Rundung rechts ausgerichtete Preise möchte: | ||
− | kopiere die Datei [[http://user.cs.tu-berlin.de/~langk/Euro.java | + | kopiere die Datei [[http://user.cs.tu-berlin.de/~langk/Euro.java Euro.java]] in Dein Arbeitsverzeichnis. |
− | Solange diese Datei in demselben Verzeichnis liegt, wie die java-Datei, an der Du arbeitest, stehen Dir der Befehl Euro.format(<preis>, <breite>); zur Verfügung. Wenn dich interessiert, warum das so ist, so erfährst du es [[Javakurs2007/ | + | Solange diese Datei in demselben Verzeichnis liegt, wie die java-Datei, an der Du arbeitest, stehen Dir der Befehl Euro.format(<preis>, <breite>); zur Verfügung. Wenn dich interessiert, warum das so ist, so erfährst du es [[Javakurs2007/Javamenue | hier]]. Ersetze einfach <preis> mit dem tatsächlichen Preis als double und <breite> mit der Breite des Preises als String inclusive führender Leerzeichen. Ein Euro-Zeichen wird automatisch hinten angefügt. |
Version vom 22. März 2010, 12:07 Uhr
Inhaltsverzeichnis
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
Katrin
Wer zusätzlich zu korrekter Rundung rechts ausgerichtete Preise möchte:
kopiere die Datei [Euro.java] in Dein Arbeitsverzeichnis.
Solange diese Datei in demselben Verzeichnis liegt, wie die java-Datei, an der Du arbeitest, stehen Dir der Befehl Euro.format(<preis>, <breite>); zur Verfügung. Wenn dich interessiert, warum das so ist, so erfährst du es hier. Ersetze einfach <preis> mit dem tatsächlichen Preis als double und <breite> mit der Breite des Preises als String inclusive führender Leerzeichen. Ein Euro-Zeichen wird automatisch hinten angefügt.
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 :)