面向物件設計(購物車)
阿新 • • 發佈:2020-11-19
購物車
一、成員介紹
二、前期調查
三、系統功能結構圖
四、系統功能描述
使用者可以通過自己的愛好選擇商品,可以選擇商品的多少,將其新增到購物車,如果選錯了,可以從購物車中刪除選錯的商品,最後計算總額。
五、UML
六、程式碼及效果展示
package homework; import java.util.Scanner; interface Cart{ public boolean add(int num,int quantity); public boolean delete(int num,int quantity); public boolean clear(); public void onePrice(int num); public void sumPrice(); } class ShoppingCart implements Cart{ private int arr[]; public ShoppingCart() { arr=new int[6]; for(int i=1;i<6;i++) arr[i]=0; } @Override public boolean add(int num,int quantity) { arr[num]+=quantity; return true; } @Override public boolean delete(int num,int quantity) { if(arr[num]>=quantity) { arr[num]=arr[num]-quantity; return true; } else return false; } @Override public boolean clear() { for(int i=1;i<6;i++) arr[i]=0; return true; } @Override public void sumPrice() { int s=arr[1]*4+arr[2]*4+arr[3]*7+arr[4]*5+arr[5]*2; System.out.println(" 全部商品總計:"+s+"元"); System.out.println(); } @Override public void onePrice(int num) { switch(num) { case 1:{ int s=arr[num]*4; if(s>0) System.out.println("1 蘋果"+arr[num]+"斤,總計:"+s+"元"); break; } case 2:{ int s=arr[num]*4; if(s>0) System.out.println("2 香蕉"+arr[num]+"斤,總計:"+s+"元"); break; } case 3:{ int s=arr[num]*7; if(s>0) System.out.println("3 葡萄"+arr[num]+"斤,總計:"+s+"元"); break; } case 4:{ int s=arr[num]*5; if(s>0) System.out.println("4 梨子"+arr[num]+"斤,總計:"+s+"元"); break; } case 5:{ int s=arr[num]*2; if(s>0) System.out.println("5 西瓜"+arr[num]+"斤,總計:"+s+"元"); break; } } } }
class Menu{ public static void showMenu(){ System.out.println(" 商品如下"); System.out.println(" 名稱 售價"); System.out.println(" 1 蘋果 4元/斤"); System.out.println(" 2 香蕉 4元/斤"); System.out.println(" 3 葡萄 7元/斤"); System.out.println(" 4 梨子 5元/斤"); System.out.println(" 5 西瓜 2元/斤"); } public static void showFunction() { System.out.println(" 1 加入購物車"); System.out.println(" 2 移除購物車"); System.out.println(" 3 清空購物車"); System.out.println(" 0 退出購物車"); } } public class Shopping{ public static void main(String[] args) { ShoppingCart arr=new ShoppingCart(); while(true) { Menu.showMenu(); Menu.showFunction(); Scanner in=new Scanner(System.in); int n=in.nextInt(); switch(n) { case 1:{ System.out.println(" 請輸入商品編號和數量(輸入0停止)"); while(true) { int a=in.nextInt(); if(a==0) break; int b=in.nextInt(); if(a>5||a<0) System.out.println("商品編號為"+a+"的商品不存在"); else { arr.add(a, b); } } System.out.println(" 新增成功!"); for(int i=1;i<5;i++) arr.onePrice(i); arr.sumPrice(); break; } case 2:{ System.out.println(); System.out.println(" 請輸入商品編號和數量(輸入0停止)"); while(true) { int a=in.nextInt(); if(a==0) break; int b=in.nextInt(); if(a>5||a<0) System.out.println("商品編號為"+a+"的商品不存在"); else { if(arr.delete(a, b)) System.out.println(" 刪除成功!"); } } for(int i=1;i<5;i++) arr.onePrice(i); arr.sumPrice(); break; } case 3:{ System.out.println(); arr.clear(); System.out.println(" 清空成功!"); for(int i=1;i<5;i++) arr.onePrice(i); arr.sumPrice(); break; } } if(n==0) break; } } }