文章目录
- 首先声明一点,java这门语言其实博主是个小白,有很多小细节没考虑进去,大家有需要的私下各自完善一下,还请各位大佬多多谅解,谢谢,祝大家取得好成绩,冲冲冲,加油!!!
- 第一步:
- 第二步:
- 第三步:
- 第四步:
- 第五步:
- 第六步:
- 第七步:
- 第八步:
- 第九步:
首先声明一点,java这门语言其实博主是个小白,有很多小细节没考虑进去,大家有需要的私下各自完善一下,还请各位大佬多多谅解,谢谢,祝大家取得好成绩,冲冲冲,加油!!!
题目:
1)选择登陆要求输入用户名密码和验证码,输入错误要求给出相应的提示信息
2)选择注册要求输入用户名,密码,确认密码,验证码(4位)
如果两次密码不一致,或者验证码不正确都将导致注册失败,给出提示信息
如果用户名已被使用,则该用户注册失败,也应给与相应的提示信息
3)登录成功进入主菜单,呈现如下:
1.热门商品
2.商品查询
3.后台管理
4)选择热门商品将呈现销量最高的10件商品的序号(从1开始显示的序列)、商品名称、销量
用户选择序号后可以查看该商品的详细信息(商品名称、品牌、价格、类型)
5)选择商品查询可以显示以下菜单:
1.品牌查询
2.价格查询
6)选择品牌查询,可以输入品牌名称,显示该品牌的所有商品(序号、名称、品牌),选择序号可以查看详细信息,参考4)
7)选择价格查询,可以输入价格区间,显示该价格范围内的所有商品(序号、名称、价格),选择序号可以查看详细信息,参考4)
8)选择后台管理,显示以下菜单:
1.新增商品
2.修改价格
3.删除商品
9)选择新增商品,需要输入商品名称、价格、品牌、类型,该商品将保存至系统
10)选择修改价格,呈现所有商品的品牌(序号、品牌名称),选择序号后呈现该品牌下所有商品信息(序号、商品名称、价格),输入新的价格,提示用户是否需要保存该价格
11)选择删除商品,呈现所有商品的品牌(序号、品牌名称),选择序号后呈现该品牌下所有商品信息(序号、商品名称),选择序号后提示是否删除,确认后删除
12)所有菜单以及选项可以按0返回上一层
第一步:
package com.igeek.dao;
import com.igeek.data.Database;
import com.igeek.pojo.Brand;
import com.igeek.pojo.Goods;
import java.util.ArrayList;
import java.util.List;
package com.igeek.dao;
import com.igeek.data.Database;
import com.igeek.pojo.Brand;
import com.igeek.pojo.Goods;
import java.util.ArrayList;
import java.util.List;
public class BrandDao {
Database dataBaseOne;
List<Goods>goodsListTwo;
public BrandDao(Database dataBaseOne) {
this.dataBaseOne = dataBaseOne;
}
/**
* 根据品牌名称查询
* @param brandName
* @return
*/
public List<Goods> findByName(int brandName){
Goods goods=null;
goodsListTwo=new ArrayList<>();
List<Goods>goodsListOne=dataBaseOne.getGoods();
for(int i=0;i<goodsListOne.size();i++){
goods=goodsListOne.get(i);
if(goods.getBrandNumber()==brandName){
goodsListTwo.add(goods);
}
}
return goodsListTwo;
}
public Brand findByID(int number){
Brand brand=null;
List <Brand> list1=dataBaseOne.getBrand();
for(int i=0;i<list1.size();i++)
{
if(list1.get(i).getBrandNumber()==number)
{
brand=list1.get(i);
break;
}
}
return brand;
}
/**
* 查询所有品牌
* @return
*/
public List<Brand> findAll(){
List<Brand>brandListOne=new ArrayList<>();
List<Goods>goodsListOne=dataBaseOne.getGoods();
for(int i=0;i<goodsListOne.size();i++){
if(reapeat(brandListOne,goodsListOne.get(i))==true){
Goods goods=goodsListOne.get(i);
String name = idChangeName(goods.getBrandNumber());
Brand brand=new Brand(i+1,name);
brandListOne.add(brand);
}
}
return brandListOne;
}
public boolean reapeat(List<Brand>list,Goods goods){
boolean a=true;
for(int i=0;i<list.size();i++){
if(list.get(i).getBrandNumber()==goods.getBrandNumber()){
a=false;
}
}
return a;
}
public int nameChangeID(String name){
int n=0;
for(int i=0;i<dataBaseOne.getBrand().size();i++)
{
if(name.equals(dataBaseOne.getBrand().get(i).getName()))
{
n=i+1;
}
}
return n;
}
public String idChangeName(int ID){
String name=null;
for(int i=0;i<dataBaseOne.getBrand().size();i++)
{
if(ID==dataBaseOne.getBrand().get(i).getBrandNumber())
{
name=dataBaseOne.getBrand().get(i).getName();
}
}
return name;
}
}
第二步:
package com.igeek.dao;
import com.igeek.data.Database;
import com.igeek.pojo.Goods;
import java.util.ArrayList;
import java.util.List;
public class GoodsDao {
Database dataBaseOne;
List<Goods> goods=new ArrayList<>();
List<Goods> goodsList = new ArrayList<>();
public GoodsDao(Database database1) {
this.dataBaseOne = database1;
}
/**
* 查找销量前10的商品
*
* @return
*/
public List<Goods> findHotGoods() {
List<Goods> goods2 = dataBaseOne.getGoods();
for(int i=0;i<goods2.size()-1;i++){
for(int j=0;j<goods2.size()-1-i;j++){
Goods goods=new Goods();
if(goods2.get(j).getConsume()<goods2.get(j+1).getConsume()){
goods=goods2.get(j);
goods2.set(j, goods2.get(j+1));
goods2.set(j+1, goods);
}
}
}
return goods2;
}
/**
* 根据品牌编号查询商品
*
* @param brandId
* @return
*/
public List<Goods> findByBrandId(int brandId) {
Goods goods3 = null;
List<Goods> goodsList1 = dataBaseOne.getGoods();
for (int i = 0; i < goodsList1.size(); i++) {
goods3 = goodsList1.get(i);
if (brandId == goods3.getBrandNumber()) {
goods.add(goods3);
}
}
return goods;
}
/**
* 根据价格范围查询商品
*
* @param minPrice
* @param maxPrice
* @return
*/
public List<Goods> findByPrice(int minPrice, int maxPrice) {
Goods goods1 = null;
List<Goods> goodsList1 = dataBaseOne.getGoods();
for (int i = 0; i < goodsList1.size(); i++)
{
goods1 = goodsList1.get(i);
if (goods1.getPrice() > minPrice && goods1.getPrice() < maxPrice) {
goodsList.add(goods1);
}
}
return goodsList;
}
/**
* 新增商品
*
* @param goods
*/
public void insert(Goods goods) {
dataBaseOne.getGoods().add(goods);
}
/**
* 修改价格
*
* @param goodsId
* @param price
*/
public void modify(int goodsId, double price) {
List<Goods> goodsList1 = dataBaseOne.getGoods();
for (int i = 0; i < dataBaseOne.getGoods().size(); i++) {
Goods goods1 = goodsList1.get(i);
if (goods1.getGoodID() == goodsId) {
goods1.setPrice(price);
}
}
}
/**
* 删除商品
*
* @param goodsId
*/
public void delete(int goodsId) {
List<Goods> goodsList = dataBaseOne.getGoods();
for (int i = 0; i < dataBaseOne.getGoods().size(); i++) {
Goods goods = goodsList.get(i);
if(goods.getGoodID() == goodsId){
goodsList.remove(goods.getBrandNumber()-1);
}
}
}
public void addDatabase(String name,int price,int brandNumber,String type)
{
Goods goods=new Goods(name,price,brandNumber,type);
goods.setGoodID(dataBaseOne.getGoods().size()+1);
goods.setBrandNumber(1);
dataBaseOne.getGoods().add(goods);
}
public List<Goods> findAllGoods(){
List<Goods> list=dataBaseOne.getGoods();
return list;
}
public Goods findByFoodID(int number){
Goods goodsOne=null;
for (int i = 0; i < dataBaseOne.getGoods().size(); i++) {
if(number==dataBaseOne.getGoods().get(i).getGoodID())
{
goodsOne=dataBaseOne.getGoods().get(i);
break;
}
}
return goodsOne;
}
}
第三步:
package com.igeek.dao;
import com.igeek.data.Database;
import com.igeek.pojo.User;
public class UserDao {
Database dataBaseOne;
public UserDao(Database databaseOne) {
this.dataBaseOne = databaseOne;
}
/**
* 根据用户名查找用户
* @param userName
* @return
*/
public User findByName(String userName){
User user =null;
for (User users:dataBaseOne.getUser()) {
if((users.getUser()).equals(userName))
{ user=users;
break;
}
}
return user;
}
/**
* 新增用户
* @param user
*/
public void inSert(User user){
dataBaseOne.getUser().add(user);
}
}
第四步:
package com.igeek.pojo;
/**
* 品牌
*/
public class Brand {
//品牌编号
private int brandnumber;
//品牌名称
private String name;
public Brand(int brandnumber, String name) {
this.brandnumber = brandnumber;
this.name = name;
}
public int getBrandnumber() {
return brandnumber;
}
public void setBrandnumber(int brandnumber) {
this.brandnumber = brandnumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
第五步:
package com.igeek.pojo;
/**
* 商品类
*/
package com.igeek.pojo;
/**
* 商品类
*/
public class Goods {
public Goods(int goodsNumber) {
this.goodsID = goodsNumber;
}
//商品编号
private int goodsID;
//名称
private String name;
//价格
private double price;
//销量
private int consume;
public Goods() {
}
//品牌编号
private int brandNumber;
//类型
private String type;
public Goods(String name, double price, int brandNumber, String type) {
goodsID=goodsID+1;
this.name = name;
this.price = price;
this.brandNumber = brandNumber;
this.type = type;
}
public Goods(int goodsNumber, String name, int price, int consume, int brandNumber, String type) {
this.goodsID = goodsNumber;
this.name = name;
this.price = price;
this.consume = consume;
this.brandNumber = brandNumber;
this.type = type;
}
public int getGoodID() {
return goodsID;
}
public void setGoodID(int goodsNumber) {
this.goodsID = goodsNumber;
}
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 int getConsume() {
return consume;
}
public void setConsume(int consume) {
this.consume = consume;
}
public int getBrandNumber() {
return brandNumber;
}
public void setBrandNumber(int brandNumber) {
this.brandNumber = brandNumber;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
第六步:
package com.igeek.pojo;
/**
* 用户类
*/
public class User {
//用户名
String user;
//密码
String password;
public void setUserID(int userID) {
this.userID = userID;
}
//ID
int userID;
public User(String user, String password, int userID) {
this.user = user;
this.password = password;
this.userID = userID;
}
public User(String user, String password) {
this.user = user;
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
第七步:
package com.igeek.data;
import com.igeek.pojo.Brand;
import com.igeek.pojo.Goods;
import com.igeek.pojo.User;
import java.util.ArrayList;
import java.util.List;
public class Database {
//存储所有的用户信息
List<User> user=new ArrayList<>();
//存储所有的商品信息
List<Goods> goods=new ArrayList<>();
//存储所有的品牌信息
List<Brand> brand=new ArrayList<>();
public List<User> getUser() {
return user;
}
public void setUser(List<User> user) {
this.user = user;
}
public List<Goods> getGoods() {
return goods;
}
public void setGoods(List<Goods> goods) {
this.goods = goods;
}
public List<Brand> getBrand() {
return brand;
}
public void setBrand(List<Brand> brand) {
this.brand = brand;
}
public Database() {
User a=new User("艾某","123",01);
User b=new User("丘比特","456",02);
Goods good1=new Goods(1,"苹果",20,30,1,"水果");
Goods good2=new Goods(2,"火龙果",30,40,1,"水果");
Goods good3=new Goods(3,"香蕉",30,50,1,"水果");
Goods good4=new Goods(4,"梨",30,60,1,"水果");
Goods good5=new Goods(5,"玩具车",700,70,2,"玩具");
Goods good6=new Goods(6,"玩具小飞机",550,55,2,"玩具");
Goods good7=new Goods(7,"坦克",500,90,2,"玩具");
Goods good8=new Goods(8,"华硕笔记本",5001,50,3,"电子产品");
Goods good9=new Goods(9,"惠普笔记本",5000,49,3,"电子产品");
Goods good10=new Goods(10,"华为 p30",3000,30,3,"电子产品");
Goods good11=new Goods(11,"华为 p40",4000,35,3,"电子产品");
Brand brand1=new Brand(1,"水果系列");
Brand brand2=new Brand(2,"玩具系列");
Brand brand3=new Brand(3,"电子产品系列");
//初始化用户信息
user.add(a);
user.add(b);
//初始化品牌信息
goods.add(good1);
goods.add(good2);
goods.add(good3);
goods.add(good4);
goods.add(good5);
goods.add(good6);
goods.add(good7);
goods.add(good8);
goods.add(good9);
goods.add(good10);
goods.add(good11);
//初始化商品信息
brand.add(brand1);
brand.add(brand2);
brand.add(brand3);
}
}
第八步:
package com.igeek.service;
import com.igeek.dao.BrandDao;
import com.igeek.dao.GoodsDao;
import com.igeek.dao.UserDao;
import com.igeek.data.Database;
import com.igeek.pojo.Brand;
import com.igeek.pojo.Goods;
import com.igeek.pojo.User;
import java.awt.*;
import java.util.*;
import java.util.List;
/**
* 商品管理系统
*/
public class GoodsService {
private BrandDao brandDao;
private UserDao userDao;
private GoodsDao goodsDao;
public GoodsService(Database dataBaseOne) {
this.brandDao = new BrandDao(dataBaseOne);
this.userDao = new UserDao(dataBaseOne);
this.goodsDao = new GoodsDao(dataBaseOne);
start();
}
private int userID = 100;
Scanner scanners = new Scanner(System.in);
/**
* 构造方法
*
* @param database
*/
/**
* 起始菜单
*/
public void start() {
System.out.println("1. 登录");
System.out.println("2. 注册");
System.out.println("3. 退出系统");
int choices = scanners.nextInt();
switch (choices) {
case 1:
login();
mainMenu();
break;
case 2:
regist();
start();
break;
default:
System.exit(0);
}
}
/**
* 登陆
*/
public void login(){
System.out.println("请输入用户名:");
String userName = scanners.next();
System.out.println("请输入密码:");
String password = scanners.next();
Random random=new Random(); //创建随机数生成器
String str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder sb=new StringBuilder(4);
for(int i=0;i<4;i++)
{
char ch=str.charAt(new Random().nextInt(str.length()));
sb.append(ch);
}
System.out.println(sb.toString());
System.out.println("请输入验证码:");
String verification=scanners.next();
//通过DAO根据用户名查询数据库中对象
User user = userDao.findByName(userName);
//判断用户是否存在
if(user != null){
//将数据库中找到的账户,再根据其密码和输入的密码比较
if(user.getPassword().equals(password)&&verification.equals(sb.toString())){
System.out.println("登录成功!");
mainMenu();
}else if(!(user.getPassword().equals(password))){
System.out.println("密码错误!");
login();
}else if(!(verification.equals(sb.toString()))){
System.out.println("验证码错误!");
login();
}
}else{
System.out.println("用户名不存在!请重新输入");
login();
}
}
/**
* 注册
*/
public void regist() {
System.out.println("请输入注册的用户名:");
String userName = scanners.next();
System.out.println("请输入注册的密码:");
String password = scanners.next();
System.out.println("请再次输入密码:");
String passWord = scanners.next();
if (passWord.equals(password)) {
Random random = new Random(); //创建随机数生成器
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder sb = new StringBuilder(4);
for (int i = 0; i < 4; i++) {
char ch = str.charAt(random.nextInt(str.length()));
sb.append(ch);
}
System.out.println(sb.toString());
System.out.println("请输入验证码:");
String verification = scanners.next();
//判断用户名是否被注册
User user = userDao.findByName(userName);
if (user != null) {
System.out.println("该用户名已被注册!输入0返回上一层菜单,其他任意键继续注册");
String result = scanners.next();
if (result.equals("0")) {
start();
} else {
regist();
}
} else {
System.out.println("您已注册成功!");
//根据注册的信息创建一个账户对象
User registUser = new User(userName, password);
registUser.setUser(userName);
registUser.setPassword(password);
//将注册的信息写入数据库
userDao.inSert(registUser);
//返回起始菜单
start();
}
}else{
System.out.println("两次密码不一样,请重新注册");
regist();
}
}
/**
* 主菜单
*/
public void mainMenu() {
//显示热门商品、商品查询、商品管理
System.out.println("1.热门商品");
System.out.println("2.商品查询");
System.out.println("3.后台管理");
String input = scanners.next();
do {
if (input.equals("0"))
start();
switch (input) {
case "1":
hotGoods();
System.out.println("待输入");
if (scanners.nextInt() == 0)
mainMenu();
break;
case "2":
search();
System.out.println("待输入");
if (scanners.nextInt() == 0)
mainMenu();
break;
case "3":
goodsManage();
System.out.println("待输入");
if (scanners.nextInt() == 0)
mainMenu();
break;
default:
if (scanners.nextInt() == 0)
start();
else {
System.out.println("输入有误");
mainMenu();
}
}
} while(!input.equals("0")&&!input.equals("3"));
}
/**
* 热门商品
*/
public void hotGoods() {
List<Goods> list = goodsDao.findHotGoods();
for (int i = 0; i < 10; i++) {
System.out.println("商品序号:" + (i + 1) +
" 商品名称:" + list.get(i).getName() +
" 商品销量:" + list.get(i).getConsume());
}
System.out.println("选择序号可以查看详细信息:");
int input = scanners.nextInt();
if (0 < input && input <= 10) {
detailedInformation(list, input);
}
}
/**
* 商品查询
*/
public void search() {
System.out.println("1.品牌查询");
System.out.println("2.价格查询");
int input = scanners.nextInt();
if(input==0)
mainMenu();
switch (input) {
case 1:
brandSearch();
System.out.println("待输入");
if(scanners.nextInt()==0)
search();
break;
case 2:
priceSearch();
System.out.println("待输入");
if(scanners.nextInt()==0)
mainMenu();
break;
default:
System.out.println("输入错误");
System.out.println("待输入");
if(scanners.nextInt()==0)
mainMenu();
}
//显示查询菜单
}
/**
* 品牌查询
*/
public void brandSearch() {
System.out.println("请输入要查询的品牌:");
String input = scanners.next();
int brand=brandDao.nameChangeID(input);
List<Goods> list1 = brandDao.findByName(brand);
if (list1.size() == 0) {
System.out.println("无法操作,序列为空");
}
else
{
for (int i = 0; i < list1.size(); i++) {
System.out.println("商品序号:" + (i + 1) +
" 商品名称:" + list1.get(i).getName() +
" 商品销量:" + list1.get(i).getConsume());
}
System.out.println("选择序号可以查看详细信息:");
int input2 = scanners.nextInt();
detailedInformation(list1, input2);
}
}
/**
* 价格查询
*/
public void priceSearch() {
System.out.println("请输入价格范围:(最小范围,最大范围)");
int min = scanners.nextInt();
int max = scanners.nextInt();
List<Goods> goods = goodsDao.findByPrice(min, max);
if (goods.size() == 0) {
System.out.println("无法操作,序列为空");
}
else {
for (int i = 0; i < goods.size(); i++) {
System.out.println("商品序号:" + (i + 1) +
" 商品名称:" + goods.get(i).getName() +
" 商品销量:" + goods.get(i).getConsume()); }
System.out.println("选择序号可以查看详细信息:");
int input2 = scanners.nextInt();
detailedInformation(goods, input2);
}
}
/**
* 商品管理
*/
public void goodsManage() {
System.out.println("1.新增商品:");
System.out.println("2.修改价格:");
System.out.println("3.删除商品:");
int input2 = scanners.nextInt();
switch (input2) {
case 1:
addGoods();
System.out.println("待输入:");
if(scanners.nextInt()==0)
goodsManage();
break;
case 2:
modifyPrice();
System.out.println("待输入:");
if(scanners.nextInt()==0)
goodsManage();
break;
case 3:
deleteGoods();
System.out.println("待输入:");
if(scanners.nextInt()==0)
goodsManage();
break;
case 0:
mainMenu();
break;
}
}
/**
* 新增商品
*/
public void addGoods() {
System.out.println("请输入商品名称:");
String name = scanners.next();
System.out.println("请输入商品价格:");
int price = scanners.nextInt();
System.out.println("请输入商品品牌:");
String brand = scanners.next();
System.out.println("请输入商品类型:");
String type = scanners.next();
int n = brandDao.nameChangeID(brand);
goodsDao.addDatabase(name, price, n, type);
for (Goods goods : goodsDao.findAllGoods())
System.out.println(goods.getGoodID() + "\t\t" + goods.getName() + "\t\t" + goods.getPrice() + "\t\t" + goods.getConsume() + "\t\t" + goods.getType());
}
/**
* 修改价格
*/
public void modifyPrice() {
allBrand();
System.out.println("请输入要修改的商品序号:");
int goodsId = scanners.nextInt();
Goods goodsNew=goodsDao.findByFoodID(goodsId);
Brand brandNew=brandDao.findByID(goodsNew.getBrandNumber());
List <Goods> list=brandShows(brandNew);
System.out.println("输入新的价格:");
int price = scanners.nextInt();
System.out.println("是否保存:是按1,否按0");
int bool = scanners.nextInt();
if (bool == 1) {
goodsDao.modify(goodsId, price);
for (Goods goods : goodsDao.findAllGoods())
System.out.println(goods.getGoodID() + "\t\t" + goods.getName() + "\t\t" + goods.getPrice() + "\t\t" + goods.getConsume() + "\t\t" + goods.getType());
} else {
return;
}
}
/**
* 删除商品
*/
public void deleteGoods () {
allBrand();
System.out.println("选择序号:");
int input2 = scanners.nextInt();
Goods good=goodsDao.findByFoodID(input2);
Brand brand=brandDao.findByID(good.getBrandNumber());
List <Goods> list1=brandShows(brand);
for (int i = 0; i < list1.size(); i++) {
Goods goods = list1.get(i);
System.out.println("序号:" + goods.getGoodID() +
" 商品名称:" + goods.getName() +
" 商品价格:" + goods.getPrice());
}
System.out.println("是否删除:是按1,否按0");
int bool = scanners.nextInt();
if (bool == 1) {
goodsDao.delete(input2);
for (Goods goods : goodsDao.findAllGoods())
System.out.println(goods.getGoodID() + "\t\t" + goods.getName() + "\t\t" + goods.getPrice() + "\t\t" + goods.getConsume() + "\t\t" + goods.getType());
}
}
public void detailedInformation(List<Goods>list,int input){
System.out.println(" 商品名称:"+list.get(input-1).getName()+"" +
" 商品品牌:"+brandDao.findByID(list.get(input-1).getBrandNumber()).getName()+
" 价格:"+list.get(input-1).getPrice()+
" 类型:"+list.get(input-1).getType());
}
public void allBrand(){
List<Goods>list=goodsDao.findAllGoods();
for (int i = 0; i <list.size(); i++) {
String brand=brandDao.idChangeName(list.get(i).getBrandNumber());
System.out.println("商品名称:"+list.get(i).getName()+
" 品牌序号:"+list.get(i).getBrandNumber()+
" 品牌名称:"+brand);
}
}
List<Goods> brandShows( Brand brand) {
List<Goods> listNew = new ArrayList<>();
List<Goods> list=goodsDao.findAllGoods();
for (int i = 0; i < list.size(); i++) {
if(brandDao.nameChangeID(brand.getName())==list.get(i).getBrandNumber())
{
listNew.add(list.get(i));
}
}
for (int i = 0; i < listNew.size(); i++) {
Goods goods = listNew.get(i);
System.out.println("序号:" + goods.getGoodID() +
" 商品名称:" + goods.getName() +
" 商品价格:" + goods.getPrice());
}
return listNew;
}
}
第九步:
package com.igeek.service;
import com.igeek.data.Database;
public class main {
public static void main(String[] args) {
Database database=new Database();
GoodsService goodsService=new GoodsService(database);
}
}
功能实现图