//商品类
public class Goods {
private String code;
private String name;
private double price;
public Goods() {
}
public Goods(String code, String name, double price) {
this.code = code;
this.name = name;
this.price = price;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
//--------------购物车类
public class ShoppingCart extends Goods{
int count;//数量
double totalprice; //小计
public ShoppingCart() {
}
public ShoppingCart(String code, String name, double price, int count, double totalprice) {
super(code, name, price);
this.count = count;
this.totalprice = totalprice;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public double getTotalprice() {
return totalprice;
}
public void setTotalprice(int totalprice) {
this.totalprice = totalprice;
}
}
----------------购物项类
public class Item {
private Goods goods ;//商品
private int amount;
private double subtotal;//当前购物项小计
public Goods getGoods() {
return goods;
}
public void setGoods(Goods goods) {
this.goods = goods;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public double getSubtotal() {
return subtotal;
}
public void setSubtotal(double subtotal) {
this.subtotal = subtotal;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Item item = (Item) o;
return amount == item.amount && Double.compare(item.subtotal, subtotal) == 0 && goods.equals(item.goods);
}
@Override
public int hashCode() {
return Objects.hash(goods, amount, subtotal);
}
}
-------------------------测试类
public class Supermarket {
static ArrayList<Goods> goods = new ArrayList<>();
static ArrayList<User> users = new ArrayList<>();
static ArrayList<ShoppingCart> car = new ArrayList<>();
static boolean loginstatus = false;
public static void main(String[] args) {
goods.add(new Goods("9001", "核桃1", 11));
goods.add(new Goods("9002", "核桃2", 22));
goods.add(new Goods("9003", "核桃3", 33));
System.out.println("=======================欢迎光临=======================");
System.out.println("1:货物清单 2:添加商品 3:删除商品 4:修改商品 5:用户注册 6.显示用户 7.用户登录 8.添加购物车 10.显示购物车 9:退出系统");
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入您要操作的功能序号");
int num = sc.nextInt();
/* if(loginstatus==false){
login();
}*/
if (!loginstatus && (num == 1 || num == 2 || num == 3 || num == 4 || num == 6 || num == 9 || num == 8 || num == 10)) {
System.out.println("进行此操作需要先登录");
login();
}
if (loginstatus) {
if (num == 1) {
show();
} else if (num == 2) {
addGoods();
} else if (num == 3) {
delete();
} else if (num == 4) {
update();
} else if (num == 6) {
showUser();
} else if (num == 9) {
exit();
} else if (num == 8) {
addCar();
} else if (num == 10) {
showcar();
}
} else {
if (num == 7) {
login();
} else if (num == 5) {
register();
}
}
}
}
public static void show() {
System.out.println("=======================商品库存清单=======================");
System.out.println("商品编号 商品名称 商品单价 ");
for (int i = 0; i < goods.size(); i++) {
Goods g = goods.get(i);
if (g != null) {
System.out.println(g.getCode() + " " + g.getName() + " " + g.getPrice());
}
}
}
public static void addGoods() {
System.out.println("=======================添加新货物=======================");
Scanner sc = new Scanner(System.in);
System.out.println("请输入添加的货品编号");
String code = sc.next();
System.out.println("请输入添加的货品名称");
String name = sc.next();
System.out.println("请输入添加的货品价格");
Double price = sc.nextDouble();
Goods g = new Goods(code, name, price);
goods.add(g);
}
public static void delete() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要删除的商品编号");
String code = sc.next();
//找到要删除的商品 方法:通过循环
//循环出来的是一个一个的Goods类型的数据
//通过循环出来的对象,获得当前该商品的编号
//判断该编号是否和需要删除的商品编号相同 相等则说明找到了
for (int i = 0; i < goods.size(); i++) {
boolean flag = false;
Goods g = goods.get(i);
if (g != null && g.getCode().equals(code)) {
flag = true;
}
if (g != null && flag) {
goods.remove(i);
}
}
}
public static void update() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的商品编号");
String code = sc.next();
boolean flag = true;
for (int i = 0; i < goods.size(); i++) {
Goods g = goods.get(i);
if (g.getCode().equals(code)) {
System.out.println("请输入要修改的商品名称");
String name = sc.next();
System.out.println("请输入要修改的商品单价");
double price = sc.nextDouble();
g.setName(name);
g.setPrice(price);
flag = true;
break;
}
if (flag) {
System.out.println("修改成功");
} else {
System.out.println("修改失败");
}
}
}
public static void exit() {
System.exit(0);
}
public static void register() {
System.out.println("====================用户信息注册===================");
System.out.println("请输入用户名");
Scanner sc = new Scanner(System.in);
String uname = sc.next();
System.out.println("请输入密码");
String password = sc.next();
User user = new User();
user.setUname(uname);
user.setPassword(password);
users.add(user);
System.out.println("注册成功");
}
public static void showUser() {
System.out.println("=======================用户信息展示=================");
System.out.println("用户名 密码");
for (int i = 0; i < users.size(); i++) {
User u = users.get(i);
System.out.println(u.getUname() + " " + u.getPassword());
}
}
public static void login() {
boolean flag = false;
System.out.println("=======================用户登录=================");
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String uname = sc.next();
System.out.println("请输入密码");
String password = sc.next();
for (int i = 0; i < users.size(); i++) {
User u = users.get(i);
if (u != null && u.getPassword().equals(password) && u.getUname().equals(uname)) {
flag = true;
break;
}
}
if (flag) {
System.err.println("登录成功");
} else {
System.err.println("登录失败");
}
loginstatus = flag;
}
public static ShoppingCart shengcheng(String code, int count) {
ShoppingCart a = null;
for (int i = 0; i < goods.size(); i++) {
if (code.equals(goods.get(i).getCode())) {
Goods g = goods.get(i);
a = new ShoppingCart(g.getCode(), g.getName(), g.getPrice(), count, 5 * g.getPrice());
}
}
return a;
}
public static void addCar() {
// public ShoppingCart(String code, String name, double price, int count, int totalprice)
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要买的货品编号");
String code = sc.next();
System.out.println("请输入您要买的货品数量");
int count = sc.nextInt();
for (int i = 0; i < goods.size(); i++) {
if (code.equals(goods.get(i).getCode())) {
car.add(shengcheng(code, count));
System.out.println("添加成功");
break;
} else {
System.out.println("找不到此编号的商品,添加失败");
break;
}
}
}
public static void showcar() {
for (int i = 0; i < car.size(); i++) {
System.out.println("编号\t" + "名称\t" + "单价\t" + "数量\t" + "小计");
System.out.println(car.get(i).getCode() + "\t" + car.get(i).getName() + "\t" + car.get(i).getPrice() + "\t" + car.get(i).getCount() + "\t" + car.get(i).getTotalprice());
}
}
}