购物车案例
终于学到面向对象了。前两天有事没有学习!!
黑马的java入门课程
https://www.bilibili.com/video/BV1Cv411372m?p=74&vd_source=4d11f60b487dc1b2857569561e852aaa
p73
有兴趣的,大家自己去看视频。我跟着视频把代码敲下来了
结构的话并不难,相比于经典的数据结构算法还是要简单许多的。
Goods类
package Demo;
public class Goods {
int id;//编号
String name;//名称
double price;//价格
int buyNumber;//购买数量
}
主程序
package Demo;
import java.util.Scanner;
public class ShopCarText {
public static void main(String[] args) {
//1,定义商品类,用于后期创建商品对象
//2定义购物车对象,使用一个数组对象表示
Goods[] shopcar=new Goods[100];
//搭建操作架构
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":
//查询商品到购物车
query(shopcar);
break;
case "update":
//修改商品购买数量
updataGoods(shopcar,sc);
break;
case "pay":
//结算购买的商品
pay(shopcar);
break;
default:
System.out.println("没有该功能");
}
}
}
private static void pay(Goods[] shopcar) {
query(shopcar);
//1,定义一个求和变量
double money=0;
//遍历购物车数组,单价*数量
for (int i = 0; i < shopcar.length; i++) {
Goods g=shopcar[i];
if(g!=null){
money+=g.buyNumber*g.price;
}else{
break;
}
}
System.out.println("订单总金额:"+money);
}
public static Goods getGoodsById(Goods[] shopcar,int id) {
for (int i = 0; i < shopcar.length; i++) {
Goods g=shopcar[i];
if(g!=null){
//判断这个商品对象是否是我们要找的
if(g.id==id) return g;
}else{
return null;
}
}
return null;
}
private static void updataGoods(Goods[] shopcar,Scanner sc){
//让用户输入修改商品id,根据id查询出要修改的商品对象
while (true) {
System.out.println("请你输入要修改的商品id:");
int id=sc.nextInt();
Goods g=getGoodsById(shopcar,id);
if(g==null){
System.out.println("没有该商品");
}else{
System.out.println("请你输入:"+g.name+"商品购买数量");
int buynumber= sc.nextInt();
g.buyNumber=buynumber;
System.out.println("修改完成");
query(shopcar);
break;
}
}
}
//查询购物车中的商品对象信息,并展示出来
private static void query(Goods[] shopcar) {
System.out.println("=========查询===========");
System.out.println("编号\t\t名称\t\t价格\t\t购买数量");
//shopcar=[g1,g2,g3,null,null.....]
for (int i = 0; i < shopcar.length; i++) {
Goods g=shopcar[i];
if(g!=null){
System.out.println(g.id+"\t\t"+g.name+"\t\t"+g.price+"\t\t"+g.buyNumber);
}else{
break;
}
}
}
//完成商品添加到购物车的功能
private static void addGoods(Goods[] shopcar,Scanner sc) {
System.out.println("请你输入购买商品的编号:");
int id=sc.nextInt();
System.out.println("请你输入购买商品的名称:");
String name=sc.next();
System.out.println("请你输入商品数量:");
int buyNumber= sc.nextInt();
System.out.println("请你输入购买商品的价格:");
double price=sc.nextDouble();
//2,把这个购买信息封装成一个商品对象
Goods g=new Goods();
g.id=id;
g.name=name;
g.buyNumber=buyNumber;
g.price=price;
//3,把这个商品对下添加到购物车数组中去
for (int i = 0; i < shopcar.length; i++) {
if(shopcar[i]==null){
shopcar[i]=g;
break;
}
}
System.out.println("你的商品:"+g.name+"添加完成");
}
}