我的程序应该询问用户姓名,价格以及他想要的金额,直到他按下“x”。此时程序应打印收据。
如何从主要的Kassenzettel课程中拨打列表进行打印?
另外,我覆盖了to String方法,因为我的收据是“类似超市”,这种格式会在主类中应用吗?
这是我的主要类:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.println("What would you like? ");
String produkt = scanner.nextLine();
System.out.println("How many pieces do you want?");
int anzahl = scanner.nextInt();
System.out.println("How much does " + produkt + "cost?");
double preis = scanner.nextDouble();
//Im not even sure if that should be there
Kassenzettel list =new Kassenzettel();
Eintrag carrots = new Eintrag("carrots", 5, 0.40);
Kassenzettel.add(carrots);
System.out.println("__________________________________");
System.out.println(" IHRE RECHNUNG ");
System.out.println("__________________________________");
}
}
My Eintrag-class:
public class Eintrag {
private String produkt;
private double preis;
private int anzahl;
public Eintrag(String produkt, int anzahl, double preis) {
this.anzahl=anzahl;
this.produkt=produkt;
this.preis=preis;
}
public int getAnzahl(){
return this.anzahl;
}
public double getPreis(){
return this.preis * this.anzahl;
}
public String getProdukt() {
return this.produkt;
}
public void setAnzahl(int anzahl) {
this.anzahl = anzahl;
}
public String toString() {
return (String.format("%-9s %2d x %5.2f EUR",produkt , anzahl, preis
+ "%30.2f EUR", anzahl * preis));
}
}
我的Kassenzettel类,应该包含一个Eintrag对象列表 import java.util.ArrayList;
public class Kassenzettel {
private static ArrayList<Eintrag> kassenZettel;
private double summe;
// Constructs a new empty grocery list.
public static void add(Eintrag item) {
kassenZettel.add(item);
}
@Override
public String toString() {
return (String.format("%-9s %2d x %5.2f EUR",kassenZettel
+ "%30.2f EUR"
+ "SUMME", summe));
}
}
答案 0 :(得分:0)
不确定,如果我有,你想要什么,但你可以使用这样的东西:
将Kassenzettel的toString方法更改为:
double sum = 0;
String ret = "";
for(int i = 0; i< kassenZettel.size(); i++){
ret += kassenZettel.get(i).toString()+"\r\n";
sum += kassenZettel.get(i).getPreis();
}
ret += "\r\nSumme: "+sum;
接下来,您必须为用户输入创建一个循环:
Scanner scanner = new Scanner(System.in);
//create an instance of kassenzettel to add your produkts to
Kassenzettel list =new Kassenzettel();
//set variable to check if read or not (not needed if using break!)
boolean readOn = true;
//loop for reading until user inputs x or X
while(readOn){
System.out.println("What would you like? ");
String produkt = scanner.nextLine();
//check if produkt name is X or x => exit the loop
if(produkt.equalsIgnoreCase("x")){
readOn = false;
break;
}
System.out.println("How many pieces do you want?");
int anzahl = scanner.nextInt();
System.out.println("How much does " + produkt + "cost?");
double preis = scanner.nextDouble();
//add a new item to kassenzettel
list.add(new Eintrag(produkt, anzahl, preis));
}
//print the output of kassenzettel
System.out.println(list.toString());
修改强>
并删除:
//Im not even sure if that should be there
Kassenzettel list =new Kassenzettel();
Eintrag carrots = new Eintrag("carrots", 5, 0.40);
Kassenzettel.add(carrots);
工作代码: