Java 使用Map集合 写出超市会员管理系统

首先我们要写出该会员的一系列属性和它的有参无参构造方法和封装方法

public class Member {
    private String name;
    private  int Card;
    private String password;
    private int JiFen;
    private String RiQi;


    public Member(){

    }
    public Member(String name, int card, String password, int jiFen, String riQi) {
        this.name = name;
        Card = card;
        this.password = password;
        JiFen = jiFen;
        RiQi = riQi;
    }

    public String getName() {
        return name;
    }

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

    public int getCard() {
        return Card;
    }

    public void setCard(int card) {
        Card = card;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getJiFen() {
        return JiFen;
    }

    public void setJiFen(int jiFen) {
        JiFen = jiFen;
    }

    public String getRiQi() {
        return RiQi;
    }

    public void setRiQi(String riQi) {
        RiQi = riQi;
    }
}

其次创造他的方法类

依次创造出 (1)展示菜单的方法 (2)开卡方法 (3)查询积分 并判断会员卡号和密码是否输入正确

(4)积分累计 并判断会员卡号和密码是否输入正确

(5)积分兑换  并判断会员卡号和密码是否输入正确
(6)修改密码 并判断会员卡号和密码是否输入正确,并且判断此次修改的密码是否和 上次的一样
(7)删除会员 并判断会员卡号和密码是否输入正确,并且判断删除的会员中是否有该会员 没有则返回Null

public class Member2 {
    Scanner scanner = new Scanner(System.in);
    Map<String,Member> df =  new HashMap<>();
    Calendar calender = Calendar.getInstance();
    //展示菜单的方法
    public void CaiDan(){
        int is ;
        do{
            System.out.println("*******欢迎进入超市会员管理系统*******");
            System.out.println("1.积分累计  2.积分兑换   3.查询剩余积分   4.修改密码   5.开卡   6.退出   7.删除会员");
            System.out.println("***********************************");
            int d = scanner.nextInt();
            switch (d){
                case 1:
                    JiFenLeiJi();
                    break;
                case 2:
                    JiFenDuiHuan();
                    break;
                case 3:
                    chaJiFen();
                    break;
                case 4:
                    xiugaimima();
                    break;
                case 5:
                    KaiKa();
                    break;
                case 6:
                    return;
                case 7:
                    shanchuhuiyuan();
                    break;
            }
            System.out.println("输入0继续");
            is = scanner.nextInt();
        }while (is==0);
    }
    //开卡方法
    public void KaiKa(){
        Member member = new Member();
        Date date = new Date();

        System.out.println("请输入注册姓名");
        String name = scanner.next();
        member.setName(name);
        System.out.println("请输入注册密码");
        String password = scanner.next();
        member.setPassword(password);
        //获取日历对象

        //get(int field)返回给定日历字段的值
        int i = calender.get(Calendar.YEAR);
        int i1 = calender.get(Calendar.MONTH);
        int i3 = calender.get(Calendar.DATE);
        int i4 = calender.get(Calendar.HOUR);
        int i5 = calender.get(Calendar.MINUTE);
        int i6 = calender.get(Calendar.SECOND);


        member.setRiQi(i+"-"+i1+"-"+i3+"\t"+i4+":"+i5+":"+i6);
        int randomNum = (int) ((Math.random() * 9 + 1) * 10000000);
        member.setCard(randomNum);
        member.setJiFen(100);
        while (!(password.length()>=6)){
            System.out.println("错误 密码不得小于六位");
            password = scanner.next();
        }
        member.setPassword(password);
        System.out.println("恭喜 开通会员卡成功,系统赠送您100积分!您的会员卡号为"+randomNum);
        df.put(member.getName(),member);
    }
    //为了节省代码将判断会员卡账号密码是否正确封装到一个方法中 每个需要用到的地方调这个方法
    public Member forEach(){
        System.out.println("请输入您的会员卡号");
        int d = scanner.nextInt();
        System.out.println("请输入您的会员卡密码");
        String password2 = scanner.next();
        int i=0;
        //3
        //123
        for (String member : df.keySet()) {
            Member member1 = df.get(member);
            if (member1.getCard() == d && password2.equalsIgnoreCase(member1.getPassword())) {
                System.out.println("正确了");
                System.out.println("姓名\t\t会员卡号\t\t剩余积分\t\t开卡日期");
                System.out.println(member1.getName() + "\t\t" + member1.getCard() + "\t\t" + member1.getJiFen() + "\t\t" + member1.getRiQi());
                i=0;
                return member1;
            } else{
                i++;
            }
        }
        if(i!=0){
            System.out.println("卡号或者密码错误 或者都错误");
        }
        return null;
    }
    //查询积分
    public void chaJiFen(){
        Member member = forEach();
    }
    //积分累计
    public void JiFenLeiJi(){
        Member member = forEach();
        if (member==null){
            System.out.println("没有这个会员");
        }else {
            System.out.println("请输入您此次消费金额(1元=1积分)");
            int ff = scanner.nextInt();
            member.setJiFen(ff+member.getJiFen());
            System.out.println("积分累计成功");
        }
    }
    //积分兑换
    public void JiFenDuiHuan(){
        Member member = forEach();
        int duihuan = scanner.nextInt();
        if (member==null){
            System.out.println("没有这个会员");
        }else {
            System.out.println("请输入您需要兑换的积分(100积分抵用0.1元,不足100积分不做抵用)");
            if (duihuan>member.getJiFen()){
                System.out.println("您没那么多积分");
            }else if(member.getJiFen()<=100){
                System.out.println("积分小于100不得抵换");
            }else {
                System.out.println("恭喜 您在本次消费中抵换"+(int)((duihuan/100)*0.1)+"元");
            }
        }
    }
    //修改该会员的密码
    public void xiugaimima(){
        Member member = forEach();
        if (member==null){
            System.out.println("没有这个会员");
        }else {
            System.out.println("请输入您要修改的密码");
            String xiugai = scanner.next();
            if (!(xiugai.length()>=6)||xiugai.equals(member.getCard())){
                System.out.println("修改失败 密码必须大于6位");
            }else {
                System.out.println("修改成功");
                member.setPassword(xiugai);
            }
        }
    }
    //删除该会员
    public void shanchuhuiyuan(){
        Member member = forEach();
        //这个判断为不为空是判断的该对象中的数据
        if (member==null){
            System.out.println("对象为空 结束");
        }else {
            this.df.remove(member);
        }
    }
}

************

//生成8位随机数的方法
int randomNum = (int) ((Math.random() * 9 + 1) * 10000000);

************

测试类,让代码跑起来

class main2{
    public static void main(String[] args) {
        Member2 member2 = new Member2();
        member2.CaiDan();
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值