Java面向对象编程
1. 将商品封装成一个对象
2.采用switch语句分别实现操作
3.将主要功能分别在独立的函数中实现
添加商品到购物车:add
查询购物车:query
修改商品购物车:update
结算购物车金额:pay
商品属性
类:
Goods.java
package com.juyi.shop;
public class Goods {
//定义商品属性
int ID; //编号
String name; //名称
double price; //价格
int BuyNumber; //数量
}
在主程序中实现基本 增删查改
源码如下:
shopping.java
package com.juyi.shop;
import java.util.Scanner;
//购物车模拟实现
public class Shopping {
public static void main(String[] args) {
//定义商品类,后期创建商品对象 -在当前包下创建Goods类
//定义购物车对象:数组对象
Goods[] shopCar = new Goods[100]; //装100个商品对象 默认值为[null, null, null, ....]
//基本的增删查改
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);
String User_command = sc.next();
switch (User_command) {
case "add":
addGoods(shopCar, sc);
//添加商品
break;
case "query":
query(shopCar);
//查询购物车商品
break;
case "update":
update(shopCar, sc);
//更改商品信息
break;
case "pay":
pay(shopCar);
//结算金额
break;
default:
System.out.println("无此功能!");
break;
}
}
}
//结算购物车金额
public static void pay(Goods[] shopCar) {
double total_price = 0; //定义总价,初始值为零
for (int i = 0; i < shopCar.length; i++) {
if(shopCar[i] == null){
break;
}else{
Goods g = shopCar[i];
total_price += (g.price * g.BuyNumber);
}
}
System.out.println("您的购物车结算金额为:" + total_price);
}
//
public static void update(Goods[] shopCar, Scanner sc) {
//修改商品数量--让用户输入要修改的商品的ID,通过ID找出对应商品对象
System.out.println("请输入要修改的商品的ID:");
int ID = sc.nextInt();
Goods g = getGoods_ID(shopCar, ID);
while (true) { //在死循环里查找修改
if (g == null) {
//没有该商品
System.out.println("无此商品");
} else {
//说明存在该商品,下一步进行修改
System.out.println("请您输入:" + g.name + "的最新购买数量");
int BuyNumber = sc.nextInt();
g.BuyNumber = BuyNumber;
System.out.println("修改完成");
//在调用一下查询
query(shopCar);
}
}
}
public static Goods getGoods_ID(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;
}
public static void query(Goods[] shopCar) {
//查询购物车信息
System.out.println("\t--------------购物车信息如下--------------");
System.out.println("\t编号\t\t名称\t\t价格\t\t数量");
for (int i = 0; i < shopCar.length; i++) {
Goods g = shopCar[i];
if (g == null) {
//遍历结束
break;
} else {
//打印商品
System.out.println("\t" + g.ID + "\t\t" + g.name + "\t\t" + g.price + "\t\t" + g.BuyNumber);
}
}
}
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("请您输入购买商品的数量");
int BuyNumber = sc.nextInt();
System.out.println("请输入购买商品的价格");
double price = sc.nextDouble();
//将这些商品信息封装成一个商品对象
Goods g = new Goods();
g.ID = ID;
g.name = name;
g.BuyNumber = BuyNumber;
g.price = price;
//将商品对象添加到购物车数组中
for (int i = 0; i < shopCar.length; i++) {
if (shopCar[i] == null) {
//说明该位置没有元素,则存入
shopCar[i] = g;
break;
}
}
System.out.println("您的商品:" + g.name + "已添加到购物车");
}
}