制作杂货篮

所以我正在尝试创建一个程序,允许用户将物品放入杂货篮中。

  • 第 1 步:用户应该能够添加带有名称和价格的杂货项目。

  • 步骤2:篮子上不得添加重复名称

  • 第 3 步:用户应该能够删除指定名称的杂货。

  • 第 4 步:用户应该能够看到购物篮中的所有内容。

我知道我快完成了,但我坚持第 3 步和第 4 步,有什么建议吗?

这是我的代码

public class Main {


public static void main(String[] args) {


Scanner myReader = new Scanner(System.in);    


    while (true) {

    System.out.println("What would you want to do today?");

    System.out.println("(A)dd grocery item\n(R)emove grocery item\n(S)ee all items"); 

    System.out.println("Enter Command: ");

    String toDo = myReader.nextLine();


        if (toDo.equals("A")) {

            System.out.print("New Item Name: ");

            String grocery = myReader.nextLine();

            GroceryPackage grocery1 = new GroceryPackage();

            grocery1.addGrocery(grocery);

            System.out.print("New Item Price: ");

            String groceryPrice = myReader.nextLine();

            grocery1.addGrocery(groceryPrice);

            System.out.println("Added new item Succesfully!");


        }

        if (toDo.equals("R")) {

            System.out.print("Name of the Item you want to Remove: ");

            String removeItem = myReader.nextLine();

            removeItem.removeGrocery(grocery);



        }

        if (toDo.equals("S")) {

            System.out.print(GroceryPackage);

        }


        System.out.println("Thanks!");

    }



}



}


public class GroceryPackage {

private String addGrocery;

private boolean groceryPrice;

private String removeGrocery;

private String grocery1;



public void setGrocery1(String grocery1) {

    this.grocery1 = grocery1;


}


public void setListofGrocery(ArrayList<String> listofGrocery) {

    this.listofGrocery = listofGrocery;

}

private ArrayList<String> listofGrocery;


public GroceryPackage(String addGrocery, boolean groceryPrice) {

    this.addGrocery = addGrocery;

    this.groceryPrice = groceryPrice;                

}


public GroceryPackage() {

    this.listofGrocery = new ArrayList<String>();

}


慕田峪7331174
浏览 116回答 1
1回答

开心每一天1111

不幸的是,这个程序有太多问题,无法简单地解决这个问题。您确实需要缩减程序并努力使其尽可能简单。你的程序远比它需要的大。在同一个文件中不能有两个公共类。您的“GroceryPackage”类似乎没有提供任何您无法使用 ArrayList 变量“listofGrocery”本身的方法做的事情,除了跟踪价格(它不做)。它不必要地使程序复杂化。您可以尝试完全删除它的“public”关键字,或者使其成为 Main 的私有或静态内部类。但是,我建议只是摆脱它。我真的不认为你需要它。从技术上讲,您还没有达到第 2 步。没有什么可以防止 ArrayList 中出现重复值。我会用 aHashMap<String, Double>代替。这将允许您将“杂货”存储为字符串,其价格为 Double 值。您可以在 GroceryPackage 中使用“getter”和“setter”方法来获取、修改和返回您的 ArrayList,直接使用获取变量GroceryPackage.listofGrocery(如果变量是私有的,listofGrocery 将无法使用它),或者只是将其设为你的主要课程。最后一种是最简单的选择。我注意到您实际上从未将“listofGrocery”变量初始化为“GroceryPackage”的属性。从风格上讲,“listofGrocery”应该是“listOfGrocery”。您没有在 GroceryList 中使用“grocery1”属性。要解决第二步,篮子上不应添加重复的名称要么遍历数据结构中的所有值,要么使用抛出异常或返回可预测类型值的数据结构,如果要添加的值内部有重复值。确保无论您做什么,都不会替换数据结构中已经存在的任何值。为了解决第三步,“用户应该能够删除指定名称的杂货。”你尝试给你的“removeGrocery()”方法一个参数,即使它不需要任何参数。此外,clear() 方法会删除整个 ArrayList 中的所有值。仔细查看可用于您选择的任何数据结构的方法。对于第四步,“用户应该能够看到购物篮中的所有内容”。遍历篮子的所有内容。总结一下。我大多避免给你关于你的程序问题的直接答案。但是,希望你能接受我所说的并意识到你哪里出错了。实际上,有成千上万种不同的方法可以让您的程序满足要求。请务必在线仔细阅读javadocs。他们是无价的。最后,我注意到您从不在程序中使用任何循环。这些是新手程序员最好的朋友。学会爱他们。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java