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/Musterloesung: Unterschied zwischen den Versionen

(Die Seite wurde neu angelegt: „'''Hinweis:''' Die Musterlösung kann von eurer Lösung abweichen, da es immer mehrere Varianten gibt ein Problem zu lösen. Im Zweifelsfall Fragt einen Tutor. =…“)
 
K
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
'''Hinweis:''' Die Musterlösung kann von eurer Lösung abweichen, da es immer mehrere Varianten gibt ein Problem zu lösen. Im Zweifelsfall Fragt einen Tutor.
 
'''Hinweis:''' Die Musterlösung kann von eurer Lösung abweichen, da es immer mehrere Varianten gibt ein Problem zu lösen. Im Zweifelsfall Fragt einen Tutor.
  
== Vorgabe Euro.java ==
+
== Lösung Kassenbon ==
  
<code>
+
<pre>
  public class Euro {
+
public class Receipt {
   
+
public static void main(String[] args) {
    //rundet einen double-Wert auf 2 Nachkommastellen, konvertiert ihn in einen String gegebener Breite (inklusive fuehrender Leerzeichen) und fuegt ein Euro-Zeichen an.
+
// Einzelpreise der Waren
    public static String format(double value, int width){
+
double wurst = 4.2;
   
+
double kaese = 2.3;
    String blanks= "            ";
+
double brot = 2.1;
           
+
double dvd = 12.0;
        String s= Double.toString(value);
 
       
 
        int dotPosition= s.indexOf('.');
 
           
 
        s = blanks.substring(0, width-(dotPosition+2)) +
 
            (int)value + "." + (int)(value * 100)%100;
 
       
 
        //(int)(value * 100)%100 = 0 fuer Zahlen der Form X.00
 
        // --> Es muss noch eine Null angehangen werden
 
        if(0 == (int)(value * 100)%100){
 
            s += "0";
 
        }
 
       
 
        s +=  " EUR";
 
   
 
        return s;
 
    }
 
}
 
  
</code>
+
// Anzahl der Waren
 +
int anzWurst = 1;
 +
int anzKaese = 1;
 +
int anzBrot = 1;
 +
int anzDvd = 2;
  
 +
// Inhalt der Brieftasche
 +
double brieftasche = 50.0;
  
== Lösung Kassenbon ==
+
// Summe gekaufter Waren
 +
double summe = 0;
 +
summe = summe + anzWurst * wurst;
 +
summe = summe + anzKaese * kaese;
 +
summe = summe + anzBrot * brot;
 +
summe = summe + anzDvd * dvd;
 +
 
 +
if (summe > brieftasche) {
 +
System.out.println("Sie haben nicht genug Geld in Ihrer Brieftasche");
 +
} else {
 +
// Strings lassen sich sehr gut formatieren:
 +
// http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax
 +
System.out.println(String.format("%-9s %2d x %5.2f EUR", "Wurst", anzWurst, wurst));
 +
System.out.println(String.format("%30.2f EUR", anzWurst * wurst));
 +
 
 +
System.out.println(String.format("%-9s %2d x %5.2f EUR", "Käse", anzKaese, kaese));
 +
System.out.println(String.format("%30.2f EUR", anzKaese * kaese));
 +
 
 +
System.out.println(String.format("%-9s %2d x %5.2f EUR", "Brot", anzBrot, brot));
 +
System.out.println(String.format("%30.2f EUR", anzBrot * brot));
 +
 
 +
System.out.println(String.format("%-9s %2d x %5.2f EUR", "DVD", anzDvd, dvd));
 +
System.out.println(String.format("%30.2f EUR", anzDvd * dvd));
 +
 
 +
System.out.println("__________________________________");
  
<code>
+
System.out.println(String.format("%-9s %20.2f EUR", "Gesamt", summe));
public class Kassenbon {
+
System.out.println(String.format("%-9s %20.2f EUR", "Gegeben", brieftasche));
    public static void main(String[] args){
+
System.out.println();
        //Einzelpreise der Waren
+
System.out.println(String.format("%-9s %20.2f EUR", "Zurück", brieftasche - summe));
        double wurst = 4.2;
+
}
        double kaese = 2.3;
+
}
        double brot = 2.1;
+
}
        double dvd = 12.0;
+
</pre>
       
 
        //Anzahl der Waren
 
        int anzWurst = 1;
 
        int anzKaese = 1;
 
        int anzBrot = 1;
 
        int anzDvd = 2;
 
       
 
        //Inhalt der Brieftasche
 
        double brieftasche = 50.0;
 
       
 
        //Summe gekaufter Waren
 
        double summe = 0;
 
        summe = summe + anzWurst * wurst;
 
        summe = summe + anzKaese * kaese;
 
        summe = summe + anzBrot * brot;
 
        summe = summe + anzDvd * dvd;
 
       
 
        if(summe > brieftasche){
 
            System.out.println("Sie haben nicht genug Geld in Ihrer Brieftasche");
 
        } else {
 
           
 
            System.out.println("Wurst\t "+ anzWurst + " x  " + Euro.format(wurst, 3));
 
            System.out.println("\t\t\t " + Euro.format(anzWurst * wurst, 3));
 
           
 
            System.out.println("Käse\t " + anzKaese + " x  " +  Euro.format(kaese,3));
 
            System.out.println("\t\t\t " + Euro.format(anzKaese * kaese, 3));
 
           
 
            System.out.println("Brot\t " + anzBrot  + " x  " + Euro.format(brot, 3));
 
            System.out.println("\t\t\t " + Euro.format(anzBrot * brot, 3));
 
           
 
            System.out.println("DVD\t " + anzDvd + " x " + Euro.format(dvd, 4));
 
            System.out.println("\t\t\t" + Euro.format(anzDvd * dvd, 4));
 
           
 
            System.out.println("_________________________________");
 
           
 
            System.out.println("Gesamt\t\t\t" + Euro.format(summe, 4));
 
            System.out.println("Gegeben\t\t\t" + Euro.format(brieftasche, 4));
 
            System.out.println();
 
            System.out.println("Zurück\t\t\t" + Euro.format(brieftasche-summe, 4));
 
        }
 
    }
 
}
 
</code>
 
  
 
== Lösung Kassenbon + automatischer Einkauf ==
 
== Lösung Kassenbon + automatischer Einkauf ==
  
<code>
+
<pre>
public class KassenbonAutomatik {
+
public class Receipt2 {
    public static void main(String[] args){
+
public static void main(String[] args) {
        //Einzelpreise der Waren
+
// Einzelpreise der Waren
        double wurst = 4.2;
+
double wurst = 4.2;
       
+
 
        //Anzahl der Waren
+
// Anzahl der Waren
        int anzWurst = 0;
+
int anzWurst = 0;
       
+
 
        //Inhalt der Brieftasche
+
// Inhalt der Brieftasche
        double brieftasche = 50.0;
+
double brieftasche = 50.0;
       
+
 
        //Summe gekaufter Waren
+
// Summe gekaufter Waren
        double summe = 0;
+
double summe = 0;
       
+
 
        if(summe > brieftasche){
+
if (summe > brieftasche) {
            System.out.println("Sie haben nicht genug Geld in Ihrer Brieftasche");
+
System.out.println("Sie haben nicht genug Geld in Ihrer Brieftasche");
        } else {
+
} else {
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
if (summe + wurst < brieftasche) {
            if(summe+wurst < brieftasche){
+
summe = summe + wurst;
                summe = summe + wurst;
+
anzWurst = anzWurst + 1;
                anzWurst = anzWurst + 1;
+
}
            }
+
 
           
+
// Strings lassen sich sehr gut formatieren:
            System.out.println("Wurst\t "+ anzWurst + " x  " + Euro.format(wurst, 3));
+
// http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax
            System.out.println("\t\t\t" + Euro.format(anzWurst * wurst, 4));
+
System.out.println(String.format("%-9s %2d x %5.2f EUR", "Wurst", anzWurst, wurst));
           
+
System.out.println(String.format("%30.2f EUR", anzWurst * wurst));
            System.out.println("_________________________________");
+
 
           
+
System.out.println("_________________________________");
            System.out.println("Gesamt\t\t\t" + Euro.format(summe, 4));
+
 
            System.out.println("Gegeben\t\t\t" + Euro.format(brieftasche, 4));
+
System.out.println(String.format("%-9s %20.2f EUR", "Gesamt", summe));
            System.out.println();
+
System.out.println(String.format("%-9s %20.2f EUR", "Gegeben", brieftasche));
            System.out.println("Zurück\t\t\t" + Euro.format(brieftasche-summe, 4));
+
System.out.println();
        }
+
System.out.println(String.format("%-9s %20.2f EUR", "Zurück", brieftasche - summe));
    }
+
}
}
+
}
</code>
+
}
 +
</pre>
  
 
== Kommentare ==
 
== 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 ;)
 
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 ;)

Aktuelle Version vom 27. Februar 2013, 16:50 Uhr

Hinweis: Die Musterlösung kann von eurer Lösung abweichen, da es immer mehrere Varianten gibt ein Problem zu lösen. Im Zweifelsfall Fragt einen Tutor.

Lösung Kassenbon

public class Receipt {
	public static void main(String[] args) {
		// Einzelpreise der Waren
		double wurst = 4.2;
		double kaese = 2.3;
		double brot = 2.1;
		double dvd = 12.0;

		// Anzahl der Waren
		int anzWurst = 1;
		int anzKaese = 1;
		int anzBrot = 1;
		int anzDvd = 2;

		// Inhalt der Brieftasche
		double brieftasche = 50.0;

		// Summe gekaufter Waren
		double summe = 0;
		summe = summe + anzWurst * wurst;
		summe = summe + anzKaese * kaese;
		summe = summe + anzBrot * brot;
		summe = summe + anzDvd * dvd;

		if (summe > brieftasche) {
			System.out.println("Sie haben nicht genug Geld in Ihrer Brieftasche");
		} else {
			// Strings lassen sich sehr gut formatieren:
			// http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax
			System.out.println(String.format("%-9s %2d x %5.2f EUR", "Wurst", anzWurst, wurst));
			System.out.println(String.format("%30.2f EUR", anzWurst * wurst));

			System.out.println(String.format("%-9s %2d x %5.2f EUR", "Käse", anzKaese, kaese));
			System.out.println(String.format("%30.2f EUR", anzKaese * kaese));

			System.out.println(String.format("%-9s %2d x %5.2f EUR", "Brot", anzBrot, brot));
			System.out.println(String.format("%30.2f EUR", anzBrot * brot));

			System.out.println(String.format("%-9s %2d x %5.2f EUR", "DVD", anzDvd, dvd));
			System.out.println(String.format("%30.2f EUR", anzDvd * dvd));

			System.out.println("__________________________________");

			System.out.println(String.format("%-9s %20.2f EUR", "Gesamt", summe));
			System.out.println(String.format("%-9s %20.2f EUR", "Gegeben", brieftasche));
			System.out.println();
			System.out.println(String.format("%-9s %20.2f EUR", "Zurück", brieftasche - summe));
		}
	}
}

Lösung Kassenbon + automatischer Einkauf

public class Receipt2 {
	public static void main(String[] args) {
		// Einzelpreise der Waren
		double wurst = 4.2;

		// Anzahl der Waren
		int anzWurst = 0;

		// Inhalt der Brieftasche
		double brieftasche = 50.0;

		// Summe gekaufter Waren
		double summe = 0;

		if (summe > brieftasche) {
			System.out.println("Sie haben nicht genug Geld in Ihrer Brieftasche");
		} else {
			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			if (summe + wurst < brieftasche) {
				summe = summe + wurst;
				anzWurst = anzWurst + 1;
			}

			// Strings lassen sich sehr gut formatieren:
			// http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax
			System.out.println(String.format("%-9s %2d x %5.2f EUR", "Wurst", anzWurst, wurst));
			System.out.println(String.format("%30.2f EUR", anzWurst * wurst));

			System.out.println("_________________________________");

			System.out.println(String.format("%-9s %20.2f EUR", "Gesamt", summe));
			System.out.println(String.format("%-9s %20.2f EUR", "Gegeben", brieftasche));
			System.out.println();
			System.out.println(String.format("%-9s %20.2f EUR", "Zurück", brieftasche - summe));
		}
	}
}

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 ;)