首页 > 其他 > 详细

面向对象设计(购物车)

时间:2020-11-19 20:07:57      阅读:43      评论:0      收藏:0      [点我收藏+]

购物车

一、成员介绍

技术分享图片

二、前期调查

技术分享图片

技术分享图片

技术分享图片

技术分享图片

三、系统功能结构图

技术分享图片

四、系统功能描述

用户可以通过自己的爱好选择商品,可以选择商品的多少,将其添加到购物车,如果选错了,可以从购物车中删除选错的商品,最后计算总额。

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

技术分享图片

技术分享图片

技术分享图片

技术分享图片

面向对象设计(购物车)

原文:https://www.cnblogs.com/t----j/p/14007448.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!