我正在編寫一個程序,用戶可以輸入一個金額(作為銷售),輸入他們是否想用現金或卡支付,然后詢問他們是否想輸入另一個金額(只是為了練習 Java 編程)。每當我輸入金額并選擇現金時,它應該告訴我到目前為止已記錄的現金銷售數量。但是,每當我在添加第一個金額后添加另一個金額時,現金銷售計數仍然保持不變 (1)。此外,每當用戶不再希望輸入任何更多交易時,也應顯示現金/卡交易的總額。另一個問題是現金總量不會累加,只顯示最后輸入的值。任何解決這些問題的幫助將不勝感激。這是兩個類的代碼:SalesRegister.javapackage Week2;public class SalesRegister { private int numCashSales; private double valueCashSales; private int numCardSales; private double valueCardSales; private String transactions; public SalesRegister() { this.numCashSales = 0; this.valueCashSales = 0.0; this.numCardSales = 0; this.valueCardSales = 0.0; this.transactions = ""; } public int getNumCashSales() { return this.numCashSales; } private void addTransaction(boolean isCash, double amount) { if (isCash) { transactions += "CASH SALE\t"; } else { transactions += "CARD SALE\t"; } transactions += amount + "\n"; } public void cashSale(double saleValue) { if (saleValue > 0.0) { System.out.println("Cash sale recorded."); valueCashSales += saleValue; numCashSales++; System.out.println(numCashSales); addTransaction(true, saleValue); } } public void cardSale(double saleValue) { if (saleValue > 0.0) { numCardSales++; valueCardSales += saleValue; addTransaction(false, saleValue); } } public String getTransactions() { String result = ""; result += "Cash Sales: " + numCashSales + " Total: " + valueCashSales + "\n"; result += "Card Sales: " + numCardSales + " Total: " + valueCardSales + "\n"; result += "Transaction List \n"; result += "+--------------+ \n"; result += transactions + "\n"; return result; }}最后,這是控制臺的輸出窗口:
1 回答

森欄
TA貢獻1810條經驗 獲得超5個贊
SalesRegister您將在循環的每次迭代中創建一個新對象,從而重置存儲的值。
您需要將構造函數移到 do-while-loop 之前,即
Scanner in = new Scanner(System.in);
SalesRegister register = new SalesRegister();
i=0;
do {
i=0;
...
添加回答
舉報
0/150
提交
取消