演習問題6(レジ)


演習問題6-1 (Command)

購入された商品の会計をするためのレジスター(Register クラス)があります。

このレジスターは、購入商品の明細、合計金額、クーポンによる値引き、お釣りの計算など、いろいろな機能を組み合わせて処理を行うことができます。実行結果のように表示されるよう、以下の機能と共に作成しなさい。

なお、各機能は Command クラスを継承して作成してください。

クラス名機能
CmdPurchaseTimeお買い上げ日時
CmdAccount購入商品の明細(Cart クラスの getList メソッド)
CmdTotalPrice合計金額(Cart クラスの getTotalPrice メソッド)
CmdCouponクーポン(一定金額の値引き)
CmdPaymentお釣りの計算


実行結果
お買い上げ日時 2020-09-23 12:30:00
合計金額  949円


お買い上げ日時 2020-09-23 12:30:00
大根 125円 1個
豚肉 245円 250g
レタス 147円 1個
トマト 276円 4個
鶏肉 156円 200g
合計金額  949円
クーポン使用 値引き 50円
値引き後金額 899円
お預かり金額 1,000円
お釣り 101円


コード

Enshu601.java
public class Enshu601 { public static void main(String[] args) { Register reg = new Register(); Cart cart = new Cart(); cart.add(new Vegetable("大根", 125, 1)); cart.add(new Meat("豚肉", 98, 250)); cart.add(new Vegetable("レタス", 147, 1)); cart.add(new Vegetable("トマト", 69, 4)); cart.add(new Meat("鶏肉", 78, 200)); reg.accept(cart); reg.append(new CmdPurchaseTime()); reg.append(new CmdTotalPrice()); reg.execute(); // 会計(表示) reg.accept(cart); reg.append(new CmdPurchaseTime()); reg.append(new CmdAccount()); reg.append(new CmdTotalPrice()); reg.append(new CmdCoupon(50)); // 割引金額:50円 reg.append(new CmdPayment(1000)); // お預かり金額:1000円 reg.execute(); // 会計(表示) } }
Command.java
public abstract class Command { protected Cart cart; protected Register register; public abstract void execute(); }






演習問題6-1 (Command)