Kaffeebar

Limper545

Mitglied
Die Aufgabe ist es eine Kaffeebar zu erstellen, welche die Preise und Namen der Produkte einließt und in einem Array speichert und dann eine Preisliste auszugeben.

Der Konstruktor:

Java:
public class Kaffee {
    private String name;
    private double preis;
    public Kaffee(String name, double preis){
        this.name = name;
        this.preis = preis;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPreis() {
        return preis;
    }
    public void setPreis(int preis) {
        this.preis = preis;
    }
}


Der Code:

Java:
import java.util.Scanner;

public class Kaffeebar {
    private static Scanner in;

    public static void main(String[] args) {
        in = new Scanner(System.in);

        System.out.println("Wie viele Sorten Kaffee bieten Sie an?");

        int anzahl = in.nextInt();

        Kaffee [] kaffeeliste = new Kaffee[anzahl];

        for (int i=0; i < kaffeeliste.length; i++) {

            System.out.println("Wie soll der Kaffee heissen?");
            String name = in.next();

            System.out.println("Wie teuer soll der Kaffee sein?");
            double preis = in.nextDouble();

            kaffeeliste[i] = new Kaffee (name, preis);
        }
        System.out.printf("%n%n Preisliste für Kaffee: %n");
        for (int i=0; i < kaffeeliste.length; i++) {
            System.out.printf("%n %10s",);
            System.out.printf(" %.2f%n",);
        }
    }
}



jetzt bekomme ich in der zweiten Schleife nicht den Namen und den Preis raus.

Danke für jede Hilfe.
 
Zuletzt bearbeitet von einem Moderator:

bene2808

Aktives Mitglied
Du erstellst vor den Schleifen ein Kaffee-Array. In der ersten Schleife musst du dann also bei jedem Durchlauf einem Element dieses Arrays einen Wert zuweisen und nicht dem ganzen Array, es fehlt der Index:

Code:
kaffeeliste[i] = new Kaffee(name, preis)

In der zweiten Schleife brauchst du dann natürlich auch irgendwo in deinen print-Anweisungen einen Verweis auf das aktuelle Element der Kaffeliste.
 
K

kneitzel

Gast
Dein Code ist nicht zu compilieren. Kaffeeliste ist ein Array, da wirst du keinen einzelnen Kaffee zuweisen können. Und deine printf Aufrufe sind auch nicht übersetzbar.

Der Umgang mit Arrays ist falsch. Wie greift man auf Elemente eines Arrays zu?
 

Limper545

Mitglied
Java:
public class Kaffeebar { private static Scanner in;

public static void main(String[] args) { in = new Scanner(System.in);

System.out.println("Wie viele Sorten Kaffee bieten Sie an?"); int anzahl = in.nextInt();

// Legen Sie hier ein Array kaffeeliste an, das die oben

// angegebene Anzahl an Kaffees (Espresso, Latte ..) // aufnehmen kann. Siehe Script Seite 150.

____________________________________________

// Schreiben Sie hier eine for-Schleife, die den Kaffee und den // Preis für jeden Kaffee einliest.

__________________________________ {

System.out.println("Wie soll der Kaffee heissen?");

String name = in.next();

System.out.println("Wie teuer soll der Kaffee sein?"); double preis = ___________________ ;

// Erzeugen Sie ein neues Kaffeeobjekt.

_____________________________________________

// Fügen Sie dieses Objekt in unsere kaffeeliste ein.

_____________________________________________

}

System.out.printf("%n%n Preisliste für Kaffee: %n");

// Ergänzen Sie die for-each-Schleife und die printf // Anweisungen, so dass eine einfach Preisliste // ausgegeben wird, z.B.

// Espresso 3.45

// Latte 5.99

for(______________________________) {

System.out.printf("%n %10s", ____________________ );

System.out.printf(" %.2f%n", _______________ );

}

}

}

Das ist sind meine Vorgaben vom Professor
 
Zuletzt bearbeitet von einem Moderator:

Limper545

Mitglied
Ok, danke allen, hab es gelöst.

Java:
System.out.printf("%n %10s", kaffeeliste[i].getName());
System.out.printf(" %.2f%n",  kaffeeliste[i].getPreis());

Ich dachte echt ich hatte das schonmal stehen und es ging nicht.
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Oben