亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

制作雜貨籃

制作雜貨籃

慕田峪7331174 2022-05-12 17:30:00
所以我正在嘗試創建一個程序,允許用戶將物品放入雜貨籃中。第 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>();}
查看完整描述

1 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

不幸的是,這個程序有太多問題,無法簡單地解決這個問題。您確實需要縮減程序并努力使其盡可能簡單。你的程序遠比它需要的大。

在同一個文件中不能有兩個公共類。您的“GroceryPackage”類似乎沒有提供任何您無法使用 ArrayList 變量“listofGrocery”本身的方法做的事情,除了跟蹤價格(它不做)。它不必要地使程序復雜化。

您可以嘗試完全刪除它的“public”關鍵字,或者使其成為 Main 的私有或靜態內部類。但是,我建議只是擺脫它。我真的不認為你需要它。

從技術上講,您還沒有達到第 2 步。沒有什么可以防止 ArrayList 中出現重復值。我會用 aHashMap<String, Double>代替。這將允許您將“雜貨”存儲為字符串,其價格為 Double 值。

您可以在 GroceryPackage 中使用“getter”和“setter”方法來獲取、修改和返回您的 ArrayList,直接使用獲取變量GroceryPackage.listofGrocery(如果變量是私有的,listofGrocery 將無法使用它),或者只是將其設為你的主要課程。最后一種是最簡單的選擇。

我注意到您實際上從未將“listofGrocery”變量初始化為“GroceryPackage”的屬性。

從風格上講,“listofGrocery”應該是“listOfGrocery”。

您沒有在 GroceryList 中使用“grocery1”屬性。

要解決第二步,籃子上不應添加重復的名稱

要么遍歷數據結構中的所有值,要么使用拋出異?;蚍祷乜深A測類型值的數據結構,如果要添加的值內部有重復值。確保無論您做什么,都不會替換數據結構中已經存在的任何值。

為了解決第三步,“用戶應該能夠刪除指定名稱的雜貨。”

你嘗試給你的“removeGrocery()”方法一個參數,即使它不需要任何參數。此外,clear() 方法會刪除整個 ArrayList 中的所有值。仔細查看可用于您選擇的任何數據結構的方法。

對于第四步,“用戶應該能夠看到購物籃中的所有內容”。

遍歷籃子的所有內容。

總結一下。

我大多避免給你關于你的程序問題的直接答案。但是,希望你能接受我所說的并意識到你哪里出錯了。實際上,有成千上萬種不同的方法可以讓您的程序滿足要求。請務必在線仔細閱讀javadocs。他們是無價的。最后,我注意到您從不在程序中使用任何循環。這些是新手程序員最好的朋友。學會愛他們。


查看完整回答
反對 回復 2022-05-12
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號