我是靠谱客的博主 听话鞋垫,最近开发中收集的这篇文章主要介绍Java面向对象案例——购物车需求:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

需求:

模拟购物车的功能,需要实现添加物品到购物车中去,同时需要提供修改商品的购买数量,结算商品价格功能。

分析:

1.购物车中每个商品都是一个对象,需要定义一个商品类

public class goods {
	int id;//编号
	String  name;//名称
	double price;//价格
	int buyNumber;//购买数量
}

2.购物车本身也是一个对象,可以用数组代表它。

我们先假设购物车的容量是100;
则定义数组 goods[] shopCar = new goods[100]

3.完成界面架构,让用户选择操作的功能

添加商品到购物车
	addGoods(shopCar,sc);
查询购物车中的商品
	queryGoods(shopCar);
修改商品的购买数量
	updateGoods(shopCar,sc);
结算购买商品的金额
	payGoods(shopCar);

实战代码

package oop;

import java.util.Scanner;

public class ShopCarTest {
	public static void main(String[] args)
	{
		//1.定义商品类,用于后期创建商品对象
		//2.定义购物车对象,使用一组数组对象表示。
		goods[] shopCar = new goods[100];
		//3.搭建操作建构
	while(true) {
		System.out.println("请您选择如下命令进行操作:");
		System.out.println("添加商品到购物车:add");
		System.out.println("查询购物车中的商品:query");
		System.out.println("修改商品购买数量:update");
		System.out.println("结算购买商品的金额:pay");
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入您的命令:");
		String command = sc.next();
		switch(command)
		{
			case "add":
				//添加商品到购物车
				addGoods(shopCar,sc);
				break;
			case "query":
				//查询购物车中的商品
				queryGoods(shopCar);
				break;
			case "update":
				//修改商品的购买数量
				updateGoods(shopCar,sc);
				break;
			case "pay":
				//结算购买商品的金额
				payGoods(shopCar);
				break;
			default:
				System.out.println("没有该项操作");
				break;			
		}
	}
}
	
	//完成商品添加到购物车的功能
	public static void addGoods(goods[] shopCar,Scanner sc)
	{
		//录入用户输入的商品信息
		System.out.println("请输入您要购买的商品编号(不重复)");
		int id = sc.nextInt();
		System.out.println("请输入您要购买的商品名称");
		String name = sc.next();
		System.out.println("请输入商品价格");
		double price = sc.nextDouble();
		System.out.println("请输入购买的商品数量");
		int buyNumber = sc.nextInt();
		
		//将商品信息封装成一个商品对象goods
		goods s = new goods();
		s.id = id;
		s.name = name;
		s.price = price;
		s.buyNumber = buyNumber;
		
		//将商品对象添加至购物车
		for(int i = 0; i < shopCar.length; i++)
		{
			if(shopCar[i]==null) 
				{//此位置无元素存入
					shopCar[i] = s;
					break;
				}
		}
		System.out.println("您的商品" + s.name +"添加至购物车完成了! ");
	}
	
	//查询购物车中的商品
	public static void queryGoods(goods[] shopCar)
	{
		System.out.println("===============查询购物车信息如下============");
		System.out.println("编号t名称tt价格tt数量");
		for(int i = 0 ; i < shopCar.length; i++)
		{
			goods s = shopCar[i];
			if(shopCar[i]!=null) 
			{
				//展示这个商品类型
				System.out.println(s.id + "t" + s.name +"tt" + s.price +"tt"+s.buyNumber);
			}
			else 
				break;
		}
	}
	
	public static void updateGoods(goods[] shopCar, Scanner sc)
	{
		while(true) {
		System.out.println("请输入您要更改的商品id");
		int id = sc.nextInt();
		goods s = getGoodsById(shopCar,id);//根据id查询出要修改的商品对象
		if(s == null){
			//没有商品
			System.out.println("对不起,没有购买商品!");
		}
		else {//说明存在对象可以进行修改
			System.out.println("请您输入"+s.name+"商品最新购买数量");
			int buyNumber = sc.nextInt();
			s.buyNumber = buyNumber;
			System.out.println("修改完成");
			queryGoods(shopCar);
			break;
		}
	  }
	}
	public static goods getGoodsById(goods shopCar[],int id)
	{
		for(int i = 0; i < shopCar.length; i++ )
		{
			goods s = shopCar[i];
			if(s != null)
			{//判断这个商品是否是我们要找的
				if(s.id == id)
					return s;
			}
			else 
				return null;//找完了所有的商品都没有找到
		}
		
		return null;//访问完了100个商品都未找到
	}
	//结算商品的购买金额
	public static void payGoods(goods[] shopCar)
	{
		queryGoods(shopCar);
		double money = 0;
		for(int i = 0; i <shopCar.length; i++)
		{
			goods s = shopCar[i];
			if(s != null) 
			{
				money += s.price *s.buyNumber ;
			}
			else 
				break;
		}
		System.out.println("所购买的商品总金额是:" + money);
	}
}

添加商品操作请添加图片描述

请添加图片描述

查询商品操作

请添加图片描述

更改商品数量操作

请添加图片描述

结算购买商品的金额

请添加图片描述

最后

以上就是听话鞋垫为你收集整理的Java面向对象案例——购物车需求:的全部内容,希望文章能够帮你解决Java面向对象案例——购物车需求:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部