Java第三十一天---超市会员管理系统

1、会员类Member


    (1)姓名        name:String
    (2)卡号        cardId:int
    (3)密码        password:String
    (4)积分        score:int
    (5)开卡日期    registDate:String


    
2、会员管理类


    (1)所有会员(卡)--集合:List  ArrayList<Member>    

    (2)程序整体流程搭建的方法
            循环
            分支
    (3)验证会员是否存在的方法
            集合的遍历,集合元素的查找
    (4)系统随机生成会员卡号的方法
            Random类
    
    A:开卡
        输入会员信息(会员卡密码的验证--String类相应方法-循环)
            姓名、密码
            卡号:系统随机生成会员卡号的方法
            积分:系统默认100
            开卡日期:日期时间操作(Date类、SimpleDateFormat类)
        将注册成功的会员添加进集合(ArrayList add())            
    B:修改密码
        验证会员是否存在
          会员对象密码属性重新赋值
    C:积分累计
        验证会员是否存在
        会员对象积分属性重新赋值
    D:积分兑换
        验证会员是否存在
        会员积分兑换过程(根据相应规则)
    E:查询剩余积分
        验证会员是否存在
        集合查找相应会员,显示信息(遍历)
    F:退出

3、测试类


    会员管理类的调用

package 超市会员管理系统;

public class Member {
    private String name;//姓名
    private  int cardid;//卡号
    private String password;//密码
    private  int score;//积分
    private  String registDate;//开卡日期

    public Member() {
    }

    public Member(String name, int cardid, String password, int score, String registDate) {
        this.name = name;
        this.cardid = cardid;
        this.password = password;
        this.score = score;
        this.registDate = registDate;
    }

    public String getName() {
        return name;
    }

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

    public int getCardid() {
        return cardid;
    }

    public void setCardid(int cardid) {
        this.cardid = cardid;
    }

    public String getPassword() {
        return password;
    }

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

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    public String getRegistDate() {
        return registDate;
    }

    public void setRegistDate(String registDate) {
        this.registDate = registDate;
    }
}
package 超市会员管理系统;


import java.text.SimpleDateFormat;
import java.util.*;

public class Manage {
    List<Member> member = new ArrayList();
    Scanner sc = new Scanner(System.in);


    public void menu() {
        System.out.println("*******************************欢迎进入超市会员管理系统*******************************");
        System.out.println("1、开卡\t2、修改密码\t3、积分累计\t4、积分兑换\t5、查询剩余积分\t6、退出");
        System.out.println("**************************************************************************************");
        System.out.println("请选择:");
    }

    public void start() {
        do {
            menu();
            int choose = sc.nextInt();
            switch (choose) {
                case 1:
                    if (open()) {
                        System.out.println("开卡成功");
                    } else {
                        System.out.println("开卡失败");
                    }

                    break;
                case 2:
                revisePwd();
                    break;
                case 3:
                    saveScore();
                    break;
                case 4:
                    exchange();
                    break;
                case 5:
                    remain();
                    break;
                case 6:
                    System.out.println("感谢您的使用,欢迎下次使用");
                    return;
                default:
                    System.out.println("您的操作有误吗,请重新选择:");
                    continue;
            }
        } while (true);
    }

    //产生新的卡号
    public int createId() {
        Random random = new Random();
        int id = random.nextInt(99999999);
        for (Member m : member) {
            if (m.getCardid() == id) {
                id = random.nextInt(99999999);
            }
        }
        return id;
    }

    //开卡
    public boolean open() {
        Member m = new Member();
        System.out.println("请输入姓名");
        m.setName(sc.next());
        System.out.println("请输入密码");
        String pwd;
        boolean flag = true;
        do {
            pwd = sc.next();
            if (pwd.length() < 6) {
                System.out.println("会员密码至少六位");
                flag = false;
            } else {
                flag = true;
                m.setPassword(pwd);
            }
        } while (!flag);
        int cardId = createId();
        m.setCardid(cardId);
        m.setScore(100);
        Date date = new Date();
        SimpleDateFormat formater = new SimpleDateFormat("yyyy-MMM-dd");
        String sdate = formater.format(date);
        m.setRegistDate(sdate);
        System.out.println("恭喜,会员卡开通成功!系统赠送100积分,您的会员卡号为 :" + cardId);
        System.out.println("您的开卡时间为:"+date);
        member.add(m);
        return flag;
    }

    //验证会员是否存在
    public Member hasMember(Member m) {
        Member mm = null;
        for (Member member : member) {
            if (m.getCardid() == member.getCardid() && m.getPassword().equals(member.getPassword())) {
                mm = member;
            }
        }
        return mm;
    }

//修改密码
    public void revisePwd() {
        boolean flag = true;
        do {
            Member m = new Member();
            System.out.println("请输入会员卡号");
            m.setCardid(sc.nextInt());
            System.out.println("请输入密码");
            m.setPassword(sc.next());
            m=hasMember(m);
            if (m != null) {
                System.out.println("请输入新的密码");
                m.setPassword(sc.next());
                System.out.println("修改密码成功,您的卡号为:"+m.getCardid()+"您的密码为:"+m.getPassword());
                flag =true;
            } else {
                System.out.println("您的密码或者卡号不正确请重新输入");
                flag = false;
            }
        } while (!flag);


    }

    //积分累计
    public void saveScore() {
        boolean flag = true;
        do {
            Member m = new Member();
            System.out.println("请输入会员卡号");
            m.setCardid(sc.nextInt());
            System.out.println("请输入密码");
            m.setPassword(sc.next());
            //hasmember方法返回的是一个member对象
            m=hasMember(m);
            if (m != null) {
                System.out.println("请输入此次花销");
                int number=sc.nextInt();
                m.setScore(m.getScore()+number);
                System.out.println("此次您花销了"+number+"元,可以兑换"+number+"积分");
                System.out.println("您的卡号是"+m.getCardid()+",您的积分为"+m.getScore()+"恭喜您兑换成功");
            } else {
                System.out.println("您的密码或者卡号不正确请重新输入");
                flag = false;
            }
        } while (!flag);
    }

    //积分兑换
    public  void  exchange(){
        boolean flag = true;
        do {
            Member m = new Member();
            System.out.println("请输入会员卡号");
            m.setCardid(sc.nextInt());
            System.out.println("请输入密码");
            m.setPassword(sc.next());
            //hasmember方法返回的是一个member对象
            m=hasMember(m);
            if (m != null) {
                System.out.println("请输入您想要兑换的积分数(一百分等于一块钱):");
                int number=sc.nextInt();
               if(number<m.getScore()){
                    m.setScore(m.getScore()-number);
                   System.out.println("您的积分已抵消"+number/100+"块钱,恭喜您抵消成功");
               }else{
                   System.out.println("积分不足,无法兑换");
               }
            } else {
                System.out.println("您的密码或者卡号不正确请重新输入");
                flag = false;
            }
        } while (!flag);
    }

    public void remain(){
        boolean flag = true;
        do {
            Member m = new Member();
            System.out.println("请输入会员卡号");
            m.setCardid(sc.nextInt());
            System.out.println("请输入密码");
            m.setPassword(sc.next());
            //hasmember方法返回的是一个member对象
            m=hasMember(m);
            if (m != null) {
                System.out.println("您剩余的积分值为:"+m.getScore());

            } else {
                System.out.println("您的密码或者卡号不正确请重新输入");
                flag = false;
            }
        } while (!flag);
    }
}
package 超市会员管理系统;

public class Test {
    public static void main(String[] args) {
        Manage m=new Manage();
        m.start();
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值