//超市类
package 超市管理系统; public class Market { private String name;// private String cardID;// private String password;// private int score;// private String regisDate;// public Market() { } public Market(String name, String cardID, String password, int score, String regisDate) { this.name = name; this.cardID = cardID; this.password = password; this.score = score; this.regisDate = regisDate; } /** * 获取 * @return name */ public String getName() { return name; } /** * 设置 * @param name */ public void setName(String name) { this.name = name; } /** * 获取 * @return cardID */ public String getCardID() { return cardID; } /** * 设置 * @param cardID */ public void setCardID(String cardID) { this.cardID = cardID; } /** * 获取 * @return password */ public String getPassword() { return password; } /** * 设置 * @param password */ public void setPassword(String password) { this.password = password; } /** * 获取 * @return score */ public int getScore() { return score; } /** * 设置 * @param score */ public void setScore(int score) { this.score = score; } /** * 获取 * @return regisDate */ public String getRegisDate() { return regisDate; } /** * 设置 * @param regisDate */ public void setRegisDate(String regisDate) { this.regisDate = regisDate; } public String toString() { return "Market{name = " + name + ", cardID = " + cardID + ", password = " + password + ", score = " + score + ", regisDate = " + regisDate + "}"; } }
//业务需求
package 超市管理系统; import java.text.SimpleDateFormat; import java.util.*; public class MemberDao { public static final Scanner sc = new Scanner(System.in); List<Market> markets = new ArrayList<>(); //开始菜单 public void meun(){ System.out.println("------------------------欢迎进入超市系统-----------------------"); System.out.println("1、积分累计 2、积分兑换 3、查询剩余积分 4、修改密码 5、开卡 6、退出"); System.out.println("==========================================================="); System.out.println("请选择:"); } public void start(){ do { meun(); String choose =sc.nextLine(); switch (choose){ case "1": //积分累计 if (savaScore()){ System.out.println("积分累计成功"); }else { System.out.println("对不你输入的会员卡号或密码有误!!!"); } break; case "2": //积分兑换 if (minusScore()){ System.out.println("积分兑换成功"); }else { System.out.println("对不起你输入的会员卡号或密码有误"); } break; case "3": //查询剩余积分 showScoce(); break; case "4": //修改密码 UresScoce(); break; case "5": //开卡 register(); break; case "6": //退出 System.out.println("感谢你的光临!"); return; default: System.out.println("输入错误!请重新输入!"); } }while (true); } //判断用户是否存在 public Market hasMarket(String id,String password){ for (Market market: markets){ if (market.getCardID().equals(id)&&market.getPassword().equals(password)){ return market; } } return null; } /** * 开卡 */ private void register() { Market m = new Market(); System.out.println("请输入你的姓名!!"); m.setName(sc.nextLine()); //会员卡号 String cardID=createID(); System.out.println("请输入注册密码!"); String password=sc.nextLine(); while (true){ if (password.matches("[A-Z]{1,5}\\w{5,15}")){ m.setPassword(password); break; }else { System.out.println("密码不能小于六位或大于20为首字母要大写!!"); password=sc.nextLine(); } } //开卡送积分 m.setScore(100); //开发日期 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); String rs =sdf.format(date); m.setRegisDate(rs); m.setCardID(cardID); System.out.println("恭喜你开卡成功您的会员卡号是:"+m.getCardID()+"注册时间是"+m.getRegisDate()); markets.add(m); } /** * 会员卡号生成八位 * @return */ private String createID() { String rs =""; Random r = new Random(); for (int i = 1; i <= 8; i++) { rs+=r.nextInt(10); } if (bijiao(rs)){ return rs; }else { for (int j = 0; j <=8 ; j++) { rs+=r.nextInt(10); } } return rs; } /** * 判断卡号是否存在 * @param rs * @return */ private boolean bijiao(String rs) { for (Market market :markets){ if (market.getCardID().equals(rs)){ return false; } } return true; } /** * 修改密码 */ private void UresScoce() { System.out.println("请输入你的会员卡号:"); String id = sc.nextLine(); System.out.println("请输入你的会员密码"); String password=sc.nextLine(); Market market =hasMarket(id,password); if (market!=null){ while (true) { System.out.println("请输入你要修改的会员密码:"); String password1 =sc.nextLine(); System.out.println("请再次输入你要修改的会员密码:"); String password2 =sc.nextLine(); if (password1.equals(password2)){ System.out.println("密码修改成功!"); market.setPassword(password1); break; }else { System.out.println("两次密码不一致!请重新输入!"); } } }else { System.out.println("会员不存在!!!!"); } } /** * 查询 */ private void showScoce() { System.out.println("请输入你的会员卡号:"); String id = sc.nextLine(); System.out.println("请输入你的会员密码"); String password=sc.nextLine(); Market market =hasMarket(id,password); if (market!=null){ System.out.println("会员卡号\t姓名\t剩余积分\t开卡日期"); System.out.println(market.getCardID()+"\t"+market.getName()+"\t"+market.getScore()+"\t"+market.getRegisDate()); }else { System.out.println("会员不存在!!!!"); } } /** * 积分兑换 * @return */ private boolean minusScore() { String c="y"; System.out.println("请输入你的会员卡号:"); String id = sc.nextLine(); System.out.println("请输入你的会员密码"); String password=sc.nextLine(); Market market =hasMarket(id,password); if (market!=null){ do { System.out.println("请输入你要抵消多少积分:(1元积一分)"); String sorce = sc.nextLine(); Integer i = Integer.valueOf(sorce); if (i<=market.getScore()){ market.setScore(market.getScore()-i); System.out.println("您消费了"+i+"分"+"抵换了"+(i/100)+"元"); return true; }else { System.out.println("对不起你的积分不足!"); System.out.println("是否继续(y/n)"); c =sc.nextLine(); if (!c.equals("y")){ return false; } } }while (c.equals("y")); return true; }else { return false; } } /** * 积分累计 * @return */ private boolean savaScore() { System.out.println("请输入你的会员卡号:"); String id = sc.nextLine(); System.out.println("请输入你的会员密码"); String password=sc.nextLine(); Market market =hasMarket(id,password); if (market!=null){ System.out.println("请输入你此次消费的金额:(1元积一分)"); String sorce = sc.nextLine(); Integer i = Integer.valueOf(sorce); market.setScore(market.getScore()+i); return true; }else { return false; } } }
//主函数
package 超市管理系统; public class SystemMarket { public static void main(String[] args) { MemberDao m = new MemberDao(); m.start(); } }