The problem will be triggered using non-member to checkout, non-member can accumulate points after checkout procedure which is an abnormal behavior. ================================================================================== Please input your Worker ID for logging in the system... 1 Please input your Member ID for logging in the system... 0 ---Welcome to Morx Supermarket--- ---To continue, please proceed your actions--- Input (1) for accessing Inventory System Input (2) for accessing Checkout System Input (3) for accessing Sales System Input (4) for accessing Membership System Input (5) for switching member Input (6) to exit 2 ---Welcome to Checkout System, aiden.--- Input commands for further management: Input (1) for Checkout Input (2) for refund Input (3) for exit 1 No Description Quantity Price($) 1 Coke 200 2000.0 2 Salt 50 1000.0 Please input (0) for proceed to checkout Please input (1) for remove products Please input (2) for modify quantities of products Please input (3) to cancel the checkout process 0 The total amount is: $3000.00 Please Input the amount of dollars that the customers paid 3000 Total changes is $0.00 The Order Reference Number is 2021-11-297 Input commands for further management: Input (1) for Checkout Input (2) for refund Input (3) for exit 3 Exiting... ---To continue, please proceed your actions--- Input (1) for accessing Inventory System Input (2) for accessing Checkout System Input (3) for accessing Sales System Input (4) for accessing Membership System Input (5) for switching member Input (6) to exit 4 ---Hi aiden, To check Customer's membership details, please proceed your actions--- ---Input commands for further management--- Input (1) for checking the Customer Membership Status Input (2) for checking the Customer's points Input (3) for checking the status to another level of Membership Input (4) for exit 2 The customer owns 30 points. ---Hi aiden, To check Customer's membership details, please proceed your actions--- ---Input commands for further management--- Input (1) for checking the Customer Membership Status Input (2) for checking the Customer's points Input (3) for checking the status to another level of Membership Input (4) for exit
The problem has been solved by adding an condition to exempt non-member from accumulation points after buying products. ================================================================================== public int countPoints(double total, Member member) { if (member.getMembership() instanceof membership.NonMembership) return 0; int temp = 0; if (total >= 100.0D) temp += (int) (total / 100.0D); return temp; } ================================================================================== Please input your Worker ID for logging in the system... 1 Please input your Member ID for logging in the system... 0 ---Welcome to Morx Supermarket--- ---To continue, please proceed your actions--- Input (1) for accessing Inventory System Input (2) for accessing Checkout System Input (3) for accessing Sales System Input (4) for accessing Membership System Input (5) for switching member Input (6) to exit 2 ---Welcome to Checkout System, aiden.--- Input commands for further management: Input (1) for Checkout Input (2) for refund Input (3) for exit 1 No Description Quantity Price($) 1 Coke 200 2000.0 2 Salt 50 1000.0 Please input (0) for proceed to checkout Please input (1) for remove products Please input (2) for modify quantities of products Please input (3) to cancel the checkout process 0 The total amount is: $3000.00 Please Input the amount of dollars that the customers paid 3000 Total changes is $0.00 The Order Reference Number is 2021-11-297 Input commands for further management: Input (1) for Checkout Input (2) for refund Input (3) for exit 3 Exiting... ---To continue, please proceed your actions--- Input (1) for accessing Inventory System Input (2) for accessing Checkout System Input (3) for accessing Sales System Input (4) for accessing Membership System Input (5) for switching member Input (6) to exit 4 ---Hi aiden, To check Customer's membership details, please proceed your actions--- ---Input commands for further management--- Input (1) for checking the Customer Membership Status Input (2) for checking the Customer's points Input (3) for checking the status to another level of Membership Input (4) for exit 2 The customer owns 0 points. ---Hi aiden, To check Customer's membership details, please proceed your actions--- ---Input commands for further management--- Input (1) for checking the Customer Membership Status Input (2) for checking the Customer's points Input (3) for checking the status to another level of Membership Input (4) for exit