1. 程式人生 > 實用技巧 >面向物件設計(購物車)

面向物件設計(購物車)

購物車

一、成員介紹

二、前期調查

三、系統功能結構圖

四、系統功能描述

使用者可以通過自己的愛好選擇商品,可以選擇商品的多少,將其新增到購物車,如果選錯了,可以從購物車中刪除選錯的商品,最後計算總額。

五、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;
		}
		
	}
}