1、javaban
package com.lwc.Good;
public class Goods {
// 一般都会给商品添加一个id信息,代表的是这个商品的一个编号
private String id; // 编号
private String image; // 商品图片
private String name; // 商品的名字
private String remark; // 备注信息
private double originalPrice;// 原价
private double price; // 售价
public Goods() {
}
public Goods(String id, String image, String name, String remark, double originalPrice, double price) {
this.id = id;
this.image = image;
this.name = name;
this.remark = remark;
this.originalPrice = originalPrice;
this.price = price;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public double getOriginalPrice() {
return originalPrice;
}
public void setOriginalPrice(double originalPrice) {
this.originalPrice = originalPrice;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
2、Test
package com.lwc.Good;
import java.util.ArrayList;
import java.util.Scanner;
public class GoodsSystem {
// 我们需要先创建一个集合,用于存放整个系统的商品信息
public static void main(String[] args) {
// 我们需要先创建一个集合,用于存放整个系统的商品信息
ArrayList<Goods> list = new ArrayList<>();
Goods goods1 =new Goods("001","1.jpg","麻辣龙虾","特辣",10,5);
Goods goods2 = new Goods("002", "2.jpg", "麻辣香锅", "特辣", 30, 15);
Goods goods3 = new Goods("003", "3.jpg", "麻婆豆腐", "特辣", 14, 7.5);
Goods goods4 = new Goods("004", "4.jpg", "极香烤翅", "特辣", 14, 7.5);
list.add(goods1);
list.add(goods2);
list.add(goods3);
list.add(goods4);
System.out.println("----------购物车-----------");
while (true) {
// 我们就需要搭建系统的功能
System.out.println("1. 上架商品信息 ");
System.out.println("2. 下架商品信息 ");
System.out.println("3. 修改商品信息 ");
System.out.println("4. 查看所有商品信息 ");
System.out.println("5. 搜索商品信息 ");
System.out.println("6. 退出系统 ");
System.out.println("请选择功能");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose) {
case "1":
addGoods(list);
break;
case "2":
removeGoods(list);
break;
case "3":
// System.out.println("修改商品信息...");
updateGoods(list);
break;
case "4":
findAllGoods(list);
break;
case "5":
// System.out.println("搜索商品信息...");
searchGoods(list);
break;
case "6":
System.out.println("谢谢使用,欢迎下次光临");
return;
default:
System.out.println("您输入的操作有误,请重新输入.");
break;
}
}
}
/*
* 这个函数是一个搜索商品的功能。首先判断商品列表是否为空,
* 如果为空则输出提示信息"暂无商品数据,请先添加后查询";
* 如果不为空,则通过输入的方式获取要搜索的商品名称。
* 然后调用findName函数来查找列表中是否有名称为该值的商品。
* 如果找到了,则按照规定的格式输出该商品的id、图片、名称、原价、
* 售价和备注信息;如果没有找到,则输出"没有搜索到该商品"*/
private static void searchGoods(ArrayList<Goods> list) {
if (list.size()==0){
System.out.println("暂无商品数据,请先添加后查询");
}else {
Scanner sc = new Scanner(System.in);
String name = sc.next();
if (findName(list,name)){//findName为true
System.out.println("id\t\t商品图片\t\t商品名字\t\t原价格\t\t售价\t\t备注信息");
for (int i = 0; i < list.size(); i++) {
Goods goods = list.get(i);
if (goods.getName().equals(name)) {
System.out.println(goods.getId() + "\t\t" + goods.getImage() + "\t\t" + goods.getName() + "\t\t"
+ goods.getOriginalPrice() + "元\t\t" + goods.getPrice() + "元\t" + goods.getRemark());
}
}
}else {//findNam为false
System.out.println("没有搜索到该商品");
}
}
}
/*
查看所有商品信息
1.我们可以先判断集合中是否有数据,如果没有数据就提示用户添加数据
2.先输出一个表头信息
3.遍历集合,把数据展示到控制台
*/
private static void findAllGoods(ArrayList<Goods> list) {
if (list.size() == 0) {
System.out.println("暂无数据,请先添加后查询");
} else {
System.out.println("id\t\t商品图片\t\t商品名字\t\t原价格\t\t售价\t\t备注信息");
for (int i = 0; i < list.size(); i++) {
Goods goods = list.get(i);
System.out.println(goods.getId() + "\t\t" + goods.getImage() + "\t\t" + goods.getName() + "\t\t"
+ goods.getOriginalPrice() + "元\t\t" + goods.getPrice() + "元\t" + goods.getRemark());
}
}
}
/*这个函数是一个用于更新商品信息的函数。首先,它会根据用户输入的id查找商品在列表中的位置。
如果找不到该id,函数会输出错误信息。如果找到了该商品,函数会进入一个循环,
在循环中根据用户输入的选择来更新商品的不同字段,包括图片、商品名称、原价、售价和备注信息。
当用户选择退出修改时,函数会返回。如果用户输入了无效的选项,
函数会输出错误信息并继续循环。最后,函数会输出修改成功的信息。*/
private static void updateGoods(ArrayList<Goods> list) {
System.out.println("请输入您要修改的商品id");
Scanner sc = new Scanner(System.in);
String id = sc.next();
//判断id是否存在
int index = findIndex(list, id);
if (index == -1) {
System.out.println("您输入的id不存在,请重新输入");
} else {
Goods goods = list.get(index);
while (true) {
System.out.println("请输入要修改的字段:1.修改图片 2.修改商品名字 " +
"3.修改原价 4.修改售价 5.修改备注信息 6.退出修改");
int type = sc.nextInt();
switch (type) {
case 1:
System.out.println("请输入新的图片");
String image = sc.next();
goods.setImage(image);
break;
case 2:
System.out.println("请输入新的商品名称");
String name = sc.next();
goods.setId(name);
break;
case 3:
System.out.println("请输入新的商品价格");
double originalPrice = sc.nextDouble();
goods.setOriginalPrice(originalPrice);
break;
case 4:
System.out.println("请输入新的售价");
double price = sc.nextDouble();
goods.setPrice(price);
break;
case 5:
System.out.println("请输入新的备注信息");
String remark = sc.next();
goods.setRemark(remark);
break;
case 6:
return;
default:
System.out.println("操作有误");
continue;
}
System.out.println("修改成功");
}
}
}
/*这个函数是一个用于下架商品的Java函数。它接收一个ArrayList类型的参数list,表示商品列表。
函数通过输入scanner获取用户输入的商品id,然后调用findIndex函数查找该商品在列表中的索引。
如果索引为-1,表示商品不存在,则输出错误信息;否则,从列表中删除该商品,并输出删除成功信息*/
private static void removeGoods(ArrayList<Goods> list) {
Scanner sc= new Scanner(System.in);
System.out.println("请输入你要下架的商品id");
String id = sc.next();
//先判断id是否存在
int index = findIndex(list, id);
if (index==-1){
System.out.println("您输入的id不存在,请重新输入");
}else {
list.remove(index);
System.out.println("删除商品成功");
}
}
/*
添加的话
1.一般都是录入商品信息
2.把商品信息封装到一个商品对象中
3.再把对象添加到集合中
这个函数是一个静态函数,用于将商品信息添加到一个ArrayList集合中。
函数通过输入方式获取商品的编号、图片、名称、备注、原价格和打折后的价格,
并将这些信息封装成一个Goods对象,然后将该对象添加到传入的ArrayList集合中。
最后打印出"添加商品成功"的信息
*/
private static void addGoods(ArrayList<Goods> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入商品的编号");
String id = sc.next();
System.out.println("请输入商品图片");
String image = sc.next();
System.out.println("请输入商品的名字");
String name = sc.next();
System.out.println("请输入备注信息");
String remark = sc.next();
System.out.println("请输入一个商品的原价格");
double originalPrice = sc.nextDouble();
System.out.println("请输入打折之后的价格");
double price = sc.nextDouble();
Goods goods = new Goods(id,image,name,remark,originalPrice,price);
list.add(goods);
System.out.println("添加商品成功");
}
/*
定义一个方法:
根据我们输入的商品id去查询对应的商品,如果找到就返回这个
商品的索引
*/
private static int findIndex(ArrayList<Goods> list,String id){
for (int i = 0; i < list.size(); i++) {
Goods goods = list.get(i);
if (goods.getId().equals(id)){
return i;
}
}
return -1;
}
//定义方法,根据商品名称去查询对应商品
private static boolean findName(ArrayList<Goods> list,String name){
for (int i = 0; i < list.size(); i++) {
Goods goods = list.get(i);
if (goods.getName().contains(name)) {
return true;
}
}
return false;
}
}