import java.util.*;
public class PointOfSale extends ProductDisplay
{
public PointOfSale()
{ System.out.print("\nPurchase Item(y/n)?");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
if("y".equalsIgnoreCase(line)){
OpenOrder();
}
}
//=============================================
public void OpenOrder() // New Order
{
ArrayList<String> ProductList = new ArrayList<String>();
ProductList.add("A001");
ProductList.add("A002");
ProductList.add("A003");
ProductList.add("A004");
ProductList.add("A005");
System.out.print("Select Product Code:");
Scanner sc = new Scanner(System.in);
String code = sc.next();
if(ProductList.contains(code))
{
product.getProduct(code);
EnterQuantity();
}
else System.out.print("Product Code is Invalid\n");
System.exit(0);}
//==============================================
public void EnterQuantity() //Entering Quantity
{
try{
System.out.print("Enter Quantity:");
Scanner sc = new Scanner(System.in);
int quantity = sc.nextInt();
double amount = quantity * product.getPrice();
System.out.print("Amount: " + amount);
//add new item
System.out.print("\nAdd Item(y/n)?");
Scanner sc2 = new Scanner(System.in);
String add = sc2.nextLine();
if("y".equalsIgnoreCase(add)){
OpenOrder();
}
else {
DisplayOrder();
}
}
catch (InputMismatchException nfe)
{System.out.print("\nInvalid Entry: Input must be a Number.\n"); System.exit(0);}
}
public void DisplayOrder() //Displaying order information
{
}
// Main Method
public static void main(String[] args)
{ new PointOfSale(); }
}
正如您所看到的,您可以在无休止的循环中购买订单。但那些订单没有存储,所以我不能打电话给他们。因为如果你停止订购,应该有某种收据。如何存储这些多个订单并将其显示在DisplayORder
上答案 0 :(得分:0)
您只需创建List<String> productsOrdered = null;
并在构造函数
if("y".equalsIgnoreCase(line)){
productsOrdered = new ArrayList<String>();
OpenOrder();
}
因此,每当您收到新订单时,都会重新初始化。
现在您可以在用户选择产品代码时或在EnterQuantity方法中更新此列表,因为从这里您也可以保存数量(您只需要在此方法中进行简单更改为public void EnterQuantity(字符串代码)..在调用EnterQuantity时传递代码值。
现在在列表中添加这些值。
productsOrdered.add(code+"-"+quantity);
您可以在DisplayOrder方法中将这些订单显示为
for(String prodOrdered : productsOrdered){
System.out.println(prodOrdered);
}
答案 1 :(得分:0)
我厌倦了运行你的代码,答案看起来很简单。
你应该创建一个名为'Order'的新类(可能),它可以将添加的产品和数量存储到该类的Arraylist中。
添加功能以向其添加产品和数量。 打印内容以显示的另一个功能。
答案 2 :(得分:0)
您可以创建一个包含两个字段的新POJO类。产品代码和数量。每次获取产品代码和数量时,使用用户输入的值创建POJO类的实例并将其添加到列表中。在display方法中,从列表中获取类的每个实例并显示内容。