JAVA大作业--购物车

该博客详细介绍了基于Java编程的一个简单网上商城系统的实现,包括人员分工、系统功能结构、面向对象的设计原则和具体类的实现。系统主要包括商品查询、购物车管理、结算功能。商品类用于存储信息,购物车类负责商品添加、查询和结算,菜单类提供用户交互界面,而结算类则展示购物车详情并计算总价。整个系统通过UML图进行了结构化的描述,体现了良好的封装性和模块化设计。
摘要由CSDN通过智能技术生成

目录

目录

0、人员分工

1、前期调查

2、系统功能结构图

3、系统描述

4、UML图

5、面向对象的封装性

6、程序介绍

7、项目包结构与关键代码


0、人员分工

任务姓名
编码规范,功能设计,面向对象设计,购物车类,结算类,Main类骆梦钒
博客制作,前期调查,面向对象设计,商品类,菜单类姜芳华

1、前期调查

(1)、展示商品信息给用户推荐

(2)、进入京东首页面,具有输入商品名称可查询商品相关信息

(3)、进入具体商品页面,可展示商品属性,价格信息,并且具有可以加入购物车的功能 

(4)、购物车具有计算所有商品的价格与数量的功能。

2、系统功能结构图

3、系统描述

菜单类:

菜单界面

商品类:

存储商品相关信息

购物车类:

增加商品到购物车;查询购物车列表;清空购物车;找到编号商品信息

结算类:

展示购物车信息,计算商品总价

4、UML图

5、面向对象的封装性

JAVA:面向对象的编程语言。在此购物车案例中,不同的执行对象有不同的操作要实行,因此,先将对象和方法先找出来一一对应,即将名词与动词找出来,再将名词与动词逐一对应相应的对象与方法来设计代码。这样针对不同对象设计不同的方法,更加的具有逻辑,条理更清楚,

而对于商品类,展示商品信息,搜索商品信息,商品列表这些方法,可以设置成public属性,供其他包调用这些方法,使功能更完善。

增加商品到购物车与获得购物车列表,设置成public属性

6、程序介绍

(1)显示商品,并选择

 (2)商品查询

(3)商品购买

 (4)查看购物车

(5)购物车结算

(6)退出

 

7、项目包结构与关键代码

商品类

package shopping;
import java.util.*;

public class Goods {//商品

	private static int[] goodsID = new int[100];
    private static String[] goodsName =new String[100];
	private static double[] goodsPrice = new double[100];
	
	public static void showGoods() {
		System.out.println("商品编号	商品名	商品价格");
		for(int i = 0;i < 10;i++) {
			System.out.println(goodsID[i]+"	"+goodsName[i]+"	"+goodsPrice[i]);
		}
	}
	
	public static void searchGoods() {
		@SuppressWarnings("resource")
		
		Scanner sc = new Scanner(System.in);
		while(true) {
			System.out.println("请输入商品编号:");
			int Search = sc.nextInt();
			for(int i = 0;i < 10;i++) {
				if(Search == goodsID[i]) {
					System.out.print("商品已找到 : \r\n");
					System.out.println("商品编号	商品名	商品价格");
					System.out.println(goodsID[i]+"	"+goodsName[i]+"	"+goodsPrice[i]);
					return;//商品找到
				}
			}
			
			System.out.println("商品没找到,请重新查找: \r\n");
			
		}
		
	}
	
	public static void list() {
		for(int i = 0;i<10;i++) {
			goodsID[i] = i;
			switch (i) {
				case 0:
					goodsName[i] = "无糖黑巧克力" ;
					goodsPrice[i] = 58.60 ;
					break;
				case 1:
					goodsName[i] = "新西兰原装进口牛奶" ;
					goodsPrice[i] = 89.00 ;
					break;
				case 2:
					goodsName[i] = "化妆镜" ;
					goodsPrice[i] = 49.00 ;
					break;
				case 3:
					goodsName[i] = "金九月饼" ;
					goodsPrice[i] = 228.00 ;
					break;
				case 4:
					goodsName[i] = "东北大米";
					goodsPrice[i] = 12.00;
					break;
				case 5:
					goodsName[i] = "新疆面粉";
					goodsPrice[i] = 42.90;
					break;
				case 6:
					goodsName[i] = "铁观音";
					goodsPrice[i] =  119.00 ;
					break;
				case 7:
					goodsName[i] = "大刀肉" ;
					goodsPrice[i] = 15.60 ;
					break;
				case 8:
					goodsName[i] = "夏威夷果";
					goodsPrice[i] = 41.90 ;
					break;
				case 9:
					goodsName[i] = "五香瓜子";
					goodsPrice[i] = 23.80 ;
					break;
			}
		}	
		
	}

	public static int[] getGoodsID() {
		return goodsID;
	}

	public static void setGoodsID(int[] goodsID) {
		Goods.goodsID = goodsID;
	}
	
	public static String[] getGoodsName() {
		return goodsName;
	}

	public static void setGoodsName(String[] goodsName) {
		Goods.goodsName = goodsName;
	}

	public static double[] getGoodsPrice() {
		return goodsPrice;
	}

	public static void setGoodsPrice(double[] goodsPrice) {
		Goods.goodsPrice = goodsPrice;
	}


}

Main类

 package shopping;
import java.util.*;
public class Main {
	public static void main(String[] args) {
		Goods.list();//加载商品 商品清单
		Scanner sc = new Scanner(System.in);
		
		Goods.showGoods();//显示商品
		while(true) {
	
			Menu.main();
			System.out.print("请输入选项:");
            int num=sc.nextInt();
			switch (num) {
			case 1://商品查询
				//if(Goods.searchGoods()==0)
				Goods.searchGoods();
				break;
			case 2://商品购买
				System.out.println();
				System.out.println("请输入您需要的商品序号:");
				int needGoods = sc.nextInt();
				System.out.println("请输入您需要的商品数量:");
				int needAddNum = sc.nextInt();
				
				if(ShoppingCart.addGoods(needGoods, needAddNum)==1) 
					System.out.println("添加购物车成功");
				
				else System.out.println("添加购物车失败");//判断输入参数是否有效
				
				break;
			
			case 3://查看购物车
				ShoppingCart.showCart();
				
				break;
			case 4://购物车结算
				Order.showPay();
				
				break;
			case 0:
				break;
			
		}
			for(int i=0;i<3;i++)
				System.out.println();
			if(num == 0)
				break;
		}
		
		Menu.end();
		sc.close();
		
	}

}

菜单类

package shopping;

public class Menu {
	public static void main() {
		System.out.println("请选择您要进行的操作编号:");

		System.out.println("(1)商品查询");
		System.out.println("(2)商品购买");
		System.out.println("(3)查看购物车");
		System.out.println("(4)购物车结算");
		System.out.println("(0)退出");
	}
	
	public static void end() {
		System.out.println(" -----------------------------------");
		System.out.println("          感谢您的使用,谢谢惠顾!        ");
		System.out.println(" -----------------------------------");
	}

	
}

结算类

package shopping;

public class Order {//结算
	public static void showPay() {//显示购物车中的商品
		double willPay = 0;
		System.out.println("");
		System.out.println("----------------------------------");
		System.out.println("商品编号"+"	"+"商品名"+"	"+"商品单价"+"	* "+"购买数量");
		System.out.println("----------------------------------");
		
		for(int i = 0;i < 10;i++) {
			if( ShoppingCart.payNum[i] != 0) {
				System.out.println(Goods.getGoodsID()[i]+"	"+Goods.getGoodsName()[i]+"	"+Goods.getGoodsPrice()[i]+"	4 "+ShoppingCart.payNum[i]);
			}
			willPay = willPay + (ShoppingCart.payNum[i] * Goods.getGoodsPrice()[i]);
		}
		System.out.println("----------------------------------");
		System.out.println("	实 际 应 付 :  "+String.format("%.2f", willPay));
		System.out.println("----------------------------------");
	}
}

购物车类

package shopping;

public class ShoppingCart {//查看购物车
public static int[] payNum = new int[100];//购买数量
	public static int addGoods(int needGoods,int needAddNum) {//增加商品
		
		for(int i = 0;i < 10;i++) {
			if(i == needGoods) {
				payNum[i] = needAddNum;
				System.out.println("商品编号"+"	"+"商品名"+"	"+"商品单价"+"	  "+"购买数量");
				System.out.println(Goods.getGoodsID()[i]+"	"+Goods.getGoodsName()[i]+"	"+Goods.getGoodsPrice()[i]+"	* "+ShoppingCart.payNum[i]);
				return 1;
			}
		}
		return 0;
	}
	
	public static void showCart() {//显示购物车
		double cartPay=0;//购物车商品总价
		System.out.println("———————————— 您的购物车 ————————————");
		System.out.print("商品编号"+"	"+"商品名"+"	"+"商品单价"+"	  "+"购买数量\r\n");
		
		for(int i = 0;i < 10;i++) {
			if( ShoppingCart.payNum[i] != 0) {
				System.out.println(Goods.getGoodsID()[i]+"	"+Goods.getGoodsName()[i]+"	"+Goods.getGoodsPrice()[i]+"	* "+ShoppingCart.payNum[i]);
			}
			cartPay = cartPay + (ShoppingCart.payNum[i] * Goods.getGoodsPrice()[i]);
		}
		System.out.println();
		System.out.println("您的账单估算 :  "+String.format("%.2f", cartPay));
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值