概述
需求:
模拟购物车的功能,需要实现添加物品到购物车中去,同时需要提供修改商品的购买数量,结算商品价格功能。
分析:
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面向对象案例——购物车需求:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复