Java:购物综合案例,收银系统,查看所有顾客,所有商品 ,用户购买商品 ,单个顾客信息

/*购物综合案例:
收银系统:功能1.查看所有顾客 2.查看所有商品 3.用户购买商品 4.查看单个顾客信息(含常见错误分析讲解图片)*/






package a;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
//顾客类:
class guke {
HashSet<shangpin> h = new HashSet<shangpin>();// 是顾客的商品列表
int yonghudeID;
String yonghuname;
// 在构造方法中对顾客的属性进行赋值,商品不能赋值,因为还没有买商品:
public guke(int iD, String name) {
yonghudeID = iD;
this.yonghuname = name;
}
// 购买商品的方法:
public void mai(int shurudeshangpinbianhao) {
h.add(lizi.shangpinshuzu.get(shurudeshangpinbianhao - 1));
}
//
@Override
public String toString() {
return "用户的ID:" + yonghudeID + ", 用户的名字:" + yonghuname;
}
}
public class lizi {
// 顾客的集合:
static ArrayList<guke> gukeshuzu = new ArrayList<guke>();
// 定义商品集合:
static ArrayList<shangpin> shangpinshuzu = new ArrayList<shangpin>();
public static void main(String[] args) {
gukeshuzu.add(new guke(1, "张三"));
gukeshuzu.add(new guke(2, "李四"));
gukeshuzu.add(new guke(3, "王五"));
shangpinshuzu.add(new shangpin(1, "苹果", 3.5));
shangpinshuzu.add(new shangpin(2, "香蕉", 2.5));
shangpinshuzu.add(new shangpin(3, "橘子", 4.5));
shangpinshuzu.add(new shangpin(4, "巧克力", 5.5));
shangpinshuzu.add(new shangpin(5, "果汁", 6.5));
System.out.println("-------诗书画唱收银系统--------");
while (true) {
System.out.println("请选择你要执行的功能:1.查看所有顾客 2.查看所有商品 "
+ "3.用户购买商品 4.查询单个顾客的购买信息");
Scanner s = new Scanner(System.in);
int num = s.nextInt();
if (num == 1) {
// 查询所有顾客:
for (int i = 0; i < gukeshuzu.size(); i++) {
System.out.println(gukeshuzu.get(i));
}
} else if (num == 2) {
// 查询所有商品:
Iterator i = shangpinshuzu.iterator();
while (i.hasNext()) {
shangpin sh = (shangpin) i.next();
sh.say();
}
} else if (num == 3) {
// 购物:
System.out.println("请输入用户的编号");
int shurudeyonghubianhao = s.nextInt();
for (int i = 0; i < gukeshuzu.size(); i++) {
if (shurudeyonghubianhao == gukeshuzu.get(i).yonghudeID) {
while (true) {
System.out.println(gukeshuzu.get(i).yonghuname
+ ",请选择你要购买的商品的编号");
int shurudeshangpinbianhao = s.nextInt();
gukeshuzu.get(i).mai(shurudeshangpinbianhao);
// mai(shurudeshangpinbianhao)是定义买的方法进行购买商品
System.out.println("购买成功,是否继续购买?1.继续 2.不买了");
int sss = s.nextInt();
if (sss == 2) {
break;
}
}
}
}
} else if (num == 4) {
// 查询用户的商品:
// 查询所有顾客:
System.out.println("请输入你要查询的顾客的编号");
int biaohao = s.nextInt();
for (int i = 0; i < gukeshuzu.size(); i++) {
if (gukeshuzu.get(i).yonghudeID == biaohao) {
if (gukeshuzu.get(i).h.isEmpty()) {
System.out.println("你还没有购买商品");
} else {
Iterator j = gukeshuzu.get(i).h.iterator();
while (j.hasNext()) {
shangpin w = (shangpin) j.next();
w.say();
}
}
}
}
}
}
}
}
// 商品类
class shangpin {
int bianhao;
String name;
double price;
// 构造方法中对其赋值:
public shangpin(int bianhao, String name, double price) {
this.bianhao = bianhao;
this.name = name;
this.price = price;
}
// 商品介绍:
public void say() {
System.out.println("编号:" + this.bianhao +
"\t名称:" + this.name + "\t价格"
+ this.price);
}
}







