时间:2021-05-19
实现功能:商品查询,新增,更改价格,以及删除
首先是三个基本类的构建
商品类、账号类、品牌类
实现了其各个属性的get和set方法
之后是一个存储这三个基本类信息的数据类,通过定义List实现三个类的存储
之后是三个基本类各个增删改查方法的实现,这个根据程序需求写
账户交互类实现注册,登录的需求
public class AccountDAO { //调用数据库 private Database database; //初始化账户DAO类,引入数据库 public AccountDAO(Database database){ this.database=database; } //根据账户名返回账户类 public Accounts searchAccounts(String userName){ Accounts accounts=null; for(Accounts each:database.getAccountsList()){ if(each.getUserName().equals(userName)) accounts=each; } return accounts; } //添加账户类 public void addAccount(Accounts accounts){ database.getAccountsList().add(accounts); }}品牌类
public class BrandsDAO { //调用数据库 private Database database; //初始化品牌DAO类,引入数据库 public BrandsDAO(Database database){ this.database=database; } //根据品牌名称查询 public Brands findByName(String brandName){ Brands brands=null; for(Brands each:database.getBrandsList()){ if(each.getBrandsName().equals(brandName)) { brands = each; break; } } return brands; } //查询所有品牌 public void findAll(){ System.out.println("现有品牌:"); for(Brands each:database.getBrandsList()){ System.out.println(each.getBrandsNum()+"\t"+each.getBrandsName()); } } //根据品牌编号查询品牌名称 public String findNameById(int id){ String brandName; Brands brands=null; for(Brands each:database.getBrandsList()){ if(each.getBrandsNum()==id){ brands=each; } } return brands.getBrandsName(); } //查询品牌是否拥有 public boolean findBranch(String brandsName){ boolean choose=false; for(Brands each:database.getBrandsList()) { if(each.getBrandsName().equals(brandsName)) choose=true; } return choose; } //新建一个品牌 public void addBranch(Brands brands){ database.getBrandsList().add(brands); } //查找当前品牌的的数量 public int brandsNumbers(){ int num=database.getBrandsList().size(); return num; } //查找要删除的品牌 public void deleteBrands(int num){ Brands brands=null; for(Brands each:database.getBrandsList()){ if(each.getBrandsNum()==num) brands=each; } database.getBrandsList().remove(brands); } //移动编号 public void moveBrandsNum(int brandsNum){ int index; for(int i=0;i<database.getBrandsList().size();i++){ if(database.getBrandsList().get(i).getBrandsNum()>brandsNum) database.getBrandsList().get(i).setBrandsNum(database.getBrandsList().get(i).getBrandsNum()-1); } }}服务类实现项目需要的功能,构建交互界面
public class GoodsSystem { Scanner scanner=new Scanner(System.in); Random random=new Random(); AccountDAO accountDAO; BrandsDAO brandsDAO; GoodsDAO goodsDAO; //初始化DAO public GoodsSystem(Database database){ accountDAO=new AccountDAO(database); brandsDAO=new BrandsDAO(database); goodsDAO=new GoodsDAO(database); } public void start(){// 1.登陆 System.out.println("----------------商品系统---------------"); System.out.println("1.登录");// 2.注册 System.out.println("2.注册");// 3.退出系统 System.out.println("3.退出系统"); System.out.println("请选择:"); String choose=scanner.next(); switch(choose){ //登录 case "1": login(); break; //注册 case "2": regist(); break; //退出系统 case "3": System.out.println("系统已经退出"); break; default: System.out.println("输入错误,请重新输入:"); start(); } } //登录 public void login(){ System.out.println("请输入用户名:"); String userName=scanner.next(); System.out.println("请输入密码:"); String passWord=scanner.next(); Accounts accounts=accountDAO.searchAccounts(userName); String testNum=""; if(accounts!=null){ if(accounts.getUserPassword().equals(passWord)){ for(int i=0;i<4;i++){ int num=random.nextInt(10); testNum=testNum+num; } System.out.println("验证码:"+testNum); System.out.println("请输入验证码:"); String testNumInput=scanner.next(); if(testNumInput.equals(testNum)) { System.out.println("登录成功"); mainMenu(); } else{ System.out.println("验证码错误,请重新登录"); login(); } } else{ System.out.println("密码错误,请重新登录"); System.out.println("输入任意键执行操作,或输入0返回上一层目录"); String choose=scanner.next(); if(choose.equals("0")) start(); else login(); } } else{ System.out.println("该账户不存在,请重新输入:"); System.out.println("输入任意键执行操作,或输入0返回上一层目录"); String choose=scanner.next(); if(choose.equals("0")) start(); else login(); } } //注册 public void regist(){ System.out.println("----注册----"); //用户名 System.out.println("请输入用户名:"); String userName=scanner.next(); Accounts accounts=accountDAO.searchAccounts(userName); while(accounts!=null){ System.out.println("用户名已经被使用,请重新输入"); userName=scanner.next(); accounts=accountDAO.searchAccounts(userName); } //密码 System.out.println("请输入密码:"); String userPassWord=scanner.next(); System.out.println("确认密码:"); String testPassWord=scanner.next(); while(!userPassWord.equals(testPassWord)){ System.out.println("确认密码与注册密码不相符,请重新输入密码"); System.out.println("请输入密码:"); userPassWord=scanner.next(); System.out.println("确认密码:"); testPassWord=scanner.next(); } //验证码 String testNum=""; for(int i=0;i<4;i++){ int num=random.nextInt(10); testNum=testNum+num; } System.out.println("验证码:"+testNum); System.out.println("请输入验证码:"); String testNumInput=scanner.next(); if(testNumInput.equals(testNum)) { accountDAO.addAccount(new Accounts(userName,userPassWord)); System.out.println("注册成功"); start(); } else{ System.out.println("验证码错误,请重新注册"); System.out.println("输入任意键执行操作,或输入0返回上一层目录"); String choose=scanner.next(); if(choose.equals("0")) start(); else regist(); } } //主菜单 public void mainMenu(){ System.out.println("-------------主菜单------------");// 1.热门商品 System.out.println("1.热门商品");// 2.商品查询 System.out.println("2.商品查询");// 3.后台管理 System.out.println("3.后台管理"); System.out.println("4.退出系统"); System.out.println("请输入你的选择:"); String choose=scanner.next(); switch (choose){ case "1"://热门商品 hotSell(); break; case "2"://商品查询 searchGoods(); break; case "3"://后台管理 controlGoods(); break; case "4"://退出系统 System.out.println("系统已经退出"); break; default: mainMenu(); } } //热卖商品 public void hotSell(){ System.out.println("------------热销商品------------"); List <Goods>tempor=goodsDAO.hotSell(); System.out.println("序号\t\t"+"商品"+"\t\t\t\t\t销量\t"); int num=10; if(tempor.size()<10) num=tempor.size(); for(int i=0;i<num;i++){ System.out.println((i+1)+"\t\t"+tempor.get(i).getGoodsName()+"\t\t\t\t\t"+tempor.get(i).getGoodsSales()+"\t"); } System.out.println("请输入要查询的商品ID或输入0返回上一层菜单。"); String chooseEnd=scanner.next(); if(isNumeric(chooseEnd)==true) { int choose=Integer.parseInt(chooseEnd); if(choose==0){ mainMenu(); } else { if(choose<=num&&choose>=0) { Goods goods = goodsDAO.searchById(choose); System.out.println("商品名称\t\t品牌\t\t价格\t\t类型"); System.out.println(goods.getGoodsName() + "\t\t\t" + brandsDAO.findNameById(goods.getBrandsNum()) + "\t" + goods.getGoodsPrice() + "元\t" + goods.getGoodsCategories()); mainMenu(); } else { System.out.println("查询的序号超过限定,请重新输入"); hotSell(); } } } else { System.out.println("输入错误符号,请重新选择"); hotSell(); } } //商品查询 public void searchGoods(){ System.out.println("---------商品查询----------");// 1.品牌查询 System.out.println("1.品牌查询");// 2.价格查询 System.out.println("2.价格查询"); System.out.println("3.返回上一层目录"); System.out.println("请输入你的选择:"); String choose=scanner.next(); switch(choose){ case "1"://品牌查询 searchByBranch(); break; case "2"://价格查询 searchByPrice(); break; case "3": mainMenu(); break; default: searchGoods(); } } //后台管理 public void controlGoods(){ System.out.println("--------后台管理--------");// 1.新增商品 System.out.println("1.新增商品");// 2.修改价格 System.out.println("2.修改价格");// 3.删除商品 System.out.println("3.删除商品"); System.out.println("4.返回主菜单"); System.out.println("请输入选择:"); String choose=scanner.next(); switch (choose){ case "1"://新增商品 addGoods(); break; case "2"://修改价格 changePrice(); break; case "3"://删除商品 deleteGoods(); break; case "4"://返回主菜单 mainMenu(); break; default: controlGoods(); } } //根据品牌查询 public void searchByBranch(){ brandsDAO.findAll(); System.out.println("请输入要查询的品牌编号:"); String brandsNum1=scanner.next(); if(isNumeric(brandsNum1)) { int brandsNum=Integer.parseInt(brandsNum1); List<Goods> temporlist = goodsDAO.searchByBranchId(brandsNum); if (temporlist == null) { System.out.println("没有该品牌的商品"); searchGoods(); } for (int i = 0; i < temporlist.size(); i++) { System.out.println("序号" + (i + 1) + "\t" + "商品名字:" + temporlist.get(i).getGoodsName()); } System.out.println("请输入要查询的商品ID或输入0返回上一层菜单。"); String choose1 = scanner.next(); if(isNumeric(choose1)) { int choose=Integer.parseInt(choose1); if (choose == 0) { searchGoods(); } else { if(choose>=1&&choose<=temporlist.size()){ Goods goods = temporlist.get(choose - 1); System.out.println("商品名称:" + goods.getGoodsName() + "\t" + "品牌:" + brandsDAO.findNameById(goods.getBrandsNum()) + "\t" + "价格:" + goods.getGoodsPrice() + "元\t" + "类型:" + goods.getGoodsCategories()); searchGoods(); } else{ System.out.println("输入序号超过边界范围,请重新输入"); searchByBranch(); } } } else{ System.out.println("输入错误符号,请重新选择"); searchByBranch(); } } else{ System.out.println("输入错误符号,请重新选择"); searchByBranch(); } } //根据价格查询 public void searchByPrice(){ System.out.println("请输入要查询的价格区间:最小价格 最大价格"); double minPrice=scanner.nextDouble(); double maxPrice=scanner.nextDouble(); List<Goods>temporlist=goodsDAO.searchByPrice(minPrice,maxPrice); if(temporlist==null){ System.out.println("没有该区间的商品"); searchGoods(); } for(int i=0;i<temporlist.size();i++){ System.out.println("序号"+(i+1)+"\t"+"商品名字:"+temporlist.get(i).getGoodsName()); } System.out.println("请输入要查询的商品ID或输入0返回上一层菜单。"); String choose1 = scanner.next(); if(isNumeric(choose1)) { int choose=Integer.parseInt(choose1); if (choose == 0) { searchGoods(); } else { if(choose>=1&&choose<=temporlist.size()) { Goods goods = temporlist.get(choose - 1); System.out.println("商品名称:" + goods.getGoodsName() + "\t" + "品牌:" + brandsDAO.findNameById(goods.getBrandsNum()) + "\t" + "价格:" + goods.getGoodsPrice() + "元\t" + "类型:" + goods.getGoodsCategories()); searchGoods(); } else{ System.out.println("输入数字超过边界,请重新输入"); searchByPrice(); } } } else{ System.out.println("输入错误符号,请重新选择"); searchByPrice(); } } //新增商品 public void addGoods(){ System.out.println("请输入商品名称:"); String goodsName=scanner.next(); System.out.println("请输入商品价格:"); double goodsPrice=scanner.nextDouble(); System.out.println("请输入品牌"); String brandsName=scanner.next(); int brandsNum; if(brandsDAO.findBranch(brandsName)){ brandsNum=brandsDAO.findByName(brandsName).getBrandsNum(); } else{ brandsNum=brandsDAO.brandsNumbers()+1; Brands brands=new Brands(brandsName,brandsNum); brandsDAO.addBranch(brands); } System.out.println("请输入商品类型"); String goodsCate=scanner.next(); Goods goods=new Goods(goodsName,goodsPrice,0,goodsCate,brandsNum, UUID.randomUUID().toString()); goodsDAO.addGoods(goods); System.out.println("商品添加成功"); controlGoods(); } //改变价格 public void changePrice(){ System.out.println("--------修改价格------"); brandsDAO.findAll(); System.out.println("请输入要查询的品牌编号:"); String brandsNum1=scanner.next(); if(isNumeric(brandsNum1)) { int brandsNum=Integer.parseInt(brandsNum1); List<Goods> temporlist = goodsDAO.searchByBranchId(brandsNum); if (temporlist == null) { System.out.println("没有该品牌的商品"); changePrice(); } for (int i = 0; i < temporlist.size(); i++) { System.out.println("序号" + (i + 1) + "\t" + "商品名字:" + temporlist.get(i).getGoodsName() + "\t价格" + temporlist.get(i).getGoodsPrice() + "元"); } System.out.println("请输入要修改价格的商品ID或输入0返回上一层菜单。"); String choose1 = scanner.next(); if(isNumeric(choose1)) { int choose=Integer.parseInt(choose1); if (choose == 0) { controlGoods(); } else if(choose<=temporlist.size()) { System.out.println("请输入要修改的价格:"); double price = scanner.nextDouble(); System.out.println("是否确定修改价格:是/否"); String endChoose = scanner.next(); if (endChoose.equals("是")) { goodsDAO.modify(temporlist.get(choose - 1).getGoodsNum(), price); System.out.println("价格修改完成"); controlGoods(); } else { controlGoods(); } } else{ System.out.println("输入序号超过边界,请重新输入"); changePrice(); } } else{ System.out.println("输入错误符号,请重新输入"); changePrice(); } } else{ System.out.println("输入错误符号,请重新输入"); changePrice(); } } //删除商品 public void deleteGoods(){ System.out.println("--------删除商品------"); brandsDAO.findAll(); System.out.println("请输入要查询的品牌编号:"); String brandsNum2=scanner.next(); if(isNumeric(brandsNum2)) { int brandsNum=Integer.parseInt(brandsNum2); List<Goods> temporlist = goodsDAO.searchByBranchId(brandsNum); if (temporlist == null) { System.out.println("没有该品牌的商品"); deleteGoods(); } for (int i = 0; i < temporlist.size(); i++) { System.out.println("序号" + (i + 1) + "\t" + "商品名字:" + temporlist.get(i).getGoodsName()); } System.out.println("请输入要删除的商品ID或输入0返回上一层菜单。"); String choose1 = scanner.next(); if(isNumeric(choose1)) { int choose=Integer.parseInt(choose1); if (choose == 0) { controlGoods(); } else if(choose<=temporlist.size()){ System.out.println("是否确定删除:是/否"); String endChoose = scanner.next(); if (endChoose.equals("是")) { int brandsNum1 = temporlist.get(choose - 1).getBrandsNum(); goodsDAO.delete(temporlist.get(choose - 1).getGoodsNum()); System.out.println("删除成功"); if (goodsDAO.searchByBranchId(brandsNum1) == null) { brandsDAO.deleteBrands(brandsNum1); brandsDAO.moveBrandsNum(brandsNum1); for (int i = brandsNum1; i <= brandsDAO.brandsNumbers(); i++) goodsDAO.changeByBranchId(i + 1); } controlGoods(); } else { controlGoods(); } } else{ System.out.println("输入序号超过边界,请重新输入"); deleteGoods(); } } else{ System.out.println("输入错误符号,请重新输入"); deleteGoods(); } } else{ System.out.println("输入错误符号,请重新输入"); deleteGoods(); } } public boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; }}注:以上代码部分内部类的导入未填写
还需要一个测试类运行
暂且略过
到此这篇关于Java实现商品管理系统代码实例讲解的文章就介绍到这了,更多相关Java实现商品管理系统内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了java实现商品管理系统的具体代码,供大家参考,具体内容如下功能要求:完成“小商品管理系统”的架构设计要求:利用集合存储若干商品对象----
本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下要求:【酒店管理系统】HotelSystem.java某酒店有12层楼,每层楼有
本文实例为大家分享了java实现超市管理系统的具体代码,供大家参考,具体内容如下实现功能使用选择结构,循环结构,数组的知识实现一个超市管理系统运行结果:货物清单
本文实例为大家分享了java实现超市管理系统的具体代码,供大家参考,具体内容如下一、使用技术javaSE二、实现功能超市管理系统具体要求如下:使用选择结构,循环
商品管理系统1、商品属性管理2、商品分类管理3、商品评论管理(待审、删除)4、商品管理(上架、时间有效性、价格、特惠、退货日期等、运费、允许开箱验货等)通过后台