Hallo,
ich hab ein
Die Ausgabe ist immer so, dass nur die letzte hinzugefügte Position angezeigt wird. Da wird definitiv was überschrieben, aber ich weiß die Lösung nicht, wie man das vermeidet. Der unten beschriebene Quellcode der einzelnen Klassen liefert folgende Ausgabe:
Kassenbon-Nr: 1 Datum: Sat Mar 22 23:52:12 CET 2014
Position Artikel Menge Einzelpreis Positionspreis
1 Shampoo 4 3.45 13.8
Summe: 13.8
public class Position {
public int posNr;
private int einkaufsmenge;
Kassenbon bon;
Artikel a;
public Position(Kassenbon b){
this.bon=b;
posNr++;
}
//Füge ein Artikel mit gewünschter Einkaufsmenge hinzu
public void addPosition(Artikel a, int einkaufsmenge){
this.einkaufsmenge=einkaufsmenge;
this.a=a;
}
public double getPositionspreis(){
return a.getEinzelpreis()*einkaufsmenge;
}
public double getGesamtpreis(){
double gesamtpreis=0;
gesamtpreis+=getPositionspreis();
return gesamtpreis;
}
public void drucken(){
System.out.println("Position Artikel Menge Einzelpreis Positionspreis " );
System.out.println(posNr+" "+a.getName()+" "+einkaufsmenge+" "+a.getEinzelpreis()+" "+getPositionspreis());
System.out.println("Summe: "+getGesamtpreis());
}
public static void main(String [] args){
Artikel a1=new Artikel("WC-Papier", 2.95);
Artikel a2=new Artikel("Coca-Cola", 0.50);
Artikel a3=new Artikel("Shampoo", 3.45);
Kassenbon b1=new Kassenbon(1, new Date());
Position p=new Position(b1);
p.addPosition(a1, 5);
p.addPosition(a3, 4);
p.drucken();
public class Artikel {
private String name;
private double einzelpreis;
public Artikel(String name, double einzelpreis){
this.name=name;
this.einzelpreis=einzelpreis;
}
public String getName(){
return name;
}
public double getEinzelpreis(){
return einzelpreis;
}
}
public class Kassenbon {
private int bonNr;
private Date date;
public Kassenbon(int bonNr, Date date){
this.bonNr=bonNr;
this.date=date;
System.out.println("Kassenbon-Nr: "+bonNr+" Datum: "+date);
}
}
ich hab ein
Die Ausgabe ist immer so, dass nur die letzte hinzugefügte Position angezeigt wird. Da wird definitiv was überschrieben, aber ich weiß die Lösung nicht, wie man das vermeidet. Der unten beschriebene Quellcode der einzelnen Klassen liefert folgende Ausgabe:
Kassenbon-Nr: 1 Datum: Sat Mar 22 23:52:12 CET 2014
Position Artikel Menge Einzelpreis Positionspreis
1 Shampoo 4 3.45 13.8
Summe: 13.8
public class Position {
public int posNr;
private int einkaufsmenge;
Kassenbon bon;
Artikel a;
public Position(Kassenbon b){
this.bon=b;
posNr++;
}
//Füge ein Artikel mit gewünschter Einkaufsmenge hinzu
public void addPosition(Artikel a, int einkaufsmenge){
this.einkaufsmenge=einkaufsmenge;
this.a=a;
}
public double getPositionspreis(){
return a.getEinzelpreis()*einkaufsmenge;
}
public double getGesamtpreis(){
double gesamtpreis=0;
gesamtpreis+=getPositionspreis();
return gesamtpreis;
}
public void drucken(){
System.out.println("Position Artikel Menge Einzelpreis Positionspreis " );
System.out.println(posNr+" "+a.getName()+" "+einkaufsmenge+" "+a.getEinzelpreis()+" "+getPositionspreis());
System.out.println("Summe: "+getGesamtpreis());
}
public static void main(String [] args){
Artikel a1=new Artikel("WC-Papier", 2.95);
Artikel a2=new Artikel("Coca-Cola", 0.50);
Artikel a3=new Artikel("Shampoo", 3.45);
Kassenbon b1=new Kassenbon(1, new Date());
Position p=new Position(b1);
p.addPosition(a1, 5);
p.addPosition(a3, 4);
p.drucken();
public class Artikel {
private String name;
private double einzelpreis;
public Artikel(String name, double einzelpreis){
this.name=name;
this.einzelpreis=einzelpreis;
}
public String getName(){
return name;
}
public double getEinzelpreis(){
return einzelpreis;
}
}
public class Kassenbon {
private int bonNr;
private Date date;
public Kassenbon(int bonNr, Date date){
this.bonNr=bonNr;
this.date=date;
System.out.println("Kassenbon-Nr: "+bonNr+" Datum: "+date);
}
}