带你深入了解Java!十七、超市会员管理系统!
2019-04-30 22:19
190 查看
< 超市会员管理系统 >
效果图
加粗样式
实现超市会员管理系统
分析实体
- 会员类:Vip
会员用户名: String name;
会员卡号: int id
会员密码:String password
会员积分: int integral
开卡日期:String date
业务分析(业务驱动技术)
加密密码( cimmons – cidec / 工具类MD5 )
- 6个功能:
- 1、开卡:
密码长度不能小于6位
生成8位唯一的随机卡号(int)(Math.random()* 90000000)+ 10000000 或
Random ran = new Random()
int id = ran.nextInt(110000000)+10000000;
开卡赠送积分
存到list集合 - 2、积分累计:
会员登陆
进行消费金额和积分的比例计算,将增加的积分给重新赋值到当前会员积分属性内 - 3、积分查询:
会员登陆
展示会员信息
将日期通过SimpleDateFormat 转换位指定格式 - 4、积分兑换:
会员登陆
对用户想要兑换的积分进行判断,判断是否积分重组 判断积分是否超过1000
进行积分扣减并且并对兑换的金额展示 - 5、密码修改:
会员登陆
输入新密码 要求密码长队不能小于6位 密码如果和上次密码相同也不行
重新设置信息密码 - 6、退出
会员类:
/** * 会员类 * @author Douer * */ public class Vip { //会员名称 private String name; //会员卡号 private int id; //密码 private String password; //积分 private int integral; //开卡日期 private String date; @Override public String toString() { return "Vip [name=" + name + ", id=" + id + ", password=" + password + ", integral=" + integral + ", date=" + date + "]"; } public Vip() { super(); } public Vip(String name, int id, String password, int integral, String date) { super(); this.name = name; this.id = id; this.password = password; this.integral = integral; this.date = date; } String getName() { return name; } void setName(String name) { this.name = name; } int getId() { return id; } void setId(int id) { this.id = id; } String getPassword() { return password; } void setPassword(String password) { this.password = password; } int getIntegral() { return integral; } void setIntegral(int integral) { this.integral = integral; } String getDate() { return date; } void setDate(String date) { this.date = date; } }
业务类:
import java.text.SimpleDateFormat; /** * 业务类 * @author Douer * */ import java.util.*; /** * 业务类 * @author Douer * */ public class Business { Scanner input = new Scanner(System.in); //创建list集合泛型为Vip List<Vip> list = new ArrayList<>(); //选择界面方法 public void show() { System.out.println("*************************超市会员管理系统***************************"); System.out.println("* 1、积分累计 2、积分兑换 3、查询剩余积分 4、开卡 5、修改密码 6、退出 *"); System.out.println("****************************************************************"); System.out.print("请输入你的选择:"); } //开始方法 public void start() { one:do { //调用选择界面方法 show(); //输入选择 String num = input.next(); switch(num) { //积分累计 case "1": //判断返回值 是否积分累计成功 if(plusPassword()) { System.out.println("\t积分累计成功!"); }else { System.out.println("\t积分累计失败!"); } break; //积分兑换 case "2": exchange(); break; //查询剩余积分 case "3": inquirePassword(); break; //开卡 case "4": newVip(); break; //修改密码 case "5": newPassword(); break; //退出 case "6": System.out.println("\t感谢你的使用!"); break one; default: System.out.println("\t选择不存在!"); continue; } }while(true); } //积分累计方法 public boolean plusPassword() { System.out.println("****************************************************************"); System.out.print("请输入你的会员卡号:"); int id = input.nextInt(); System.out.print("请输入你的会员卡密码:"); String password = input.next(); //调用查询会员是否存在的方法 Vip vip = yesNo(id,password); //不为空则存在 if(vip != null) { System.out.print("请输入本次消费的金额(1元积1分):"); //积分等于原积分加此次输入的积分 vip.setIntegral(vip.getIntegral()+input.nextInt()); return true; }else { System.out.println("\t密码错误或你还不是我们的会员用户!(可以去开卡办理注册会员)!"); return false; } } //积分兑换方法 public void exchange() { System.out.println("****************************************************************"); System.out.print("请输入你的会员卡号:"); int id = input.nextInt(); System.out.print("请输入你的会员卡密码:"); String password = input.next(); //调用查询会员是否存在的方法 Vip vip = yesNo(id,password); //不为空则存在 do { if(vip != null) { System.out.print("请输入本次兑换的积分数量(1000积分抵用1元!积分兑换不能小于1000分!):"); int integeral = input.nextInt(); //判断会员积分数量是否够 if(integeral <= vip.getIntegral()) { //判断兑换积分是否小于兑换积分最小要求 if(integeral >= 1000) { //兑换成功原会员积分减去此次兑换积分 vip.setIntegral(vip.getIntegral()-integeral); System.out.println("\t你此次兑换积分抵消了:"+(integeral/1000)+"元"); System.out.println("\t积分兑换成功!"); break; }else { System.out.println("\t每次积分兑换不能小于1000分!"); continue; } }else { System.out.println("\t账号积分不足!无法兑换!"); continue; } }else { System.out.println("\t密码错误或你还不是我们的会员用户!(可以去开卡办理注册会员)!"); break; } }while(true); } //积分查询方法 public void inquirePassword() { System.out.println("****************************************************************"); System.out.print("请输入你的会员卡号:"); int id = input.nextInt(); System.out.print("请输入你的会员卡密码:"); String password = input.next(); //调用查询会员是否存在的方法 Vip vip = yesNo(id,password); //不为空则存在 if(vip == null) { System.out.println("\t密码错误或你还不是我们的会员用户!(可以去开卡办理注册会员)!"); } } //开卡方法 public void newVip() { Vip vip = new Vip(); System.out.println("****************************************************************"); System.out.print("请输入注册用户名:"); vip.setName(input.next()); vip.setId(randomId()); System.out.print("请输入注册的密码:"); //密码长度不低于六位,输入密码长度不符合要求则提示重新输入 do { String newPassword = input.next(); if(newPassword.length() < 6) { System.out.println("密码长度不能小于6位!"); System.out.p 3ff7 rint("请重新输入密码:"); continue; }else { vip.setPassword(newPassword); break; } }while(true); //开卡成功赠送1000分 vip.setIntegral(1000); //记录开卡时间 Date date = new Date(); SimpleDateFormat sim = new SimpleDateFormat("yyyy年 MM月dd日 HH时"); vip.setDate(sim.format(date)); //存入卡号 vip.setId(randomId()); System.out.println("****************************************************************"); System.out.println("\t恭喜开卡成功!新用户开卡赠送1000积分已经存进你的账户!\n\t你的会员卡号: "+vip.getId()); System.out.println("\t会员卡用户名: "+vip.getName()); System.out.println("\t开卡时间为: "+vip.getDate()); //开卡信息存入集合中 list.add(vip); } //随机卡号方法 public int randomId() { do { Random ran = new Random(); //随机卡号 int id = ran.nextInt(110000000)+10000000; //遍历集合中的卡号如有相同的卡号重新随机赋值 for(Vip vip:list) { if(vip.getId() == id) { continue; } } return id; }while(true); } //修改密码打方法 private void newPassword() { System.out.println("****************************************************************"); System.out.print("请输入你的会员卡号:"); int id = input.nextInt(); System.out.print("请输入你的会员卡密码:"); String password = input.next(); //调用查询会员是否存在的方法 Vip vip = yesNo(id,password); do { //不为空则存在 if(vip != null) { System.out.print("请输入你要修改的密码:"); String newPassword = input.next(); //判断新密码是否和之前密码相同 if(!vip.getPassword().equals(newPassword)) { vip.setPassword(newPassword); System.out.println("\t密码修改成功!请牢记你的密码!"); break; }else { System.out.println("\t新密码不能之前密码相同!"); continue; } }else { System.out.println("\t密码错误或你还不是我们的会员用户!(可以去开卡办理注册会员)!"); break; } }while(true); } //查询会员是否存在方法,根据卡号和密码查找 public Vip yesNo(int id,String password) { //遍历集合判断 for(Vip vip : list) { if(vip.getId() == id && vip.getPassword().equals(password)) { System.out.println("\t你的会员卡当前所剩积分为: "+vip.getIntegral()); System.out.println("\t会员卡用户名: "+vip.getName()); System.out.println("\t开卡时间为: "+vip.getDate()); return vip; } } return null; } }
测试类:
/** * 测试类 * @author Douer * */ public class Test { public static void main(String[] args) { Business bus = new Business(); bus.start(); } }
相关文章推荐
- java-第四章-升级我行我素购物管理系统,实现计算会员折扣
- javaweb 项目的系统权限管理,怎么设计?shiro简单了解
- Java用类和对象,构造方法来实现超市管理系统
- ACCP JAVA1基础 上机练习 购物管理系统统 数组 阶段一 使用数组存储会员信息
- 一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序
- java实现水果超市管理系统
- 谁有java的超市进存销管理系统文档,xiexie
- java版超市管理系统。swing~(java连接mysql数据库)
- java-第四章-升级我行我素购物管理系统,实现按照会员优惠计划购物结算
- java项目实战-超市管理系统(二)数据库设计
- 利用XML文件以及集合方法设计简单超市管理系统的Java程序
- java项目实战-超市管理系统(七)如何导入数据到数据库?Dao包源码与分析
- JAVA超市管理系统
- java-第三章-升级我行我素购物管理系统,实现会员信息录入的功能
- 超市商店会员刷卡消费综合管理系统
- Java_Web之俱乐部会员信息管理系统
- Java中以类,对象的思想来实现超市管理系统
- ACCP JAVA1基础 上机练习 购物管理系统 一定数量积分的会员可以获赠礼物
- java会员管理系统(对象数组的使用)
- java项目实战-超市管理系统(一)需求概述与设计大纲