需求请见:http://pan.baidu.com/s/1pJPsYF5
有机会希望再补po到blog上面~
首先用menu把进入后的框架搭起来
/* * 各级菜单显示 */ package com.pb.menu; public class Menu { /** * 登陆菜单 */ public void login() { System.out.println("欢迎使用商超管理系统"); System.out.println("1、登陆系统"); System.out.println("2、退出"); } /** * 主菜单内容 */ public void mainMenu() { System.out.println("**********我是分割线***********"); System.out.println("1、商品维护"); System.out.println("2、前台收银"); System.out.println("3、商品管理"); System.out.println("4、返回上一级菜单"); System.out.println("**********我是分割线***********"); } /** * 商品维护菜单内 容 */ public void mainMenu_1() { System.out.println("商超购物系统>>>商品维护"); System.out.println("**********我是分割线***********"); 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("7、保存"); System.out.println("8、返回上一级菜单"); System.out.println("**********我是分割线***********"); } /** * 前台收银菜单内容 */ public void mainMenu_2() { System.out.println("商超购物系统>>>前台收银"); System.out.println("**********我是分割线***********"); System.out.println("1、购物结算"); System.out.println("2、返回上一级菜单"); System.out.println("**********我是分割线***********"); } /** * 商品维护菜单内容 */ public void mainMenu_3() { System.out.println("商超购物系统>>>商品管理"); System.out.println("**********我是分割线***********"); System.out.println("1、设置商品预警库存"); System.out.println("2、今日售出商品"); System.out.println("3、售货员管理"); System.out.println("4、返回上一级菜单"); System.out.println("**********我是分割线***********"); } public void mainMenu_3_3() { System.out.println("商超购物系统>>>商品管理>>>售货员管理"); System.out.println("**********我是分割线***********"); 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("7、返回上一级菜单"); System.out.println("**********我是分割线***********"); } }
然后我的思路非常线性,写了写架构在纸上,大概就是两个东西,一个叫salesman,用来操作物品,一个叫做good,就是物品。
我用一个叫user的类去管理存储他们两个的方法和属性。然后再分别去管理调用
于是我先把main函数写出来,然后就每个缺少的部分再去写他们每个的内容。
package com.pb.user; import java.util.Scanner; import com.pb.good.Good; import com.pb.goodbiz.Goods; import com.pb.isinputright.IsRight; import com.pb.management.GoodManagement; import com.pb.management.SalesmanManagement; import com.pb.myexception.MyException; import com.pb.salesman.Salesman; import com.pb.salesmanBiz.SalesmanGroup; public class User { Scanner in = new Scanner(System.in); GoodManagement gm = new GoodManagement(); SalesmanManagement sm = new SalesmanManagement(); //登陆主菜单 public boolean landingMan(){ System.out.print("请输入用户名:"); String name = in.next(); System.out.print("\n请输入密码:"); String psd = in.next(); if(name.equals("admin")){ if(psd.equals("admin")) return true; } return false; } // 售货员登陆登陆 public boolean landing() { System.out.print("请输入用户名:"); String name = in.next(); System.out.print("\n请输入密码:"); String psd = in.next(); try { if (SalesmanGroup.userMap.get(name) == null) throw new MyException("用户名密码不匹配!"); } catch (MyException e) { System.out.println(e.getMessage()); return false; } try { if (!SalesmanGroup.userMap.get(name).getPsd().equals(psd)) throw new MyException("用户名密码不匹配!"); } catch (MyException e) { System.out.println(e.getMessage()); return false; } return true; } // 新增商品 public void add() { System.out.println("请输入商品信息:"); System.out.println("请输入商品名称:"); String name = in.next(); try { if (Goods.goodMap.get(name) != null) throw new MyException("用户名已存在!"); } catch (MyException e) { System.out.println(e.getMessage()); return; } System.out.println("请输入商品价格:"); double price = in.nextDouble(); System.out.println("请输入商品库存:"); int storage = in.nextInt(); gm.add(new Good(name, price, storage)); } // 删除商品 public void delete() { System.out.println("请输入商品名称:"); String name = in.next(); if (Goods.goodMap.get(name) != null) { if (Goods.goodMap.get(name).getStorage() == 0) { gm.delete(name); } else { System.out.println("库存不为0,不能删除商品!"); } } else { System.out.println("商品不存在!"); } } // 修改商品 public void modify() { System.out.println("请输入商品名称:"); String name = in.next(); if (Goods.goodMap.get(name) != null) { gm.query(name); String c; do { System.out.println("请选择您要修改的内容:"); System.out.println("1、更改商品名称:"); System.out.println("2、更改商品价格:"); System.out.println("3、更改商品数量:"); int n = in.nextInt(); switch (n) { case 1: System.out.println("请输入变更后的商品名称:"); String newname = in.next(); Good good = Goods.goodMap.get(name); good.setName(newname); Goods.goodMap.remove(name); Goods.goodMap.put(newname, good); break; case 2: System.out.println("请输入变更后的商品价格:"); Goods.goodMap.get(name).setPrice(in.nextDouble()); break; case 3: System.out.println("请输入变更后的商品数量:"); Goods.goodMap.get(name).setStorage(in.nextInt()); break; } System.out.print("是否继续修改此商品信息(N/Y):"); c = in.next(); } while (c.equalsIgnoreCase("y")); } else System.out.println("商品不存在,请核实!"); } // 查看指定商品 public void query() { System.out.println("请输入商品名称:"); String name = in.next(); if (Goods.goodMap.get(name) != null) { gm.query(name); } else System.out.println("商品不存在,请核实!"); } // 按价格升序查询 public void priceQuery() { gm.priceQuery(); } // 查看全部商品 public void queryAll() { gm.queryAll(); } // 查询当日买出商品 public void dayQuery() { gm.dayQuery(); } // 模糊查找商品信息 public boolean fuzzyQuery() { System.out.println("请输入商品关键字:"); String str = in.next(); return gm.fuzzyQuery(str); } // 保存商品信息 public void save() { gm.save(); } // 商品入货 public void in() { System.out.println("请输入商品名称:"); String name = in.next(); if (Goods.goodMap.get(name) != null) { System.out.println("请输入入库数量:"); int num = in.nextInt(); gm.in(name, num); } else System.out.println("商品不存在!"); } // 新增售货员 public void addSalesman() { System.out.println("请输入售货员信息:"); System.out.println("请输入用户名:"); String name = in.next(); try { if (SalesmanGroup.userMap.get(name) != null) throw new MyException("该用户已存在!"); } catch (MyException e) { System.out.println(e.getMessage()); return; } System.out.println("请输入密码:"); String psd = in.next(); if (!IsRight.isPsd(psd)) return; System.out.println("请再次输入密码:"); String psd1 = in.next(); if (!IsRight.isPsd(psd, psd1)) return; System.out.println("请输入年龄:"); int age = in.nextInt(); if (!IsRight.isAge(age)) return; sm.add(new Salesman(name, psd, age)); } // 修改售货员 public void modifySalesman() { System.out.println("请输入用户名:"); String name = in.next(); if (SalesmanGroup.userMap.get(name) != null) { sm.query(name); String c; do { System.out.println("请选择您要修改的内容:"); System.out.println("1、更改用户名:"); System.out.println("2、更改密码:"); System.out.println("3、更改年龄:"); int n = in.nextInt(); switch (n) { case 1: System.out.println("请输入变更后的用户名"); String newname = in.next(); Salesman salesman = SalesmanGroup.userMap.get(name); salesman.setName(newname); SalesmanGroup.userMap.remove(name); SalesmanGroup.userMap.put(newname, salesman); break; case 2: System.out.println("请输入变更后的密码:"); SalesmanGroup.userMap.get(name).setPsd(in.next()); break; case 3: System.out.println("请输入变更后的年龄:"); SalesmanGroup.userMap.get(name).setAge(in.nextInt()); break; } System.out.print("是否继续修改此用户信息(N/Y):"); c = in.next(); } while (c.equalsIgnoreCase("y")); } else System.out.println("用户名不存在!"); } // 删除售货员 public void deleteSalesman() { System.out.println("请输入要删除的用户名:"); String name = in.next(); if (SalesmanGroup.userMap.get(name) != null) { SalesmanGroup.userMap.remove(name); } else System.out.println("用户名不存在!"); } // 查找指定售货员 public void querySalesman() { System.out.println("请输入要查询的用户名:"); String name = in.next(); if (SalesmanGroup.userMap.get(name) != null) { sm.query(name); } else System.out.println("用户名不存在!"); } // 查找全部售货员 public void queryAllSalesman() { sm.queryAll(); } // 保存 public void saveSalesman() { sm.save(); } // 检查商品库存 public void checkStorage(int num) { gm.checkStorage(num); } // 购物 public double settlement() { System.out.println("请输入商品名称:"); String name = in.next(); if (Goods.goodMap.get(name) == null) { System.out.println("商品不存在!"); return 0; } else { System.out.println("请输入购买数量:"); int sale = in.nextInt(); return gm.settlement(Goods.goodMap.get(name), sale); } } // 付款 public void payment() { double sum = 0;// 购买商品总金额 double sum1 = 0;// 总交费金额 double money = 0;// 单次交费金额 String c; do { if (fuzzyQuery()) { sum += settlement(); } else { System.out.println("商品不存在!"); } System.out.print("是否继续购买(N/Y):"); c = in.next(); } while (c.equalsIgnoreCase("y")); if (sum == 0) System.out.println("欢迎再次光临"); else { do { System.out.println("请输入交费金额:"); money = in.nextDouble(); sum1 += money; if (sum1 < sum) System.out.println("交费金额小于货款,请继续交费!"); } while (sum1 < sum); System.out.println("找钱:" + (sum1 - sum) + "\n欢迎再次光临"); } } }
然后我们再去写他们的Management
——————————————————华丽的分割线——————————————————————
/** * 管理商品信息库 */ package com.pb.management; import com.pb.good.Good; import com.pb.goodbiz.Goods; public class GoodManagement { Goods goods = new Goods(); // 新增 public void add(Good good) { goods.addGood(good); } // 删除 public void delete(String name) { goods.deleteGood(name); } // 修改 public void modify(Good good) { goods.modifyGood(good); } // 查询指定商品 public void query(String name) { goods.queryGood(name); } // 查询全部商品 public void queryAll() { goods.queryAll(); } // 查询当日买出商品 public void dayQuery() { goods.dayQuery(); } // 升序查找商品 public void priceQuery() { goods.priceQuery(); } // 模糊查找商品信息 public boolean fuzzyQuery(String str) { return goods.fuzzyQuery(str); } // 保存 public void save() { goods.save(); } // 入库 public void in(String name, int num) { goods.in(name, num); } // 检查商品库存 public void checkStorage(int num) { goods.checkStorage(num); } // 结账 public double settlement(Good good, int sale) { return goods.settlement(good, sale); } }
/** * 管理售货员库 */ package com.pb.management; import com.pb.salesman.Salesman; import com.pb.salesmanBiz.SalesmanGroup; public class SalesmanManagement { SalesmanGroup sg = new SalesmanGroup(); // 新增售货员 public void add(Salesman user) { sg.add(user); } // 修改售货员 public void modity(Salesman user) { sg.modify(user); } // 删除售货员 public void delete(String name) { sg.delete(name); } // 查找指定售货员 public void query(String name) { sg.query(name); } // 查找全部售货员 public void queryAll() { sg.queryAll(); } //保存 public void save(){ sg.save(); } }
先写到这里,具体的底层操作请见下一步!
时间: 2024-10-18 13:21:08