您的位置:首页 > 编程语言 > Java开发

带你深入了解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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐