超市会员管理系统

1.会员实体类

import java.io.Serializable;

//会员实体类
public class SuperPojo implements Serializable {
    private String name;       //会员姓名
    private String pwd;        //会员密码
    private int cardId;        //会员卡号
    private int cardNum;       //会员积分
    private String registDate; //开卡日期

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public int getCardId() {
        return cardId;
    }

    public void setCardId(int cardId) {
        this.cardId = cardId;
    }

    public double getCardNum() {
        return cardNum;
    }

    public void setCardNum(int cardNum) {
        this.cardNum = cardNum;
    }

    public String getRegistDate() {
        return registDate;
    }

    public void setRegistDate(String registDate) {
        this.registDate = registDate;
    }

    public SuperPojo() {
    }

    public SuperPojo(String name, String pwd, int cardId, int cardNum,String registDate) {
        this.name = name;
        this.pwd = pwd;
        this.cardId = cardId;
        this.cardNum = cardNum;
        this.registDate = registDate;
    }

}

2.接口方法

public interface SuperMethod {

    //积分累计
    void addCardNum(int num);
    //积分兑换商品
    void change (int num);
    //查询剩余积分
    void select(int cardId,String pwd);
    //修改密码
    void update(int cardId);
    //开卡
    public void openCard();
    //展示系统选项
    void showSuper();
    //会员卡号随机产生方法
    int cardRandom();
}

3.业务类实现方法

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;

public class SuperServer implements SuperMethod{
    Scanner sc = new Scanner(System.in);
    //会员对象
    SuperPojo superPojo = new SuperPojo();
    //SuperPojo集合
    ArrayList<SuperPojo> list = new ArrayList();

    //随机生成卡号
    @Override
    public int cardRandom() {
        return (int) (Math.random() * (19999999 - 10000000) + 10000000);
    }

    //开卡时判断是否注册过
    public boolean isExit(int cid) {
        boolean isCId = false;
        if (list.size() > 0) {
            //循环遍历
            for (int i = 0;i<list.size();i++) {
                SuperPojo superPojo1 = list.get(i);
                if (cid == superPojo1.getCardId()){
                    System.out.println("您已注册过,不能重复注册!");
                    System.out.println("您的卡号是:"+superPojo1.getCardId());
                    isCId = true;
                    return isCId;
                }
            }
        }
        return isCId;
    }
    //判断会员卡号和密码是否正确
    public boolean isSuper(int cid,String pwd){
        boolean isCid = false;
        if (list.size()>0){
            for (int i = 0;i< list.size();i++){
                SuperPojo superPojo1 = list.get(i);
                if (cid == superPojo1.getCardId() && pwd.equals(superPojo1.getPwd())) {
                    superPojo = superPojo1;
                    isCid = true;

                }
            }

        }
        return isCid;
    }

    @Override
    public void showSuper() {
        System.out.println("********欢迎使用超市会员管理系统*********");
        System.out.println("1.开卡\n2.修改密码\n3.积分累计\n4.积分兑换\n5.剩余积分查询\n6.查看所有会员信息\n7.退出");
        System.out.println("**************************************");
    }

    //开卡
    @Override
    public void openCard() {
        //初始化新对象
        superPojo = new SuperPojo();
        int card = cardRandom();
        //判断是否注册过
        if (!isExit(card)){
            System.out.print("请输入姓名:");
            //保存姓名
            superPojo.setName(sc.next());
            System.out.print("请输入密码:");
            String pwd = sc.next();
            while (pwd.length()<6){
                System.out.println("密码不能小于6位!");
                System.out.print("请输入密码:");
                pwd = sc.next();
            }
            //保存密码
            superPojo.setPwd(pwd);
            //默认积分100
            superPojo.setCardNum(100);
            superPojo.setCardId(card);
            //日期
            Date date = new Date();
            //格式化
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy- MM-dd HH:mm:ss");
            //保存开卡日期
            superPojo.setRegistDate(sdf.format(date));
            //将数据存入集合
            list.add(superPojo);
            System.out.println("恭喜您,开卡成功!赠送您"+superPojo.getCardNum()+"积分,您的会员卡号是:"+superPojo.getCardId());
        }
    }

    //修改密码
    @Override
    public void update(int cardId) {
        System.out.print("请输入密码:");
        String pwd = sc.next();
        // 判断会员卡和密码是否正确
       if (isSuper(cardId,pwd)){
           System.out.print("请输入新密码:");
           superPojo.setPwd(sc.next());
           System.out.println("修改成功!");
       }else{
           System.out.println("卡号或密码错误!");
       }
    }

    //积分累计
    @Override
    public void addCardNum(int num) {
        System.out.print("请输入您的卡号:");
        int cId = sc.nextInt();
        System.out.print("请输入密码:");
        String pwd = sc.next();
        if (isSuper(cId, pwd)) {
            System.out.println("消费1元累计1分");
            superPojo.setCardNum((int) (num + superPojo.getCardNum()));
            System.out.println("积分累计成功,当前积分为:"+superPojo.getCardNum());
        }else {
            System.out.println("卡号或密码错误!");
        }
    }
    //积分兑换
    @Override
    public void change(int num) {
        System.out.print("请输入您的卡号:");
        int cid = sc.nextInt();
        System.out.print("请输入密码:");
        String pwd = sc.next();
        if (isSuper(cid, pwd)) {
            if (num >= 100 &&num < superPojo.getCardNum()){
                superPojo.setCardNum((int) (superPojo.getCardNum() - num));
                System.out.println("使用会员积分抵扣了"+(num*0.1/100)+"元");
            }else if (num < 100) {
                System.out.println("积分不足!");
            }
        }else {
            System.out.println("卡号或密码错误!");
        }
    }

    //剩余积分查询
    @Override
    public void select(int cid, String pwd) {
        if (isSuper(cid, pwd)) {
            System.out.println("****会员信息******");
            System.out.println("会员卡号\t"+superPojo.getCardId()+"\n姓名:\t"+superPojo.getName()
                                +"\n积分:\t"+superPojo.getCardNum()+"\n开卡时间:"+superPojo.getRegistDate());
        }else {
            System.out.println("卡号或密码错误!");
        }
    }
    //查看所有会员信息
    public void checkAll(){
        for (int i = 0 ;i<list.size();i++){
            superPojo = list.get(i);
            System.out.println("会员卡号\t"+superPojo.getCardId()+"\n姓名:\t"+superPojo.getName()
                    +"\n积分:\t"+superPojo.getCardNum()+"\n开卡时间:"+superPojo.getRegistDate());
        }
    }


}

4.测试类

import java.util.Scanner;

public class SuperManager {
    public static void main(String[] args) {
        SuperServer ss = new SuperServer();
        Scanner scanner = new Scanner(System.in);
        boolean isExit = true;
        do {
            //展示系统选项
            ss.showSuper();
            System.out.print("请选择:");
            switch (scanner.nextInt()){
                case 1:
                    //开卡
                    ss.openCard();
                    break;
                case 2:
                    //修改密码
                    System.out.print("请输入您的卡号:");
                    ss.update(scanner.nextInt());
                    break;
                case 3:
                    //积分累计
                    System.out.print("请输入您本次的消费金额(消费1元累计1分):");
                    ss.addCardNum(scanner.nextInt());
                    break;
                case 4:
                    //积分兑换
                    System.out.print("请输入您要兑换使用的积分(100积分抵用0.1元,不足100的积分不做抵用)");
                    ss.change(scanner.nextInt());
                    break;
                case 5:
                    //剩余积分查询
                    System.out.print("请输入您的会员卡号:");
                    int cid = scanner.nextInt();
                    System.out.print("请输入您的会员密码:");
                    String pwd = scanner.next();
                    ss.select(cid,pwd);
                    break;
                case 6:
                    //查看所有会员信息
                    ss.checkAll();
                    break;
                case 7:
                    isExit = false;
                    break;
                default:
                    System.out.println("无效操作,请重新选择!");
            }

        }while (isExit);
    }
}

运行结果展示(参考):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值